2

Warbler を使用して Rails アプリを WAR としてデプロイしようとしています。Tomcat 6 で実行していますが、問題なく動作しているようです。ただし、私のすべてのPUTリクエストDELETEは で拒否されてい403 (Forbidden)ます。

私が収集できたものから、Debian/Ubuntu のデフォルトの Tomcat インストールでは、次の方法でこれらのメソッドが無効になっています。

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

これをサイコロに設定しようとしfalseました/etc/tomcat6/web.xmlが、サイコロはありません。jruby-rack私の WAR で Warbler によってパッケージ化されたサーブレット コンテナーと同様のことをしなければならないのだろうか? もしそうなら、どうすればいいですか?

そうでない場合、Tomcat がRails アプリに送信されるすべてPUTの およびを拒否するのはなぜですか?DELETE

4

3 に答える 3

3

私も同じ問題を抱えていました。jruby-rack gem のバージョンを 1.1.5 から 1.1.4 に変更したところ、正常に動作するようになりました。

于 2012-05-01T23:10:21.003 に答える
2

このような問題の記録については、サーブレット操作モードを回避策としていつでも使用できるものに固有のものでありRackFilter、フィルター宣言 (およびマッピング) を削除し、次を宣言およびマップするだけ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>

ウグイスを使用している場合は、web.xml.erb構成ディレクトリにコピーします。

cp [GEM_HOME]/gems/warbler-1.3.4/web.xml.erb config
于 2012-05-16T08:27:15.480 に答える
1

詳細については、jruby-rack の関連するバグを次に示します。

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

この記事の執筆時点では、修正が進行中のようです。

于 2012-05-09T14:34:47.020 に答える