J'utilise un gestionnaire jax-ws pour intercepter un message SOAP afin de pouvoir récupérer certains éléments de l'en-tête. Existe-t-il un moyen de désérialiser un en-tête et de l'analyser en un objet généré par wsdl2java ou xmlbeans? Je suis en train de migrer d'AXIS vers CXF. Sous AXIS, je pourrais obtenir l'en-tête XML et l'analyser en utilisant une classe Factory. Je n'ai pas trouvé un bon moyen de le faire avec les objets générés à partir de CXF wsdl2java. Je me rends compte que je peux utiliser le getElementsByTagName pour récupérer chaque nœud, mais il est simplement plus facile de travailler avec l'objet réel.Déserialisez l'en-tête dans le gestionnaire jaxws
1
A
Répondre
1
Vous pouvez utiliser l'API SAAJ pour manipuler directement le message SOAP. Étendre AbstractSoapInterceptor
en implémentant la méthode handleMessage()
et l'ajouter à la chaîne d'InInterceptors.
public class MyCustomInInterceptor extends AbstractSoapInterceptor {
public void handleMessage(SoapMessage soapMessage) throws Fault {
try {
SOAPMessage message = soapMessage.getContent(SOAPMessage.class);
SOAPPart sp = message.getSOAPPart();
SOAPEnvelope se = sp.getEnvelope();
SOAPBody sb = se.getBody();
SOAPHeader sh = se.getHeader();
}
catch(Exception e)
{
log.error(e);
throw new Fault(e);
}
}
}
NOTE: Vous aurez également besoin d'attacher SAAJInInterceptor
à la chaîne d'intercepteurs ou bien soapMessage.getContent(SOAPMessage.class)
retournera null
Questions connexes
- 1. Déserialisez la réponse GET
- 2. JAXWS dans Websphere
- 3. Déserialisez le tableau XML à la racine du document
- 4. Quelle est la différence entre jaxws-ri et jaxws-rt?
- 5. Comment charger paresseux le client jaxws
- 6. XSD, JaxWS, et Glassfish
- 7. JAXWS et sessions
- 8. JAXWS-maven-plugin LifecycleExecutionException
- 9. Client EasyMock CXF JAXWS
- 10. chargement explicite de jaxws
- 11. JAXWS ne traite que 100 demandes simultanées, comment configurer JAXWS pour le changer en illimité?
- 12. Mise en cache JAXWS dans JSF
- 13. Définition de chemins/URL dans le service Web JaxWS,
- 14. Comment obtenir SoapHeader sur JAXWS WebService
- 15. URL de l'application JaxWS dans Tomcat
- 16. Comment utiliser FastInfoset avec JAXWS?
- 17. XmlInverseReference, Hibernate, JAXWS et Moxy
- 18. jaxws multple webservices single wsdl
- 19. Déserialisez le message SOAP dans VB6 - SoapClient30 MS SOAP Type Bibliothèque
- 20. Déserialisez l'objet Mantle à l'aide de deux formats JSON
- 21. pour définir le délai d'expiration du client JAXWS 2.2
- 22. Comment faire junit pour le service jaxws avec axis2
- 23. jaxws 2.1.5 sur weblogic 10.3.1 au lieu de jaxws pré-installé 2.1.1?
- 24. Comment puis-je changer le port d'un proxy Spring JaxWs?
- 25. javax.xml.ws.WebServiceException sur JAXWS client WS-Addressing fonction
- 26. Mule 3.2 flux et cxf: jaxws-service
- 27. spring webservice Invalid NamespaceHandler problème (jaxws)
- 28. JAXWS wsimport arrêt de la recompilation
- 29. Webservice Suivre Redirect Faux - Erreur 302 (JAXWS)
- 30. jaxws webservice url Paramètre supplémentaire pour l'autorisation
Mais je voudrais travailler avec les classes générées Java2WSDL et non le CXF SOAPMessage, SOAPBody , etc. Existe-t-il un moyen d'analyser/transformer le SOAPMessage en classes générées? –