gpt4 book ai didi

java - Tomcat 7 偶然 NoClassDefFoundError cxf BaseUrlHelper

转载 作者:太空宇宙 更新时间:2023-11-04 13:29:38 26 4
gpt4 key购买 nike

我有很多 CXF WS 需要部署(13 场 war ),有时其中之一会给我这个错误:

    java.lang.NoClassDefFoundError: org/apache/cxf/transport/servlet/BaseUrlHelper    
org.apache.cxf.transport.servlet.ServletController.getBaseURL(ServletController.java:74)
org.apache.cxf.transport.servlet.ServletController.updateDestination(ServletController.java:83)
org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:196)
org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:149)
org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:171)
org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:290)
org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:209)
javax.servlet.http.HttpServlet.service(HttpServlet.java:646)
org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:265)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52

包含此类的 jar 位于每个 lib 应用程序中:cxf-rt-transports-http-3.0.2.jar

当我重新加载tomcat管理器不工作的那个时,我不再遇到问题,并且当我重新启动服务器时它会重新出现(在另一场 war 中随机)。缺失的类总是相同的。

我使用 Cxf 版本 3.0.2。

最佳答案

看来是进程打开的文件数量有问题。 tomcat 的类加载器打开了太多文件,因为每个应用程序/war 在其库 WEB-INF/lib 中都有大量库。

当 ClassLoader 由于此限制而无法打开 java 类文件时,它不会抛出任何异常:它只是不加载该类...所以当我调用我的应用程序时,第一个被调用但未加载的类是 BaseUrlHelper...

我已将一些库放入 tomcat/lib 中(并且已从库 WEB-INF/lib 中删除了它们),并且应用程序运行良好。如果你在你的unix系统中有管理员访问权限,我看到还有一个与命令ulimit有关的东西..

您还可以将您的应用程序放入更多 tomcats 中。

关于java - Tomcat 7 偶然 NoClassDefFoundError cxf BaseUrlHelper,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32315859/

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