首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >猫7 NoClassDefFoundError cxf BaseUrlHelper

猫7 NoClassDefFoundError cxf BaseUrlHelper
EN

Stack Overflow用户
提问于 2015-08-31 16:32:59
回答 1查看 362关注 0票数 1

我有许多CXF需要部署(13次战争),有时其中一次会给我错误:

代码语言:javascript
复制
    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管理器工作的服务器时,我已经没有问题了,当我重新启动服务器时(在另一场战争中),它会再次出现。缺少的类总是一样的。

我使用的是Cxf版本3.0.2。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-03 14:30:59

似乎是进程打开的文件数量出现了问题。tomcat的类加载程序打开了太多的文件,因为每个应用程序/war在他的汇辑WEB/lib中都有许多库。

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

我已经在tomcat/lib中放置了一些库(我已经将它们从汇辑WEB/lib中删除),应用程序运行良好。如果您在unix系统中有管理权限,我看到命令ulimit也有问题。

您也可以将您的应用程序放在更多的tomcats中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32315859

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档