REST et SOAP Web Services pour une seule application
Nous avons construire une application à l'aide de Printemps et déployé avec Tomcat. Nous avons une interface REST, cependant, l'un de nos clients a un client SOAP.
Ma compréhension est qu'un service web SOAP et REST service web ne peuvent pas coexister sur le même port ou de l'application.
Quelles sont mes options pour l'acceptation d'une requête SOAP avec aussi peu de développement possible. Dois-je accepter un paquet soap via le reste de l'interface et d'analyser le fichier XML? Ou puis-je configurer une interface SOAP communiquer avec mon RESTE de l'interface et de répondre?
Je suis en utilisant Gradle comme mon outil de construction. Il serait agréable d'avoir la solution dans le cadre d'un seul fichier WAR
Effectivement, c'est un bon point, mais je pense que leur application est sur le bord de la mort - le toucher aussi peu que possible " mode
OriginalL'auteur Max | 2013-12-06
Vous devez vous connecter pour publier un commentaire.
Dans mon expérience, vous peut mélange de SAVON et de REPOS dans l'application même si vous êtes très prudent sur les espaces de noms XML pour JAXB. Cependant, je ne le recommande pas car la mise à jour de l'un des moyens de risquer de l'autre de la stabilité. Voici ce que je recommande...
SOAP est un protocole et non pas seulement un format donc ce ne sera probablement pas fonctionner avec la plupart (tous?) les cadres.
Vous pourrait probablement au détriment de la performance et/ou maintenance.
À mon humble avis, les deux fichiers WAR va utiliser un bocal en fournissant à l'entreprise de la logique. (désolé, pas pu laisser cette réponse 🙂 )
OriginalL'auteur
Nous avons un projet qui a des exigences similaires. Nous avons encore à l'appui de SAVON et de, nous allons de l'avant avec le Reste.
Il n'y a pas de raison que les deux seront en conflit. Depuis que vous utilisez le printemps, vous pouvez même avoir le même domaine d'objets comme une réponse qui obtient rassemblées pour XML et JSON comme votre préférence.
Ce que vous avez à faire est de créer des URI différent pour les deux. e.g
someService/**
pour le SAVON etsome-rest
pour le Reste des implémentations. Vous pouvez avoir une couche de service à la poignée logique partagée (principalement le code nécessaire sur le point de fin et le reste du contrôleur consiste à extraire les données requises à partir de la couche de service et de l'envoyer, afin de le placer)Juste ajouter un peu de l'entrée à votre
web.xml
fichier pour indiquer le reste de chemin d'accès et le point de terminaison des chemins...OriginalL'auteur
Il semble que votre service web est principalement de REPOS (2013), mais vous avez à l'appui de savon pour un nombre limité de cas. J'avais de la conception de votre web service avec le reste principalement à l'esprit, mais peut-être utiliser un mécanisme distinct pour indiquer au serveur que le client exige savon de soutien. Si possible, le savon client envoie une requête http en-tête ou utiliser la modification de l'URL qui se termine peut-être .le savon. En tout cas, il n'y a aucune raison pourquoi vous ne pouvez pas soutenir à la fois les protocoles sur la même application.
OriginalL'auteur
Vous pouvez le faire en faisant annotation de rest et soap sur l'implémentation de la classe, et aussi la création d'interface pour tenir la méthode d'annotation pour la soupe. et dans la classe de mise en œuvre mettre repos annotation sur la méthode et configurer le
web.xml
fichier à ajouterservlet
pour le repos de mise en œuvre que vous utilisez._ Ajout d'une configuration pour votre Repos de la mise en œuvre que vous utilisez
[ ApplicationConfiguration se classe seulement à étendre l'Application ]
OriginalL'auteur