jruby-rack servlet容器是否支持PUT/DELETE



我正试图使用Warbler将Rails应用程序部署为WAR。我让它在Tomcat6中运行,它似乎运行得很好。但是,我的所有PUTDELETE请求都被403 (Forbidden)拒绝了。

据我所知,Debian/Ubuuntu上默认的Tomcat安装通过以下方式禁用了这些方法:

<init-param>
   <param-name>readonly</param-name>
   <param-value>true</param-value>
</init-param>

我尝试在/etc/tomcat6/web.xml中将其设置为false,但没有骰子。我想知道我是否必须做一些类似Warbler在我的WAR中打包的jruby-rack servlet容器的事情?如果是的话,我该怎么办?

如果不是,Tomcat为什么要拒绝所有发送到我的Rails应用程序的PUTDELETE

我也遇到了同样的问题。我将jruby-rack-gem的版本从1.1.5更改为1.1.4,现在它运行良好。

对于RackFilter特有的此类问题的记录,您可以始终尝试使用servlet操作模式作为解决方法,只需删除过滤器声明(和映射),并声明和映射RackServlet:

<!--
<filter>
  <filter-name>RackFilter</filter-name>
  <filter-class>org.jruby.rack.RackFilter</filter-class>
</filter>
<filter-mapping>
  <filter-name>RackFilter</filter-name>
  <url-pattern>/*</url-pattern>
</filter-mapping>-->
<servlet>
  <servlet-name>RackServlet</servlet-name>
  <servlet-class>org.jruby.rack.RackServlet</servlet-class>
</servlet>
<servlet-mapping>
  <servlet-name>RackServlet</servlet-name>
  <url-pattern>/*</url-pattern>
</servlet-mapping>

如果您正在使用warbler,请将web.xml.erb复制到config目录中:

cp [GEM_HOME]/gems/warbler-1.3.4/web.xml.erb config

为了获得更多细节,这里是jruby机架上的相关错误:

https://github.com/jruby/jruby-rack/issues/105

在撰写本文时,似乎正在进行修复。

最新更新