gpt4 book ai didi

java - 如何验证部署在 Tomcat 服务器中的一个 java 框架?

转载 作者:行者123 更新时间:2023-11-28 23:29:12 26 4
gpt4 key购买 nike

我在 Tomcat 7 中部署了一个 Java 网络应用程序,但出现如下异常:

Sep 29, 2015 1:36:56 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [arms-api] in context with path [] threw exception [Handler processing failed; nested exception is java.lang.NoClassDefFoundError: org/objenesis/Objenesis] with root cause
java.lang.ClassNotFoundException: org.objenesis.Objenesis
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559)
at ch.lambdaj.proxy.ProxyUtil.createProxy(ProxyUtil.java:52)
at ch.lambdaj.proxy.ProxyUtil.createIterableProxy(ProxyUtil.java:76)
at ch.lambdaj.function.aggregate.ProxyAggregator.createProxyAggregator(ProxyAggregator.java:49)
at ch.lambdaj.Lambda.aggregateFrom(Lambda.java:573)
at ch.lambdaj.Lambda.aggregateFrom(Lambda.java:556)
at ch.lambdaj.Lambda.joinFrom(Lambda.java:902)

我的代码从 lambdaj-2.4.jar 调用 joinFrom。看起来 jar 不在类路径中。

但是我检查了 tomcat 并且 jar 在/opt/apache-tomcat-7.0.42/webapps/ROOT/WEB-INF/lib 文件夹下。我尝试设置 JMX 来监视这个 tomcat 服务器。那么,有什么方法可以确认这个 jar 已加载到服务器中吗?我在 MBenas 进行了搜索,但没有成功。 enter image description here

最佳答案

您是否使用 Maven 或其他解决方案进行依赖管理?如果不是,你应该尝试使用它,因为在你的情况下,lambdaj 库有它自己的依赖项。看看maven repo , 例如。它依赖于 Objenesis 库和更多的库。如果您想使用 LambdaJ,您也必须提供它们。而未找到的类来自 Objenesis 库。

更新:您可以使用一些非服务器特定的工具来让所有 JVM 类加载,例如 jmap :

jmap -histo <PID>

要获取所有已加载类的列表,或者您可以尝试使用 jvisualvm。

关于java - 如何验证部署在 Tomcat 服务器中的一个 java 框架?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32878927/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com