2010-02-13 6 views
2

Je n'ai trouvé aucun moyen pratique de créer quelque chose comme un wrapperclass jaxws pour un Soap Webservice existant - comme en Java complet. Jaxws n'est malheureusement pas disponible dans le sdk.Accès à un WebService SOAP

Est-ce qu'il y avait quelque chose à faire sans utiliser de bibliothèques externes? Existe-t-il des bibliothèques externes?

+0

Vous pouvez modifier votre message dans un intermédiaire SOAP qui est placé entre votre client et le service. Que faites-vous exactement quoi faire? – baranco

Répondre

0

La réponse courte est que non, il n'y a aucun moyen de faire exactement ce que vous voulez. Cependant, il existe une implémentation DOM et SAX. Si vous savez à quoi ressemble le XML entrant (ce que vous devriez de toute façon), vous pouvez écrire un unmarshaller personnalisé.

+0

J'espère que quelque chose comme ksoap (que j'ai besoin d'évaluer de toute façon) pourrait fournir des outils pour générer des wrappers automatiquement. Pour écrire vos propres décodeurs xml n'est pas faisable pour les projets plus importants avec des objets plus complexes pour marschall via les services web. Au moins ce n'est pas abordable (si vous n'êtes pas payé de ce travail);) – Obiwan007

+0

J'ai dû faire cela même pour un projet assez complexe récemment. J'ai fini par utiliser JAXB pour générer les fichiers de classe, puis écrire manuellement un analyseur SAX. C'était un cauchemar (et a pris une éternité), mais ça a marché. –

0

Je ne veux vraiment pas écrire/décoder manuellement les messages de savon. Je veux juste consommer un webservice externe. Il est très facile de le faire avec des librairies et des outils Java complets (wsimport) et de créer les classes wrapper correspondantes pour accéder au ws sous forme de classes Java "normales". Le programmeur client ws habituel n'aura jamais besoin de toucher du tout un soap backend ... C'est à ça que servent les classes client de jaxws. ksoap n'est malheureusement qu'une première étape pour accéder à du contenu soap - pas de codegeneration basé sur wsdl pour autant que je sache ... Espérons que le sdk va adresser cette issua dans l'une des prochaines versions autant que wsdl et handcoding ce truc est vraiment en désordre ...

Questions connexes