Java 由生成的代码引起的JAXBEException

Java 由生成的代码引起的JAXBEException,java,web-services,maven,jaxb,websphere,Java,Web Services,Maven,Jaxb,Websphere,我得到了表单的以下jaxbeexception 类SomeClass或其任何超类在此上下文中都是已知的 完整堆栈跟踪如下所示: javax.xml.ws.WebServiceException: javax.xml.bind.JAXBException: class com.myCompany.generatedCode.WebServiceOperationName nor any of its super class is known to this context. at org.

我得到了表单的以下jaxbeexception

类SomeClass或其任何超类在此上下文中都是已知的

完整堆栈跟踪如下所示:

javax.xml.ws.WebServiceException: javax.xml.bind.JAXBException: class com.myCompany.generatedCode.WebServiceOperationName nor any of its super class is known to this context. at org.apache.axis2.jaxws.ExceptionFactory.createWebServiceException(ExceptionFactory.java:175) at org.apache.axis2.jaxws.ExceptionFactory.makeWebServiceException(ExceptionFactory.java:70) at org.apache.axis2.jaxws.ExceptionFactory.makeWebServiceException(ExceptionFactory.java:128) at org.apache.axis2.jaxws.core.controller.impl.AxisInvocationController.execute(AxisInvocationController.java:586) at org.apache.axis2.jaxws.core.controller.impl.AxisInvocationController.doInvoke(AxisInvocationController.java:130) at org.apache.axis2.jaxws.core.controller.impl.InvocationControllerImpl.invoke(InvocationControllerImpl.java:93) at org.apache.axis2.jaxws.client.proxy.JAXWSProxyHandler.invokeSEIMethod(JAXWSProxyHandler.java:364) at org.apache.axis2.jaxws.client.proxy.JAXWSProxyHandler.invoke(JAXWSProxyHandler.java:185) at $Proxy41.deleteAccount(Unknown Source) at com.myCompany.myPackage.MyWebServiceClient.callSomeWebService(MyWebServiceClient.java:100) (other classes specific to my application and framework) ... Caused by: javax.xml.bind.JAXBException: class com.myCompany.generatedCode.WebServiceOperationName nor any of its super class is known to this context. at com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl.getBeanInfo(JAXBContextImpl.java:556) at com.sun.xml.internal.bind.v2.runtime.XMLSerializer.childAsRoot(XMLSerializer.java:452) at com.sun.xml.internal.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:314) at com.sun.xml.internal.bind.v2.runtime.MarshallerImpl.marshal(MarshallerImpl.java:243) at javax.xml.bind.helpers.AbstractMarshallerImpl.marshal(AbstractMarshallerImpl.java:75) at com.ibm.xml.xlxp2.jaxb.marshal.MarshallerProxy.marshal(MarshallerProxy.java:100) at org.apache.axis2.datasource.jaxb.JAXBDSContext$1.run(JAXBDSContext.java:470) at org.apache.axis2.java.security.AccessController.doPrivileged(AccessController.java:76) at org.apache.axis2.datasource.jaxb.JAXBDSContext.marshalByElement(JAXBDSContext.java:455) at org.apache.axis2.datasource.jaxb.JAXBDSContext.marshal(JAXBDSContext.java:414) at org.apache.axis2.jaxws.message.databinding.impl.JAXBBlockImpl._outputFromBO(JAXBBlockImpl.java:189) at org.apache.axis2.jaxws.message.impl.BlockImpl.outputTo(BlockImpl.java:372) at org.apache.axis2.jaxws.message.impl.BlockImpl.serialize(BlockImpl.java:296) at org.apache.axiom.om.impl.llom.OMSourcedElementImpl.internalSerializeAndConsume(OMSourcedElementImpl.java:808) at org.apache.axiom.om.impl.llom.OMElementImpl.internalSerialize(OMElementImpl.java:975) at org.apache.axiom.om.impl.llom.OMElementImpl.internalSerializeAndConsume(OMElementImpl.java:1016) at org.apache.axiom.soap.impl.llom.SOAPEnvelopeImpl.serializeInternally(SOAPEnvelopeImpl.java:271) at org.apache.axiom.soap.impl.llom.SOAPEnvelopeImpl.internalSerialize(SOAPEnvelopeImpl.java:233) at org.apache.axiom.om.impl.llom.OMElementImpl.internalSerializeAndConsume(OMElementImpl.java:1016) at org.apache.axiom.om.impl.llom.OMNodeImpl.serializeAndConsume(OMNodeImpl.java:488) at org.apache.axis2.transport.http.SOAPMessageFormatter.writeTo(SOAPMessageFormatter.java:88) at com.ibm.ws.websvcs.transport.http.SOAPOverHTTPSender.writeMessage(SOAPOverHTTPSender.java:3271) at com.ibm.ws.websvcs.transport.http.SOAPOverHTTPSender.sendChunkedRequest(SOAPOverHTTPSender.java:888) at com.ibm.ws.websvcs.transport.http.SOAPOverHTTPSender.sendSOAPRequest(SOAPOverHTTPSender.java:807) at com.ibm.ws.websvcs.transport.http.SOAPOverHTTPSender.send(SOAPOverHTTPSender.java:611) at com.ibm.ws.websvcs.transport.http.HTTPTransportSender.invoke(HTTPTransportSender.java:364) at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:531) at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:401) at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:228) at org.apache.axis2.client.OperationClient.execute(OperationClient.java:163) at org.apache.axis2.jaxws.core.controller.impl.AxisInvocationController.execute(AxisInvocationController.java:581) ... 52 more javax.xml.ws.webservicecoxception:javax.xml.bind.JAXBException:class com.myCompany.generatedCode.webservicecooperationname及其任何超类在此上下文中都是未知的。 位于org.apache.axis2.jaxws.ExceptionFactory.createWebServiceException(ExceptionFactory.java:175) 位于org.apache.axis2.jaxws.ExceptionFactory.makeWebServiceException(ExceptionFactory.java:70) 位于org.apache.axis2.jaxws.ExceptionFactory.makeWebServiceException(ExceptionFactory.java:128) 位于org.apache.axis2.jaxws.core.controller.impl.AxisInvocationController.execute(AxisInvocationController.java:586) 位于org.apache.axis2.jaxws.core.controller.impl.AxisInvocationController.doInvoke(AxisInvocationController.java:130) 位于org.apache.axis2.jaxws.core.controller.impl.InvocationControllerImpl.invoke(InvocationControllerImpl.java:93) 位于org.apache.axis2.jaxws.client.proxy.JAXWSProxyHandler.invokeSEIMethod(JAXWSProxyHandler.java:364) 位于org.apache.axis2.jaxws.client.proxy.JAXWSProxyHandler.invoke(JAXWSProxyHandler.java:185) 在$Proxy41.deleteCount(未知来源) 在com.myCompany.myPackage.MyWebServiceClient.callSomeWebService(MyWebServiceClient.java:100) (特定于我的应用程序和框架的其他类) ... 原因: javax.xml.bind.JAXBException:class com.myCompany.generatedCode.webservicecooperationname及其任何超类在此上下文中都是未知的。 位于com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl.getBeanInfo(JAXBContextImpl.java:556) 位于com.sun.xml.internal.bind.v2.runtime.XMLSerializer.childAsRoot(XMLSerializer.java:452) 位于com.sun.xml.internal.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:314) 位于com.sun.xml.internal.bind.v2.runtime.MarshallerImpl.marshall(MarshallerImpl.java:243) 位于javax.xml.bind.helpers.AbstractMarshallerImpl.marshall(AbstractMarshallerImpl.java:75) 位于com.ibm.xml.xlxp2.jaxb.marshall.MarshallerProxy.marshall(MarshallerProxy.java:100) 位于org.apache.axis2.datasource.jaxb.JAXBDSContext$1.run(JAXBDSContext.java:470) 位于org.apache.axis2.java.security.AccessController.doPrivileged(AccessController.java:76) 位于org.apache.axis2.datasource.jaxb.JAXBDSContext.marshallbyelement(JAXBDSContext.java:455) 位于org.apache.axis2.datasource.jaxb.JAXBDSContext.marshal(JAXBDSContext.java:414) 位于org.apache.axis2.jaxws.message.databinding.impl.JAXBBlockImpl.\u outputFromBO(JAXBBlockImpl.java:189) 位于org.apache.axis2.jaxws.message.impl.BlockImpl.outputTo(BlockImpl.java:372) 位于org.apache.axis2.jaxws.message.impl.BlockImpl.serialize(BlockImpl.java:296) 在org.apache.axiom.om.impl.llom.OmsourceDeleteImpl.internalSerializeAndConsume上(OmsourceDeleteImpl.java:808) 位于org.apache.axiom.om.impl.llom.OMElementImpl.internalSerialize(OMElementImpl.java:975) 位于org.apache.axiom.om.impl.llom.OMElementImpl.internalSerializeAndConsume(OMElementImpl.java:1016) 在org.apache.axiom.soap.impl.llom.soapEnvelopeEimpl.Serialized内部(soapEnvelopeEimpl.java:271) 位于org.apache.axiom.soap.impl.llom.soapEnvelopeEimpl.internalSerialize(soapEnvelopeEimpl.java:233) 位于org.apache.axiom.om.impl.llom.OMElementImpl.internalSerializeAndConsume(OMElementImpl.java:1016) 位于org.apache.axiom.om.impl.llom.OMNodeImpl.serializeAndConsume(OMNodeImpl.java:488) 位于org.apache.axis2.transport.http.SOAPMessageFormatter.writeTo(SOAPMessageFormatter.java:88) 位于com.ibm.ws.webvcs.transport.http.SOAPOverHTTPSender.writeMessage(SOAPOverHTTPSender.java:3271) 位于com.ibm.ws.webvcs.transport.http.SOAPOverHTTPSender.sendChunkedRequest(SOAPOverHTTPSender.java:888) 位于com.ibm.ws.webvcs.transport.http.SOAPOverHTTPSender.sendSOAPRequest(SOAPOverHTTPSender.java:807) 位于com.ibm.ws.webvcs.transport.http.SOAPOverHTTPSender.send(SOAPOverHTTPSender.java:611) 在com.ibm.ws.webvcs.transport.http.HTTPTransportSender.invoke(HTTPTransportSender.java:364)上 位于org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:531) 在org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:401)上 在org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:228)上 位于org.apache.axis2.client.OperationClient.execute(OperationClient.java:163) 位于org.apache.axis2.jaxws.core.controller.impl.AxisInvocationController.execute(AxisInvocationController.java:581) ... 52多 触发此操作的是尝试调用名为
webservicecooperationname
的web服务操作。我还看到了处理此错误的其他技巧,通常包括添加
@xmlseea
注释或调整编组和解编组的方式

