
[英]JAXWS-RT: getting com.sun.xml.ws.spi.db.DatabindingException binding a simple class
[英]com.sun.xml.ws.spi.db.DatabindingException: Unknown JAXBContext implementation: class com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl
我们有一个使用@WebserviceProvider注释的EJB3.1无状态会话bean。 不知何故,当抛出肥皂故障异常时,我们得到以下异常。 此服务部署在weblogic 12c上,它使用Jdk 1.7。 还有其他人遇到过这个问题吗? 你能帮忙吗。 提前致谢。
com.sun.xml.ws.spi.db.DatabindingException: Unknown JAXBContext implementation:
class com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl
at com.sun.xml.ws.spi.db.BindingContextFactory.getJAXBFactory(BindingCon
textFactory.java:204)
at com.sun.xml.ws.spi.db.BindingContextFactory.create(BindingContextFact
ory.java:146)
at com.sun.xml.ws.message.jaxb.JAXBMessage.create(JAXBMessage.java:161)
at com.sun.xml.ws.fault.SOAPFaultBuilder.createSOAP11Fault(SOAPFaultBuil
der.java:423)
at com.sun.xml.ws.fault.SOAPFaultBuilder.createSOAPFaultMessage(SOAPFaul
tBuilder.java:200)
at com.sun.xml.ws.fault.SOAPFaultBuilder.createSOAPFaultMessage(SOAPFaul
tBuilder.java:188)
at com.sun.xml.ws.addressing.WsaServerTube.processException(WsaServerTub
e.java:214)
at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:887)
at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:841)
at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:804)
at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:706)
at com.sun.xml.ws.server.WSEndpointImpl$2.process(WSEndpointImpl.java:43
0)
at com.sun.xml.ws.transport.http.HttpAdapter$HttpToolkit.handle(HttpAdap
ter.java:640)
at com.sun.xml.ws.transport.http.HttpAdapter.handle(HttpAdapter.java:265
)
at com.sun.xml.ws.transport.http.servlet.ServletAdapter.handle(ServletAd
apter.java:163)
at weblogic.wsee.jaxws.WLSServletAdapter.handle(WLSServletAdapter.java:1
71)
at weblogic.wsee.jaxws.HttpServletAdapter$AuthorizedInvoke.run(HttpServl
etAdapter.java:708)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(Authenticate
dSubject.java:363)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:
146)
at weblogic.wsee.util.ServerSecurityHelper.authenticatedInvoke(ServerSec
urityHelper.java:103)
at weblogic.wsee.jaxws.HttpServletAdapter$3.run(HttpServletAdapter.java:
311)
at weblogic.wsee.jaxws.HttpServletAdapter.post(HttpServletAdapter.java:3
36)
at weblogic.wsee.jaxws.JAXWSServlet.doRequest(JAXWSServlet.java:99)
at weblogic.servlet.http.AbstractAsyncServlet.service(AbstractAsyncServl
et.java:99)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:844)
at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run
(StubSecurityHelper.java:242)
at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run
(StubSecurityHelper.java:216)
at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecuri
tyHelper.java:132)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.jav
a:338)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.jav
a:221)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationActio
n.wrapRun(WebAppServletContext.java:3284)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationActio
n.run(WebAppServletContext.java:3254)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(Authenticate
dSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:
120)
at weblogic.servlet.provider.WlsSubjectHandle.run(WlsSubjectHandle.java:
57)
at weblogic.servlet.internal.WebAppServletContext.doSecuredExecute(WebAp
pServletContext.java:2163)
at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppS
ervletContext.java:2089)
at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletC
ontext.java:2074)
at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.j
ava:1513)
at weblogic.servlet.provider.ContainerSupportProviderImpl$WlsRequestExec
utor.run(ContainerSupportProviderImpl.java:254)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:256)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)
我有类似的问题,并通过修复wsdl文件中的小错误设法解决它。 我的情况是wsdl定义了两个请求和响应类型的操作。 第二个操作是使用为第一个操作定义的类型,如下例所示:
<wsdl:message name="SecondOperationRequest">
<wsdl:part name="parameters" element="tns:FirstOperationrequestType"/>
</wsdl:message>
修好之后:
<wsdl:message name="FirstOperationRequest">
<wsdl:part name="parameters" element="tns:FirstOperationrequestType"/>
</wsdl:message>
之前只有一个名称可以区分这些操作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.