【发布时间】:2015-01-21 07:09:00
【问题描述】:
我们一直在尝试使用 Tomcat 和 Websockets 构建一个简单的 Web 应用程序。该系统在本地主机上运行。当我们尝试在服务器(Debian Linux,运行 Tomcat 7.0.52)上部署 Web 应用程序时,问题就开始了。该应用程序在 localhost(Windows 7,运行 Tomcat 7.0.52)上运行良好。到目前为止,针对错误 500 建议的方法主要是检查 tomcat 的 lib 文件夹中的 jar。 (奇怪的是,这似乎不是问题,因为所有 jar 似乎都存在于 lib 文件夹中。我什至提取了 unjarred 的 wesocket jar 并检查了 UpgradeUtil 类是否存在。确实存在!)。
从浏览器访问该站点时,我们收到此错误。
HTTP 状态 500 - 过滤器执行引发异常 类型异常报告
消息过滤器执行抛出异常描述服务器遇到了一个内部错误,导致它无法完成这个请求。
异常
javax.servlet.ServletException:过滤器执行引发异常 根本原因
java.lang.NoClassDefFoundError: 无法初始化类 org.apache.tomcat.websocket.server.UpgradeUtil org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:50) note Apache Tomcat/7.0.52 日志中提供了根本原因的完整堆栈跟踪。
Apache Tomcat/7.0.52
而且这个错误在错误日志中。
2014 年 4 月 3 日晚上 9:51:53 org.apache.catalina.core.StandardWrapperValve 调用 严重:servlet [default] 的 Servlet.service() 在路径 [/CrossGames] 的上下文中抛出异常 [Filter execution throw an exception] 有根本原因 java.lang.NoClassDefFoundError:无法初始化类 org.apache.tomcat.websocket.server.UpgradeUtil 在 org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:50) 在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) 在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) 在 org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220) 在 org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) 在 org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501) 在 org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170) 在 org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98) 在 org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950) 在 org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) 在 org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) 在 org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:193) 在 org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607) 在 org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:313) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) 在 java.lang.Thread.run(Thread.java:732)
我们尝试过
- 检查 jars(tomcat-websocket.jar 和 websocket-api.jar 存在)
- 检查版本。安装的 tomcat 版本与我们系统上的相同。
- 重新安装 tomcat
您的见解和观点将对我们有很大帮助。谢谢!
【问题讨论】: