Java Glassfish 4.1 LogFactory和WSSElementFactory NoClassDefFoundError
当我在Glassfish 4.1服务器上运行rest api点时,即使我将ear与Java Glassfish 4.1 LogFactory和WSSElementFactory NoClassDefFoundError,java,web-services,glassfish,apache-commons,Java,Web Services,Glassfish,Apache Commons,当我在Glassfish 4.1服务器上运行rest api点时,即使我将ear与commons logging分别作为依赖项发送,即使库在WEB-INF\lib下解包,我也会遇到以下问题 而且我似乎没有遇到使用Glassfish 4.0的问题 有没有办法解决这个问题 未找到第一个日志工厂 javax.xml.ws.WebServiceException: java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
commons logging
分别作为依赖项发送,即使库在WEB-INF\lib下解包,我也会遇到以下问题
而且我似乎没有遇到使用Glassfish 4.0的问题
有没有办法解决这个问题
未找到第一个日志工厂
javax.xml.ws.WebServiceException: java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
at com.sun.xml.wss.jaxws.impl.SecurityClientTube.processRequest(SecurityClientTube.java:252)
at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:1136)
at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:1050)
at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:1019)
at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:877)
at com.sun.xml.ws.client.Stub.process(Stub.java:463)
at com.sun.xml.ws.client.sei.SEIStub.doProcess(SEIStub.java:191)
at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:108)
at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:92)
at com.sun.xml.ws.client.sei.SEIStub.invoke(SEIStub.java:161)
然后,WSSElementFactory
就不太好了
javax.xml.ws.WebServiceException: java.lang.NoClassDefFoundError: Could not initialize class com.sun.xml.ws.security.opt.impl.util.WSSElementFactory
at com.sun.xml.wss.jaxws.impl.SecurityClientTube.processRequest(SecurityClientTube.java:252)
at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:1136)
at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:1050)
at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:1019)
at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:877)
at com.sun.xml.ws.client.Stub.process(Stub.java:463)
at com.sun.xml.ws.client.sei.SEIStub.doProcess(SEIStub.java:191)
at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:108)
at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:92)
at com.sun.xml.ws.client.sei.SEIStub.invoke(SEIStub.java:161)
也许我的答案有点过时,但我在Glassfish 4.1.1中遇到了同样的问题,并通过更新Metro库解决了这个问题
这里有一个说明:
下载和解压
从您的glassfish/modules文件夹中删除(备份)一些文件:
- jaxb-extra-osgi.jar
- jaxb-osgi.jar
- stax2-api.jar
- webservices-extra-jdk-packages.jar
- webservices-osgi.jar
- woodstox-core-asl.jar
将其替换为未打包zip中的metro/osgi内容
阻止玻璃鱼
删除domain1/generated和domain1/osgi缓存文件夹的内容
启动玻璃鱼
这对我有效,两个错误都消失了
希望它能帮助别人很酷