Tomcat 具有ws-addressing功能的jaxws客户端上的javax.xml.ws.WebServiceException

Tomcat 具有ws-addressing功能的jaxws客户端上的javax.xml.ws.WebServiceException,tomcat,client,jax-ws,dispatch,ws-addressing,Tomcat,Client,Jax Ws,Dispatch,Ws Addressing,在Tomcat中运行的jaxws客户端调用web服务时,我遇到了gollowing问题 代码如下: javax.xml.namespace.QName portQname = new javax.xml.namespace.QName("urn:hl7-org:v3","PRPA_AR201302UV02_Service"); javax.xml.ws.Service service = javax.xml.ws.Service.create(new javax.xml.name

在Tomcat中运行的jaxws客户端调用web服务时,我遇到了gollowing问题

代码如下:

    javax.xml.namespace.QName portQname = new javax.xml.namespace.QName("urn:hl7-org:v3","PRPA_AR201302UV02_Service");
    javax.xml.ws.Service service = javax.xml.ws.Service.create(new javax.xml.namespace.QName("urn:hl7-org:v3","PRPA_AR201302UV02_Service"));
    service.addPort(portQname,javax.xml.ws.soap.SOAPBinding.SOAP12HTTP_BINDING,wsaddress);


    Dispatch<Object> dispatch =service.createDispatch(portQname,jaxbContext,javax.xml.ws.Service.Mode.PAYLOAD,new javax.xml.ws.soap.AddressingFeature());


    dispatch.getRequestContext().put(javax.xml.ws.BindingProvider.SOAPACTION_USE_PROPERTY,true);
    dispatch.getRequestContext().put(javax.xml.ws.BindingProvider.SOAPACTION_URI_PROPERTY,"urn:hl7-org:v3:PRPA_IN201301UV02");
javax.xml.namespace.QName portQname=newjavax.xml.namespace.QName(“urn:hl7 org:v3”,“PRPA_AR201302UV02_服务”);
javax.xml.ws.Service Service=javax.xml.ws.Service.create(新的javax.xml.namespace.QName(“urn:hl7 org:v3”,“PRPA_AR201302UV02_服务”);
addPort(portQname,javax.xml.ws.soap.SOAPBinding.SOAP12HTTP_BINDING,wsaddress);
Dispatch Dispatch=service.createDispatch(portQname,jaxbContext,javax.xml.ws.service.Mode.PAYLOAD,new javax.xml.ws.soap.AddressingFeature());
dispatch.getRequestContext().put(javax.xml.ws.BindingProvider.SOAPACTION\u USE\u属性,true);
dispatch.getRequestContext().put(javax.xml.ws.BindingProvider.SOAPACTION_URI_属性,“urn:hl7 org:v3:PRPA_IN201301UV02”);
当我从Eclipse运行工具运行它时,代码可以与ws-addressing特性一起正常工作,而不提供axis2.xml文件

当我在Tomcat实例中运行它时,它会给出以下异常

javax.xml.ws.WebServiceException:获取客户端配置上下文时出错:系统正在尝试使用不可用的模块:寻址 位于org.apache.axis2.jaxws.ExceptionFactory.createWebServiceException(ExceptionFactory.java:173) 位于org.apache.axis2.jaxws.ExceptionFactory.makeWebServiceException(ExceptionFactory.java:70) 位于org.apache.axis2.jaxws.ExceptionFactory.makeWebServiceException(ExceptionFactory.java:118) 位于org.apache.axis2.jaxws.ClientConfigurationFactory.getClientConfigurationContext(ClientConfigurationFactory.java:119) 位于org.apache.axis2.jaxws.description.impl.DescriptionFactoryImpl.createServiceDescription(DescriptionFactoryImpl.java:92) 位于org.apache.axis2.jaxws.description.impl.DescriptionFactoryImpl.createServiceDescription(DescriptionFactoryImpl.java:79) 位于org.apache.axis2.jaxws.description.DescriptionFactory.createServiceDescription(DescriptionFactory.java:78) 位于org.apache.axis2.jaxws.spi.ServiceDelegate(ServiceDelegate.java:218) 位于org.apache.axis2.jaxws.spi.Provider.createServiceDelegate(Provider.java:83) 位于org.apache.axis2.jaxws.spi.Provider.createServiceDelegate(Provider.java:79) 位于javax.xml.ws.Service。(Service.java:92) 位于javax.xml.ws.Service.create(Service.java:756) 位于wgs.v3.client.impl.V3ClientNoWsdl.callMethod(V3ClientNoWsdl.java:128) 位于wgs.v3.client.impl.V3ClientNoWsdl.invoke(V3ClientNoWsdl.java:89) 位于wgs.tx.dispatcher.Sender.elab(Sender.java:204) 位于wgs.tx.dispatcher.Sender.elab(Sender.java:158) 在wgs.tx.system.MessageDispatcherSender.processRequest(MessageDispatcherSender.java:159)中 在wgs.tx.system.MessageDispatcherSender.run(MessageDispatcherSender.java:99) 运行(Thread.java:595)

有人提出过同样的问题吗?这个问题解决了,我无法摆脱

Eclipse运行工具不是基于jax ws标准的axis2实现,而是基于独立发行版

为了让相同的类在Tomcat和axis2上正常运行,我必须添加以下行 在创建服务实例之前

System.setProperty(org.apache.axis2.Constants.AXIS2_REPO, getServletContext().getRealPath(FILE_SEPARATOR) + FILE_SEPARATOR + "WEB-INF");
以便axis2实现能够正确访问模块和配置目录