2009-11-04 5 views
2

J'écris une interface pour notre application VXML qui permettra l'accès à un service SOAP.
En raison des difficultés inhérentes à essayer d'utiliser javascript pour faire des appels SOAP et les limitations de VXML, comme dans les appels de ressources externes sont plutôt limitées à HTTP demandes, GET et POST.Intégration SOAP et VXML

J'ai conçu une servlet Java qui servirait de fournisseur de services à l'application VXML. Il peut appeler cette servlet avec des arguments indiquant le type de service Web, le nom de la méthode à invoquer et les arguments à lui transmettre. La servlet effectue alors l'appel de service Web approprié et renvoie la réponse dans une réponse normalisée VXML.

Le problème est que j'ai sérieusement sous-estimé à quel point SOAP est vraiment difficile. Je pensais que je pouvais simplement construire l'appel de savon et le faire en java, mais son regard à moi comme ceci est quelque chose d'un peu plus impliqué, nécessitant des choses comme Apache Axis2.

J'ai lu quelque part que les auditeurs pour Axis pourraient être HTTP servlets, ce qui ressemble beaucoup à ce que je fais déjà. Est-ce que je réinvente la roue ici?
Y at-il une suggestion pour moi sur la façon de faire mieux?
Je suis assez investi dans la façon dont je le fais maintenant et serait donc très réceptif à un moyen facile d'accomplir l'appel SOAP et traiter la réponse à partir d'un jsp servlet.

EDIT - Après avoir pris le conseil ici, j'ai plongé un peu plus loin dans Axis.
En fait, Axis2 est la troisième génération d'Apache Apache SOAP. Ce qui est malheureux à ce sujet est qu'après une recherche approfondie, je ne peux pas trouver un seul endroit solitaire où l'implémentation Apache SOAP originale peut être téléchargée.
je ne pourrais pas prendre soin si:

A) Axis me permettrait d'intégrer quelques jars et jsps roulées dans une WAR autonome app

B) tout .. je veux dire tout jusqu'à ce point a été fait en utilisant exemples de ApacheSOAP (le livre que j'utilisais, le code que j'ai écrit jusqu'à présent .. tout).

Je google un peu plus penser .. hey, il doit y avoir une sorte de bibliothèque autonome pour Java qui me permet simplement de faire un seul solitaire simple appel SOAP et d'analyser les résultats.
Mais non, pas de chance!
Apparemment si vous voulez utiliser Java et SOAP vous avez soit le gigantesque axe incomparablement épais et compliqué ou .. vous rouler votre propre mise en œuvre de savon à partir de zéro. Je suis tellement brûlé là-dessus. Je ne comprends pas pourquoi le savon est si merveilleux étant donné les 7 derniers jours de 13 heures que j'ai passé à essayer d'obtenir une simple demande de hello world à partir de JSP.

Répondre

2

Une bibliothèque comme Axis est définitivement la solution, vous ne voulez pas tenter de construire/analyser les messages SOAP par vous-même.

Regardez en utilisant wsdl2java (another link et another) pour créer des proxies client pour lequel vous pouvez invoquer le web services. Cela va générer un tas de code Java que vous pouvez appeler dans de votre code, puis Axis traitera vos arguments dans l'emballage XML messages, envoyer à travers le fil au serveur, de-sérialisation la réponse, etc.

+1

Remerciez toi. J'ai récemment éclairci quelques idées fausses que j'avais avec ceci et avec parler avec d'autres. Le savon n'est pas aussi gonflé que je le pensais, même si je pense toujours que c'est ... gonflé. 0) –