在本例中,我调用的是一个Web服务,其代码由Maven基于WSDL(以及支持的模式)生成。我无法直接控制Maven生成的代码,也无法控制marshall/unmarshall调用。应用程序中的其他webservice调用似乎没有任何问题

更奇怪的是,我不能在本地服务器上复制它,尽管它发生在开发服务器上。为webservice生成的JAR是相同的,因为它包含了应用程序的其余代码

这一例外在本周突然出现(而且一直如此),我怀疑环境发生了变化,但我不确定是什么。有什么想法吗


新的观察结果:

在启动/重新启动服务器后,我第一次尝试在服务器上运行此代码时,它需要一段时间(大约一分钟)才会失败并引发异常。在那之后的每一次,异常几乎都是瞬间发生的


进一步资料:

WebSphere7.0.0.23(位于服务器上)中存在此问题,但WebSphere7.0中不存在此问题 Caused by: javax.xml.ws.WebServiceException: javax.xml.bind.JAXBException: au.com.mycompany.policyinquiry.retrieveinsurancepolicydetails.v1.RetrieveInsurancePolicyDetailsResp is not known to this context at org.apache.axis2.jaxws.ExceptionFactory.createWebServiceException(ExceptionFactory.java:175) at org.apache.axis2.jaxws.ExceptionFactory.makeWebServiceException(ExceptionFactory.java:70) at org.apache.axis2.jaxws.ExceptionFactory.makeWebServiceException(ExceptionFactory.java:128) at org.apache.axis2.jaxws.marshaller.impl.alt.DocLitBareMinimalMethodMarshaller.demarshalResponse(DocLitBareMinimalMethodMarshaller.java:158) at org.apache.axis2.jaxws.client.proxy.JAXWSProxyHandler.createResponse(JAXWSProxyHandler.java:499) at org.apache.axis2.jaxws.client.proxy.JAXWSProxyHandler.invokeSEIMethod(JAXWSProxyHandler.java:377) at org.apache.axis2.jaxws.client.proxy.JAXWSProxyHandler.invoke(JAXWSProxyHandler.java:185) at $Proxy80.retrieveInsurancePolicyDetails(Unknown Source) When the JAX-WS web service engine receives a message, it uses the JAXB engine to convert the message into java beans. The message indicates a failure occurred while converting xml into an object of type com.somecom.lib.business.xml.ComIdentifierXml. The failure indicates that the JAXB engine was not initialized with information about this user class. . In this use case, the class com.somecom.lib.business.xml.ComIdentifierXml is packaged in a JAR at the EAR level. The exception does not happen if the class is packaged in a JAR located in the WAR module's WEB-INF/lib directory.
SOLUTION: