Java HTTP 状态 500 - 过滤器执行引发异常。NoClassDefFoundError : UpgradeUtil
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/22873670/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
HTTP Status 500 - Filter execution threw an exception. NoClassDefFoundError : UpgradeUtil
提问by Ramesh Radhakrishna
We have been trying to build a simple web application using Tomcat and the Websockets. The system is functional on localhost. The problem started when we tried to deploy the web application on the Server (Debian Linux, running Tomcat 7.0.52). The application runs perfectly fine on localhost (Windows 7, running Tomcat 7.0.52). Methods suggested so far for error 500 have been mainly to check the jars in the lib folder of the tomcat. (That weirdly doesn't seem to be the issue as all the jars seems to be present in the lib folder. I even extracted un-jarred the wesocket jar and checked if the class UpgradeUtil was present. It was!).
我们一直在尝试使用 Tomcat 和 Websockets 构建一个简单的 Web 应用程序。该系统在本地主机上运行。当我们尝试在服务器(Debian Linux,运行 Tomcat 7.0.52)上部署 Web 应用程序时,问题就开始了。该应用程序在本地主机(Windows 7,运行 Tomcat 7.0.52)上运行得非常好。到目前为止,错误500建议的方法主要是检查tomcat的lib文件夹中的jar。(奇怪的是,这似乎不是问题,因为所有 jar 似乎都存在于 lib 文件夹中。我什至解压缩了 wesocket jar 并检查了类 UpgradeUtil 是否存在。它是!)。
We get this error when accessing the site from the browser.
从浏览器访问站点时,我们收到此错误。
HTTP Status 500 - Filter execution threw an exception type Exception report
message Filter execution threw an exceptiondescription The server encountered an internal error that prevented it from fulfilling this request.
exception
javax.servlet.ServletException: Filter execution threw an exception root cause
java.lang.NoClassDefFoundError: Could not initialize class org.apache.tomcat.websocket.server.UpgradeUtil org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:50) note The full stack trace of the root cause is available in the Apache Tomcat/7.0.52 logs.
Apache Tomcat/7.0.52
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
And this error in the error logs.
错误日志中的这个错误。
Apr 3, 2014 9:51:53 PM org.apache.catalina.core.StandardWrapperValve invoke SEVERE: Servlet.service() for servlet [default] in context with path [/CrossGames] threw exception [Filter execution threw an exception] with root cause java.lang.NoClassDefFoundError: Could not initialize class org.apache.tomcat.websocket.server.UpgradeUtil at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:50) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:193) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607) at 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) at java.lang.Thread.run(Thread.java:732)
2014 年 4 月 3 日下午 9:51:53 org.apache.catalina.core.StandardWrapperValve 调用严重:Servlet.service() for servlet [default] in context with path [/CrossGames] 抛出异常 [过滤器执行抛出异常] 与根本原因 java.lang.NoClassDefFoundError: 无法在 org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:50) at org.apache.catalina 初始化类 org.apache.tomcat.websocket.server.UpgradeUtil .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) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98) .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)
We tried
我们尝试了
- Checking the jars (tomcat-websocket.jar and websocket-api.jar are present)
- Checking Versions. Versions of the tomcat installed are same as on our system.
- Reinstalling tomcat
- 检查 jars(存在 tomcat-websocket.jar 和 websocket-api.jar)
- 检查版本。安装的 tomcat 的版本与我们系统上的相同。
- 重装tomcat
Your insights and views will be greatly helpful to us. Thanks !
您的见解和观点将对我们大有帮助。谢谢 !
回答by janek
org.apache.tomcat.websocket.server.UpgradeUtil may be present, but the exception means the was a problem during its initialization process.
org.apache.tomcat.websocket.server.UpgradeUtil 可能存在,但异常意味着在其初始化过程中出现问题。
Check for the presence of these classes:
检查这些类的存在:
org.apache.tomcat.util.codec.binary.Base64; org.apache.tomcat.websocket.Constants; org.apache.tomcat.websocket.WsHandshakeResponse; org.apache.tomcat.websocket.pojo.PojoEndpointServer;
org.apache.tomcat.util.codec.binary.Base64; org.apache.tomcat.websocket.Constants; org.apache.tomcat.websocket.WsHandshakeResponse; org.apache.tomcat.websocket.pojo.PojoEndpointServer;
回答by Ramesh Radhakrishna
This problem got fixed with reinstallation of tomcat. I am afraid if this is of any help to others.
重新安装tomcat 解决了这个问题。恐怕这对其他人有帮助。
回答by Sachin
I got the solution, I just restart the Servlet (Online tomcat)
我得到了解决方案,我只是重新启动了Servlet(在线tomcat)