Вопрос

Я пытаюсь развернуть приложение Rails как WAR с помощью Warbler.У меня он работает в Tomcat 6, и вроде бы все работает нормально.Однако все мои PUT и DELETE запросы отклоняются с 403 (Forbidden).

Судя по тому, что мне удалось собрать, при установке Tomcat по умолчанию в Debian/Ubuntu эти методы отключены с помощью:

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

Я попытался установить это на false в моем /etc/tomcat6/web.xml но без кубиков.Интересно, нужно ли мне сделать что-то похожее на jruby-rack контейнер сервлетов, упакованный Warbler в мою WAR?Если да, то как мне это сделать?

Если нет, то почему Tomcat отклоняет все PUTпесок DELETEотправляется в мое приложение Rails?

Это было полезно?

Решение

Для дополнительной информации вот соответствующая ошибка на jruby-rack:

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

Похоже, что на момент написания этой статьи исправление находится в стадии разработки.

Другие советы

У меня такая же проблема.Я изменил версию гема jruby-rack с 1.1.5 на 1.1.4, и теперь он работает нормально.

для записи по таким вопросам - специфичным для 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
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top