jruby-rack 서블릿 컨테이너가 PUT/DELETE를 지원합니까?
-
09-12-2019 - |
문제
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이 모든 것을 거부하겠습니까? PUT
모래 DELETE
내 Rails 앱으로 전송되고 있나요?
해결책
추가 세부 사항을 위해 jruby-rack의 관련 버그는 다음과 같습니다.
https://github.com/jruby/jruby-rack/issues/105
이 글을 쓰는 시점에는 수정이 진행 중인 것 같습니다.
다른 팁
나는 같은 문제가 있었다.jruby-rack gem 버전을 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>
Warbler를 사용하는 경우 web.xml.erb 당신의 구성 예배 규칙서:
cp [GEM_HOME]/gems/warbler-1.3.4/web.xml.erb config