Java Glassfish 4.1 LogFactory和WSSElementFactory NoClassDefFoundError

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

当我在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
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/generateddomain1/osgi缓存文件夹的内容
  • 启动玻璃鱼
  • 这对我有效,两个错误都消失了

    希望它能帮助别人

    很酷