2016-07-09 13 views
0

warbler-0.9.14를 Tomcat 7에 사용하여 빌드 한 war 파일과 함께 JoR 응용 프로그램을 배포하려고합니다. 응용 프로그램을 시작, 나는 다음과 같은 오류Jruby 1.6.8 Tomcat 배포 문제 (org.jruby.rack.rails.RailsServletContextListener)

2016년 7월 9일을 얻을 오후 3시 48분 13초 org.apache.catalina.core.StandardContext listenerStop SEVERE : 예외 클래스 조직의 인스턴스를 청취자에게 환경 파괴 이벤트를 전달. jruby.rack.rails.RailsServletContextListener java.lang.NullPointerException at org.jruby.rack.SharedRackApplicationFactory.destroy (SharedRackApplicationFactory.java:58) at org.jruby.rack.RackSe org.apache.catalina.core.StandardContext.stopInternal (StandardContext.java:5810)의 에서 rvletContextListener.contextDestroyed at org.apache.catalina.util.LifecycleBase.stop (LifecycleBase.java:224) at org.apache.catalina.util.LifecycleBase.start (LifecycleBase.java:159) at org.apache.catalina.manager. org.apache.catalina.manager.HTMLManagerServlet.doPost (HTMLManagerServlet.java:216)의 에서 ManagerServlet.start (ManagerServlet.java:1312) 의 org.apache.catalina.manager.HTMLManagerServlet.start (HTMLManagerServlet.java:690) HttpServlet.service (HttpServlet.java:650) atat ja vax.servlet.http.HttpServlet.service (HttpServlet.java:731) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:303) at org.apache.catalina.core.ApplicationFilterChain.doFilter (조직에서 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:241) 에서 org.apache.catalina.filters.CsrfPreventionFilter.doFilter (CsrfPreventionFilter.java:136) 에서 ApplicationFilterChain.java:208) . apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:208) at org.apache.tomcat.webocket.server.WsFilter.doFilter (WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain. internalDoFilter (ApplicationFilterChain.java:241) at org.apache.catalina org.apache.catalina.core.ApplicationFilterChain.internalDoFilter에서 org.apache.catalina.filters.SetCharacterEncodingFilter.doFilter (SetCharacterEncodingFilter.java:108) 에서 .core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:208) (ApplicationFilterChain.java 241) org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:208에서 ) org.apache.catalina.core.StandardWrapperValve.invoke (StandardWrapperValve.java:218에서 )에서 org.apache.catalina .core.StandardContextValve.invoke (StandardContextValve.java:122) at org.apache.catalina.authenticator.AuthenticatorBase.invoke (AuthenticatorBase.java:614) at org.apache.catalina.core.StandardHostValve.invoke (StandardHostValve.java) : 169) at org.apache.catalina .valves.ErrorReportValve.invoke (ErrorReportValve.java:103) at org.apache.catalina.valves.AccessLogValve.invoke (AccessLogValve.java:956) at org.apache.catalina.core.StandardEngineValve.invoke (StandardEngineValve.java) : 116) at org.apache.catalina.connector.CoyoteAdapter.service (CoyoteAdapter.java:442) at org.apache.coyote.http11.AbstractHttp11Processor.process (AbstractHttp11Processor.java:1082) at org.apache.coyote . AbstractProtocol $ AbstractConnectionHandler.process (AbstractProtocol.java:623) 에서 org.apache.tomcat.util.net.JIoEndpoint $ SocketProcessor.run (JIoEndpoint.java:318) at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor .java : 1145) (ThreadPoolExecutor.자바 : java.lang.Thread.run (Thread.java:745에서 org.apache.tomcat.util.threads.TaskThread $ WrappingRunnable.run (TaskThread.java:61) 에서 615) )

:

나는 Java/jruby에 대해 내가 모르는 것을 알기에 충분하지 않다. 어떤 도움이나 모든 문서에 대한 참조 매우 감사하겠습니다. 코드베이스는 매우 오래되었고 문서가 없습니다. 나는 jruby-1.6.8과 레일 2.3.5를 사용하고 있다고 판단했다.

여기

<!DOCTYPE web-app PUBLIC 
 
    "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" 
 
    "http://java.sun.com/dtd/web-app_2_3.dtd"> 
 
<web-app> 
 

 
    <context-param> 
 
    <param-name>rails.env</param-name> 
 
    <param-value>development</param-value> 
 
    </context-param> 
 

 
    <context-param> 
 
    <param-name>public.root</param-name> 
 
    <param-value>/</param-value> 
 
    </context-param> 
 

 
    <context-param> 
 
    <param-name>jruby.min.runtimes</param-name> 
 
    <param-value>2</param-value> 
 
    </context-param> 
 

 
    <context-param> 
 
    <param-name>jruby.max.runtimes</param-name> 
 
    <param-value>4</param-value> 
 
    </context-param> 
 

 
    <listener> 
 
    <listener-class>org.jruby.rack.rails.RailsServletContextListener</listener-class> 
 
    </listener> 
 

 
    <servlet> 
 
    <servlet-name>Rails</servlet-name> 
 
    <servlet-class>org.jruby.rack.RackServlet</servlet-class> 
 
    </servlet> 
 

 
    <servlet-mapping> 
 
    <servlet-name>Rails</servlet-name> 
 
    <url-pattern>/*</url-pattern> 
 
    </servlet-mapping> 
 

 

 
    <servlet> 
 
     <servlet-name>ImageServlet</servlet-name> 
 
     <servlet-class>net.sf.jasperreports.j2ee.servlets.ImageServlet</servlet-class> 
 
    </servlet> 
 

 
    <servlet-mapping> 
 
     <servlet-name>ImageServlet</servlet-name> 
 
     <url-pattern>/servlets/image</url-pattern> 
 
    </servlet-mapping> 
 

 
    <security-constraint> 
 
     <web-resource-collection> 
 
      <web-resource-name>Forbidden</web-resource-name> 
 
      <url-pattern>/*</url-pattern> 
 
      <http-method>DELETE</http-method> 
 
      <http-method>TRACE</http-method> 
 
      <http-method>OPTIONS</http-method> 
 
     </web-resource-collection> 
 
     <auth-constraint /> 
 
    </security-constraint> 
 

 
</web-app>

답변

0

문제였다 JRuby를 랙 같은데은 web.xml에게 있습니다. 내가 사용하고있는 warbler 버전은 실제로 오래되었으므로 jruby-rack을 jruby-rack-1.1.20.jar로 업그레이드 한 1.4.9로 업그레이드했습니다.