HTTP状态500 - 过滤器执行引发异常。 NoClassDefFoundError:UpgradeUtil

时间:2014-04-04 21:52:04

标签: java websocket tomcat7

我们一直在尝试使用Tomcat和Websockets构建一个简单的Web应用程序。该系统在localhost上正常运行。当我们尝试在服务器上部署Web应用程序(Debian Linux,运行Tomcat 7.0.52)时,问题就出现了。该应用程序在localhost(Windows 7,运行Tomcat 7.0.52)上运行完全正常。到目前为止建议的错误500的方法主要是检查tomcat的lib文件夹中的jar。 (奇怪的是,这似乎不是问题,因为所有的jar似乎都存在于lib文件夹中。我甚至提取了un-jarred 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]的上下文中引发了异常[过滤器执行引发异常]的根本原因   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)       at 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)       at org.apache.coyote.AbstractProtocol $ AbstractConnectionHandler.process(AbstractProtocol.java:607)       在org.apache.tomcat.util.net.JIoEndpoint $ SocketProcessor.run(JIoEndpoint.java:313)       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)       at java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:603)       在java.lang.Thread.run(Thread.java:732)

我们试过了

  1. 检查罐子(tomcat-websocket.jar和websocket-api.jar存在)
  2. 检查版本。安装的tomcat版本与我们的系统相同。
  3. 重新安装tomcat
  4. 您的见解和观点对我们非常有帮助。谢谢!

3 个答案:

答案 0 :(得分:3)

安装tomcat会解决此问题。如果这对其他人有任何帮助,我担心。

答案 1 :(得分:1)

我得到了解决方案,我只是重新启动Servlet(在线tomcat)

答案 2 :(得分:0)

org.apache.tomcat.websocket.server.UpgradeUtil可能存在,但异常意味着在初始化过程中出现了问题。

检查是否存在这些类:

org.apache.tomcat.util.codec.binary.Base64; org.apache.tomcat.websocket.Constants; org.apache.tomcat.websocket.WsHandshakeResponse; org.apache.tomcat.websocket.pojo.PojoEndpointServer;