问题描述
自从迁移到Java 8以来,我们在连接到SOAP Web服务时面临一个问题。有时(实际上很少)连接正常,但大多数情况下
java.lang.classNotFoundException: com.sun.xml.internal.bind.v2.ContextFactory
这个问题的暂时性是另一个问题。应用服务器上的内存可用性看起来还可以。
- Java8
- Jboss EAP 6.4.2
关于SO的大多数其他相关问题表明,人们从Java 8升级到Java 11等后就遇到了这个问题,但是在使用Java 8时却没有。 关于可能的原因和解决方案的建议吗?
Caused by: org.apache.cxf.service.factory.ServiceConstructionException
at org.apache.cxf.jaxb.JAXBDataBinding.initialize(JAXBDataBinding.java:350)
at org.apache.cxf.service.factory.AbstractServicefactorybean.initializeDataBindings(AbstractServicefactorybean.java:86)
at org.apache.cxf.service.factory.ReflectionServicefactorybean.buildServiceFromWSDL(ReflectionServicefactorybean.java:446)
at org.apache.cxf.service.factory.ReflectionServicefactorybean.initializeServiceModel(ReflectionServicefactorybean.java:548)
at org.apache.cxf.service.factory.ReflectionServicefactorybean.create(ReflectionServicefactorybean.java:265)
at org.apache.cxf.jaxws.support.JaxWsServicefactorybean.create(JaxWsServicefactorybean.java:215)
at org.apache.cxf.frontend.AbstractWSDLBasedEndpointFactory.createEndpoint(AbstractWSDLBasedEndpointFactory.java:102)
at org.apache.cxf.frontend.Clientfactorybean.create(Clientfactorybean.java:91)
at org.apache.cxf.frontend.ClientProxyfactorybean.create(ClientProxyfactorybean.java:157)
at org.apache.cxf.jaxws.JaxWsProxyfactorybean.create(JaxWsProxyfactorybean.java:142)
at org.apache.cxf.jaxws.ServiceImpl.createPort(ServiceImpl.java:478)
at org.jboss.wsf.stack.cxf.client.ProviderImpl$JBossWSServiceImpl.createPort(ProviderImpl.java:558)
at org.apache.cxf.jaxws.ServiceImpl.getPort(ServiceImpl.java:345)
... 67 more
Caused by: javax.xml.bind.JAXBException
- with linked exception:
[java.lang.classNotFoundException: com.sun.xml.internal.bind.v2.ContextFactory from [Module "deployment.ear.ejb-jboss.jar:main" from Service Module Loader]]
at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:196) [jboss-jaxb-api_2.2_spec-1.0.4.Final-redhat-3.jar:1.0.4.Final-redhat-3]
at javax.xml.bind.ContextFinder.find(ContextFinder.java:361) [jboss-jaxb-api_2.2_spec-1.0.4.Final-redhat-3.jar:1.0.4.Final-redhat-3]
at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:618) [jboss-jaxb-api_2.2_spec-1.0.4.Final-redhat-3.jar:1.0.4.Final-redhat-3]
at org.apache.cxf.common.jaxb.JAXBContextCache$2.run(JAXBContextCache.java:341)
at org.apache.cxf.common.jaxb.JAXBContextCache$2.run(JAXBContextCache.java:339)
at java.security.AccessController.doPrivileged(Native Method) [rt.jar:1.8.0_162]
at org.apache.cxf.common.jaxb.JAXBContextCache.createContext(JAXBContextCache.java:339)
at org.apache.cxf.common.jaxb.JAXBContextCache.getCachedContextAndSchemas(JAXBContextCache.java:240)
at org.apache.cxf.jaxb.JAXBDataBinding.createJAXBContextAndSchemas(JAXBDataBinding.java:493)
at org.apache.cxf.jaxb.JAXBDataBinding.initialize(JAXBDataBinding.java:348)
... 79 more
Caused by: java.lang.classNotFoundException: com.sun.xml.internal.bind.v2.ContextFactory from [Module "deployment.ear.ejb-jboss.jar:main" from Service Module Loader]
at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:211) [jboss-modules.jar:1.3.10.Final-redhat-1]
at org.jboss.modules.ConcurrentClassLoader.performloadClassUnchecked(ConcurrentClassLoader.java:459) [jboss-modules.jar:1.3.10.Final-redhat-1]
at org.jboss.modules.ConcurrentClassLoader.performloadClassChecked(ConcurrentClassLoader.java:408) [jboss-modules.jar:1.3.10.Final-redhat-1]
at org.jboss.modules.ConcurrentClassLoader.performloadClass(ConcurrentClassLoader.java:389) [jboss-modules.jar:1.3.10.Final-redhat-1]
at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:134) [jboss-modules.jar:1.3.10.Final-redhat-1]
at javax.xml.bind.ContextFinder.safeLoadClass(ContextFinder.java:510) [jboss-jaxb-api_2.2_spec-1.0.4.Final-redhat-3.jar:1.0.4.Final-redhat-3]
at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:194) [jboss-jaxb-api_2.2_spec-1.0.4.Final-redhat-3.jar:1.0.4.Final-redhat-3]
... 88 more
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)