2010-07-23 5 views
4

J'ai un fichier wsdl et un document détaillé sur tous les éléments dans chaque demande et réponse d'un fournisseur de services Web. Mon travail consiste à composer environ 40 demandes et à analyser les réponses correspondantes. Plus spécifiquement, notre plate-forme soumet les demandes et obtient des réponses du service, donc pour moi, en tant que développeur d'applications, j'ai seulement besoin de composer des demandes de savon et de les passer en tant que chaîne à la plate-forme. J'obtiens aussi la réponse en tant que chaîne de la plate-forme.Composer une demande de savon en Java

J'ai essayé StringBuilder, mais il semble plutôt primitif. Ce doit être une meilleure façon de le faire. Puis-je placer toutes les demandes dans un document xml et en générer des demandes de quelque manière que ce soit?

Ou encore mieux, est-il possible de générer des requêtes à partir du fichier wsdl?

Merci,

Sarah

+0

Je ne sais pas comment StringBuilder semble plus primitif que String – Woot4Moo

+0

Salut Woot4Moo (joli nom btw), par primitif je veux dire quand je compile les requêtes, j'utilise StringBuilder. Par exemple, StringBuilder.append (""). Il y a beaucoup de dactylographie, donc je l'ai appelé primitif – sarahTheButterFly

Répondre

2

Jetez un oeil sur les services publics WSDL2Java (il existe plusieurs versions, une avec Axis2 emballé, un autre d'IBM, etc.). Ceux-ci peuvent générer des talons de client à partir de votre WSDL, et devraient vous faire économiser une quantité considérable de travail. Je viens de me rendre compte que cela peut nécessiter un travail supplémentaire puisque vous dites que votre plateforme soumet les demandes. Le code généré devrait essayer de soumettre des chaînes au service si c'est ce qui est spécifié par votre WSDL, peut-être que vous pouvez modifier le code pour transmettre les chaînes à votre plate-forme?

JAX-WS's wsimport

Client stubs w/ XFire

Axis2's wsdl2java

IBM's wsdl2java

+0

Hi Segphault, merci d'avoir répondu. J'ai essayé wsdl2java d'Axis pour tester un service web sur un autre projet. Les stubs générés étaient assez désordonnés (je ne trouve pas de meilleur mot, désolé), et je dois passer une requête en tant que String à notre plateforme, donc je ne pense pas que les talons vont aider? Peut-être que j'ai utilisé wsdl2java dans le mauvais sens? – sarahTheButterFly

+0

répondre sur votre EDIT. Oui, cela pourrait être un moyen de le faire. Je vais jeter un coup d'oeil. – sarahTheButterFly

+0

Oui, le code généré va être un désordre par défaut - il y a quelques options que vous pouvez passer pour le resserrer un peu, mais je ne me souviens pas exactement de quoi (je pense que cela a à voir avec le choix de la liaison de données) . Honnêtement, j'ai du mal à recommander quoi que ce soit des projets Axis en toute bonne conscience car ils sont un tas de merde. Vous pouvez également jeter un oeil à la génération du talon avec XFire (lien ajouté à l'article original). –

0

La façon la plus simple est la bibliothèque de savon ws: https://github.com/reficio/soap-ws

SoapClient client = SoapClient.builder() 
     .endpointUrl("http://rpc.middleearth.com") 
     .build(); 

    client.post(envelope); 
Questions connexes