SAVON ne sais pas ce que mon URL de point de terminaison est
J'espère que ce problème est extrêmement simple et il est juste de moi d'être un idiot. Je suis nouveau sur le SAVON et je suis tente de mettre en place un WebService SOAP (à l'aide de Java et de Printemps), puis à l'aide de l'outil SoapUI, je cherche à envoyer une requête SOAP à mon service Web. Cependant j'ai toujours 404 Non Trouvé des erreurs quand je soumettre ma demande. Je soupçonne l'espoir que je viens de mettre mon point de Terminaison incorrecte dans SoapUI, mais je ne sais pas quelle est la valeur que je devrais y mettre. Quelqu'un peut-il aider?
Ce sont les étapes que j'ai prises pour la création de ma WebApp avec du SAVON de soutien:
1) je suis via une WebApp (qui a déjà des Services Web REST) en cours d'exécution dans Spring Tool Suite (qui est basé sur Eclipse) et à l'aide de la Jetée. Dans mon web.xml fichier que j'ai ajouté un nouveau Service Web SOAP:
<servlet-mapping>
<servlet-name>SOAPWebService</servlet-name>
<url-pattern>/ws/SOAP/*</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>SOAPWebService</servlet-name>
<servlet-class>org.springframework.ws.transport.http.MessageDispatcherServlet</servlet-class>
<init-param>
<param-name>transformWsdlLocations</param-name>
<param-value>true</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
2) j'ai créé une nouvelle catégorie "ProjectSearchEndpoint" qui a une annotation @Extrémité. La charge utile de la racine = @PayloadRoot(namespace = "http://FOO.FOO/foo", localPart = "ProjectRequest")
3) j'ai ajouté le DSD pour le WEB-INF de mon WebApp: ws-projet.xsd
4) j'ai créé une servlet fichier XML appelé: SOAPWebService-servlet.xml qui fait référence à la DSD
<bean id="projectSearch" class="org.springframework.ws.wsdl.wsdl11.DefaultWsdl11Definition">
<property name="schema" ref="schema"/>
<property name="portTypeName" value="ProjectSearch"/>
</bean>
<bean id="schema" class="org.springframework.xml.xsd.SimpleXsdSchema">
<property name="xsd" value="/WEB-INF/ws-project.xsd"/>
</bean>
REMARQUE: le point de terminaison du code et DSD venez du blog:
http://javaclue.blogspot.co.uk/2012/05/soap-web-service-using-spring-ws-20.html J'ai édité l'espace de noms pour le faire "http://FOO.FOO/foo" mais en dehors de cela, le code est le même, bien que j'ai ajouté au Système.les lignes à afficher lorsque l'objet est construit (il est) et lorsque le "searchProjects" la méthode est invoquée (il ne l'est jamais).
Je peux commencer ma webApp avec succès et si dans mon navigateur j'ai accédez à l'URL:
http://localhost:8080/MyApp/ws/SOAP/projectSearch.wsdl
J'arrive à voir le WSDL. Tout bon jusqu'ici.
Lorsque j'utilise SoapUI-je créer un nouveau projet et de passer dans le WSDL. SoapUI semble heureuse. - Je demander une demande et SoapUI crée une Enveloppe Soap avec mon ProjectRequest en elle. Tout se passe très bien! Cependant, à soumettre la présente demande SoapUI veut un point de Terminaison. Je pense que mon point de terminaison est:
http://localhost:8080/MyApp/ws/SOAP/
mais cela renvoie un 404 not found. D'essayer d'autres combinaisons comme
http://localhost:8080/MyApp/ws/SOAP/projectSearch
http://localhost:8080/MyApp/ws/SOAP/projectSearch?wsdl
http://localhost:8080/MyApp/ws/SOAP/ProjectRequest
tous les résultats en 404. Quel est mon point de terminaison? Quelle valeur dois-je mettre dans SoapUI?
Mise à jour de 1
Pour plus de clarté, c'est ce que je fais dans soapUI
Ayant commencé soapUI, j'ai créer un "nouveau Projet soapUI". Le nom est A1. La première WSDL est:
http://localhost:8080/MyApp/ws/SOAP/projectSearch.wsdl
aussi "Créer une Demande" est cochée dans la boîte de dialogue.
Je clique sur OK et il crée un ProjectSearchSoap11 (avec une icône d'un vert je l'ai à côté d'elle) avec un Projet unique en dessous (icône de flèches rouges) et en vertu de cette "Request1" (icône de la parole de SAVON). Je clique à droite Request1 et sélectionnez "Afficher l'Éditeur de Requête". Cela affiche une fenêtre avec une enveloppe SOAP et mon espace de noms et ProjectRequest. Tout cela semble bon.
Je veux maintenant cliquez sur "Soumettre la demande à sepecified URL du point de Terminaison" (flèche verte en haut à gauche), mais c'est grisé jusqu'à ce que je spécifier un point de terminaison (à droite). Je clique sur les points de terminaison de liste déroulante et sélectionnez "edit-courant". Une boîte de dialogue s'affiche. Je suis entrée:
http://localhost:8080/MyApp/ws/SOAP/
et cliquez sur ok. Maintenant, la course icône est activée (vert). En cliquant sur cette icône, puis les résultats dans une "réponse" de la fenêtre qui apparaît, qui est vide, mais les données brutes:
HTTP/1.1 404 Not Found
Content-Length: 0
Server: Jetty(6.1.26)
Je suppose que le point de terminaison j'ai choisi est mauvais. Pouvez-vous confirmer que c'est le mauvais format ou je suis absent un suffixe d'une certaine sorte. Si vous pensez que c'est correct alors il doit être ma configuration sur l'application web qui est en faute.
Merci,
Phil
Vous devez vous connecter pour publier un commentaire.
Lorsque vous créez le soapui testrequest il doit remplir le système d'extrémité de champ pour vous.
Vous pouvez également exécuter l'échantillon de demandes en vertu de la verte icône "I", au moins pour tester votre point de terminaison. Je ne recommande pas l'édition de ces à utiliser pour vos tests, mais je pense que beaucoup de gens utilisent SoapUI de cette façon.
Qu'entendez-vous par "je demander une demande'? Vous devriez être en mesure de faire un clic droit de la demande de test de deux niveaux sous le vert de " je " et sélectionnez ajouter aux cas de test. Il y a quelques dialogues après que le où vous pouvez prendre les valeurs par défaut. Il va créer un Junit type de structure: une suite de tests et des cas de test. En dessous sont les étapes de test que vous pouvez exécuter par eux-mêmes ou en tant que partie de la suite ou du cas de test.
EDIT 1:
Pour moi, ça ne me semble pas normal. Malheureusement, je n'ai pas écrit quelque chose, mais la simple démonstration de services, bien que...