Tomcat 7 HTTP 状态 500 - Servlet 执行抛出异常

Tomcat 7 HTTP Status 500 - Servlet execution threw an exception

我创建了一个小型 EXTJS 应用程序,它看起来是通过 servlet 发送请求的。该 servlet 看起来使用 JSON 进行响应,但我收到 class 未找到 JSON 数组的异常:

日志中的异常:

org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [ItemMaintenance] in context with path 
[/EXTTestServlet] threw exception [Servlet execution threw an exception] with root cause:

java.lang.NoClassDefFoundError: Could not initialize class net.sf.json.JSONArray
at com.as400samplecode.ItemMaintenance.doGet(ItemMaintenance.java:44)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:624)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
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:505)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:957)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:423)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1079)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:620)
at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:2476)
at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:2465)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Unknown Source)

我知道每个人都会说 "You need to put the JSON JAR file in WEB-INF" 但它已经存在并且我也尝试添加 JSON 所需的依赖项。我也尝试过不同的版本,但没有成功。

我也遵循了这个教程:http://javaeesupportpatterns.blogspot.co.uk/2012/08/javalangnoclassdeffounderror-parent.html 尝试理解 class 未发现异常在 Java EE 中是如何发生的,以及可能的解决方案是什么。

任何人都可以指出正确的方向以及接下来要看的地方或建议为什么会发生这种情况吗?

谢谢

作为更新,我已经设法解决了这个问题。它源于 Apache Commons Collections API。位于该库中的包显示为:org.apache.commons.collections4,其中从 JSON 库中生成的包指向 org.apache.commons.collections

包末尾添加的 4 正在造成严重破坏,因此请注意不要让您出局。

在pom.xml中你必须提到所有必要的依赖..只有这样所需的jar文件才会反映在maven依赖索引中并且也会被映射..