提问者:小点点

Tomcat 7上的ActiveMQ Web Console 5.6-Taglibs中的空指针


我们正在尝试在Tomcat 7上部署ActiveMQ Web Console 5.6(7.0.29精确地说是针对Java1.7.0_07)。

手动部署web控制台war后,我们修改了http://activemq.apache.org/web-console.html的说明如下:

  • 我们添加了actiemq-all-5.6.0.jar、jetty. util.6.1.12.jar和comons-loging-1.1.jar到${cataline_home}/lib目录
  • 我们在catalina. bat中添加了以下内容:CATALINA_OPTS=-Xms4m-Xmx256m-Dweb控制台.type=properties-Dweb控制台.jms.url=tcp://localhost:61616-Dweb控制台.jmx.url=service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi-Dcom.sun.management.jmxRemote-Dcom.sun.management.jmxRemote.port=7777-Dcom.sun.management.jmxRemote.ssl=false-Dcom.sun.management.jmxRemote.验证=false

Tomcat然后愉快地启动,我们可以看到Web控制台的登陆页面(http://localhost:8080/activemq-web-console-5.6.0/),但是当我们尝试访问时:

http://localhost:8080/activemq-web-console-5.6.0/queueGraph.jsp 

我们得到以下堆栈跟踪:

SEVERE: Servlet.service() for servlet [jsp] in context with path [/activemq-web-console-5.6.0] threw exception [PWC6033: Unable to compile class for JSP] with root cause
java.lang.NullPointerException
at org.apache.taglibs.standard.tlv.JstlBaseTLV.validate(JstlBaseTLV.java:178)
at org.apache.taglibs.standard.tlv.JstlCoreTLV.validate(JstlCoreTLV.java:134)
at org.apache.jasper.compiler.TagLibraryInfoImpl.validate(TagLibraryInfoImpl.java:913)
at org.apache.jasper.compiler.Validator.validateXmlView(Validator.java:1891)
at org.apache.jasper.compiler.Validator.validate(Validator.java:1859)
at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:210)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:435)
at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:608)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:360)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:486)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:380)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:83)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.activemq.web.SessionFilter.doFilter(SessionFilter.java:45)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.activemq.web.filter.ApplicationContextFilter.doFilter(ApplicationContextFilter.java:81)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at com.opensymphony.sitemesh.webapp.SiteMeshFilter.doFilter(SiteMeshFilter.java:65)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:225)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1001)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
Sep 25, 2012 1:04:13 PM org.apache.catalina.core.ApplicationContext log
SEVERE: Servlet jsp threw unload() exception
javax.servlet.ServletException: Servlet.destroy() for servlet jsp threw exception
at org.apache.catalina.core.StandardWrapper.unload(StandardWrapper.java:1485)
at org.apache.catalina.core.StandardWrapper.stopInternal(StandardWrapper.java:1822)
at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:232)
at org.apache.catalina.core.StandardContext.stopInternal(StandardContext.java:5463)
at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:232)
at org.apache.catalina.core.ContainerBase$StopChild.call(ContainerBase.java:1575)
at org.apache.catalina.core.ContainerBase$StopChild.call(ContainerBase.java:1564)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
Caused by: java.lang.NoSuchFieldError: deferredExpression
at org.apache.taglibs.standard.tag.common.core.ForEachSupport.release(ForEachSupport.java:212)
at org.apache.jasper.runtime.TagHandlerPool.release(TagHandlerPool.java:197)
at org.apache.jsp.queues_jsp._jspDestroy(org.apache.jsp.queues_jsp:41)
at org.apache.jasper.runtime.HttpJspBase.destroy(HttpJspBase.java:100)
at org.apache.jasper.servlet.JspServletWrapper.destroy(JspServletWrapper.java:424)
at org.apache.jasper.compiler.JspRuntimeContext.destroy(JspRuntimeContext.java:347)
at org.apache.jasper.servlet.JspServlet.destroy(JspServlet.java:410)
at org.apache.catalina.core.StandardWrapper.unload(StandardWrapper.java:1464)
... 11 more

外面有人能帮忙吗?

请注意:完全相同的步骤,但与Tomcat 6.0.35工作正常。

TIA

干杯安德鲁


共1个答案

匿名用户

这看起来像是使用的JSTL标记库版本的问题。我不确定您的情况下的确切解决方案是什么,但也许这些帖子可以为您提供线索:

  • 使用JSTL会导致更改时出现deferredEx_表达式错误
  • Tomcat 7和JSTL