java - 将tomcat war迁移到JBoss

标签 java tomcat servlets struts2 jboss

我已经将 tomcat web 应用程序 struts war 重新部署到 jboss 5.1。 它显示已成功部署,但是当我访问我的 Web 应用程序主页时出现错误,即

               ERROR [[jsp]] Servlet.service() for servlet jsp threw exception
               java.lang.ClassCastException:   org.apache.catalina.connector.RequestFacade cannot be cast to javax.servlet.http.HttpServletRequest
                at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:73)
                    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
                at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
                at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
                at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
                at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
                at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:235)
                at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
                at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:190)
                at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:92)
                    at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)
                    at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)
                    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
                    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
                at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)
                at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
                at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)
                    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:829)
                at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:598)
                at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
                at java.lang.Thread.run(Thread.java:619)

最佳答案

您需要确保 jboss 使用它自己的 servlet-api.jar 而不是任何其他的。如果您将 servlet-api.jar 打包到您的 war 文件中,那么只需将其删除并尝试。

关于java - 将tomcat war迁移到JBoss,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18227133/

相关文章:

java - GMail OAuth 身份验证。我是否正确检索 OAuth token ?

java - 使用递归和子字符串方法向后显示字符串

tomcat - Jars需要的文本文件放在tomcat服务器的什么地方?

java - 没有定义名为 '...' 的 bean 和 Spring @Resource 注释

java - 如何使用 servlet 更改段落文本?

java - eclipse 插件创建 hibernate 带注释的实体?

tomcat - 尝试在露天移动内容存储时出错

tomcat - resteasy 未在 tomcat 响应错误代码 400 错误请求上运行

java - FastCGI 和 Java Servlet API 之间的区别

java - 从 FileObserver 启动 IntentService