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

InformationsquelleAutor Phil | 2012-09-18