2012-05-11 6 views
0

J'ai le problème de gollowing en invoquant un service Web avec JAXWS client, en cours d'exécution dans Tomcatjavax.xml.ws.WebServiceException sur JAXWS client WS-Addressing fonction

le code est le suivant:

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"); 

le code fonctionne correctement avec WS-Addressing fonctions, quand je le lance à partir Eclipse exécuter l'outil, sans fournir un fichier axis2.xml

lorsque je le lance dans une instance Tomcat, il me donne l'exception suivante

javax.xml.ws.WebServiceException: Erreur lors de l'obtention du contexte de configuration du client: Le système tente d'activer un module qui n'est pas disponible: adresse à 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.DescriptionF actoryImpl.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) à java.lang.Thread.run (Thread.java:595)

Quelqu'un a-t-il posé le même problème? Je ne peux pas en sortir

Répondre

0

Problème résolu.

L'outil d'exécution Eclipse n'était pas basé sur l'implémentation axis2 de la norme jax-ws mais sur la distribution autonome.

Pour avoir les mêmes classes fonctionnent correctement sur Tomcat avec axis2 je devais ajouter la ligne suivante avant de créer l'instance de service

System.setProperty(org.apache.axis2.Constants.AXIS2_REPO, getServletContext().getRealPath(FILE_SEPARATOR) + FILE_SEPARATOR + "WEB-INF"); 

Pour que la mise en œuvre de axis2 peut accéder correctement les modules et dirs de configuration.

Questions connexes