Erreur au moment d'invocation d'un service web
Fermé
chercheur2017
Messages postés
57
Date d'inscription
mardi 18 avril 2017
Statut
Membre
Dernière intervention
16 décembre 2018
-
Modifié le 24 mai 2017 à 16:53
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 - 25 mai 2017 à 19:07
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 - 25 mai 2017 à 19:07
A voir également:
- Soap version mismatch
- Erreur 0x80070643 - Guide
- Instagram web - Guide
- Traduire une page web - Guide
- Orange service client - Guide
- Service spouleur - Guide
3 réponses
KX
Messages postés
16733
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
31 janvier 2024
3 015
24 mai 2017 à 17:51
24 mai 2017 à 17:51
Bonjour,
L'erreur 500 c'est une erreur côté serveur donc toi en tant que client tu ne peux rien faire pour corriger le problème.
Éventuellement il y a peut être des informations supplémentaires concernant l'erreur, il faudrait lire la réponse complète, par exemple avec SoapUi
L'erreur 500 c'est une erreur côté serveur donc toi en tant que client tu ne peux rien faire pour corriger le problème.
Éventuellement il y a peut être des informations supplémentaires concernant l'erreur, il faudrait lire la réponse complète, par exemple avec SoapUi
KX
Messages postés
16733
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
31 janvier 2024
3 015
Modifié le 24 mai 2017 à 19:34
Modifié le 24 mai 2017 à 19:34
Je viens de rentrer chez moi et j'ai testé ton web service avec SoapUI.
Voici la réponse complète qui m'est renvoyée :
Du coup ça rejoint ce que je disais tout à l'heure, c'est bien une exception qui a été levée sur le serveur (en .NET ici, pas en Java, mais c'est assez proche) et se traduit par une erreur 500.
La stack trace est relativement explicite: "Envelope namespace http://www.w3.org/2003/05/soap-envelope/ was unexpected. Expecting http://schemas.xmlsoap.org/soap/envelope/"
Le XML que tu lui donnes en entrée est incorrect.
Là encore SoapUI t'aide puisqu'il te construit automatiquement les requêtes valides à partir du WSDL. Ce qui donne :
Le résultat est 200 OK avec SoapUI, à tester avec ton code :
La confiance n'exclut pas le contrôle
Voici la réponse complète qui m'est renvoyée :
HTTP/1.1 500 Internal Server Error Cache-Control: private Content-Type: text/xml; charset=utf-8 Server: Microsoft-IIS/7.0 X-AspNet-Version: 4.0.30319 X-Powered-By: ASP.NET Date: Wed, 24 May 2017 17:18:55 GMT Content-Length: 1109 <?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <soap:Header> <soap12:Upgrade xmlns:soap12="http://www.w3.org/2003/05/soap-envelope"> <soap12:SupportedEnvelope qname="soap:Envelope"/> <soap12:SupportedEnvelope qname="soap12:Envelope"/> </soap12:Upgrade> </soap:Header> <soap:Body> <soap:Fault> <faultcode>soap:VersionMismatch</faultcode> <faultstring>System.Web.Services.Protocols.SoapException: Possible SOAP version mismatch: Envelope namespace http://www.w3.org/2003/05/soap-envelope/ was unexpected. Expecting http://schemas.xmlsoap.org/soap/envelope/. at System.Web.Services.Protocols.SoapServerProtocol.CheckHelperVersion() at System.Web.Services.Protocols.SoapServerProtocol.ReadParameters() at System.Web.Services.Protocols.WebServiceHandler.CoreProcessRequest()</faultstring> <detail/> </soap:Fault> </soap:Body> </soap:Envelope>
Du coup ça rejoint ce que je disais tout à l'heure, c'est bien une exception qui a été levée sur le serveur (en .NET ici, pas en Java, mais c'est assez proche) et se traduit par une erreur 500.
La stack trace est relativement explicite: "Envelope namespace http://www.w3.org/2003/05/soap-envelope/ was unexpected. Expecting http://schemas.xmlsoap.org/soap/envelope/"
Le XML que tu lui donnes en entrée est incorrect.
Là encore SoapUI t'aide puisqu'il te construit automatiquement les requêtes valides à partir du WSDL. Ce qui donne :
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="http://www.webservicex.net/"> <soapenv:Header/> <soapenv:Body> <web:GetGeoIP> <!--Optional:--> <web:IPAddress>8.8.8.8</web:IPAddress> </web:GetGeoIP> </soapenv:Body> </soapenv:Envelope>
Le résultat est 200 OK avec SoapUI, à tester avec ton code :
HTTP/1.1 200 OK Cache-Control: private, max-age=0 Content-Type: text/xml; charset=utf-8 Content-Encoding: gzip Vary: Accept-Encoding Server: Microsoft-IIS/7.0 X-AspNet-Version: 4.0.30319 X-Powered-By: ASP.NET Date: Wed, 24 May 2017 17:29:10 GMT Content-Length: 391 <?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <soap:Body> <GetGeoIPResponse xmlns="http://www.webservicex.net/"> <GetGeoIPResult> <ReturnCode>1</ReturnCode> <IP>8.8.8.8</IP> <ReturnCodeDetails>Success</ReturnCodeDetails> <CountryName>United States</CountryName> <CountryCode>USA</CountryCode> </GetGeoIPResult> </GetGeoIPResponse> </soap:Body> </soap:Envelope>
La confiance n'exclut pas le contrôle
chercheur2017
Messages postés
57
Date d'inscription
mardi 18 avril 2017
Statut
Membre
Dernière intervention
16 décembre 2018
4
Modifié le 25 mai 2017 à 11:00
Modifié le 25 mai 2017 à 11:00
Bonjour KX,
Justement, j'ai utilisé SoapUI pour construire la requête "valide" (j'ai testé la méthode sur SoapUI, j'ai eu des résultats, j'ai copier la même requête avec les mêmes valeurs, je l'ai collé dans mon programme Java et ça ne marche pas). Chose que je n'arrive pas à comprendre est comment l'enveloppe s'est-elle transformée!!!!!!!!!!!!!!! parce qu'avec SoapUI normalement j'ai obtenu la bonne enveloppe :<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="http://www.webservicex.net/">
Bref, j'ai refait le test avec la bonne requête (que tu m'a envoyé et que j'ai obtenu moi même), et là j'obtiens l'erreur suivante avant l'exécution:
La première partie de l'enveloppe ("<soapenv:Envelope xmlns:soapenv="http) + la balise du header (+ " <soapenv:Header/>") est soulignée en rouge avec un trait en zigzag . je me suis référer à un autre exemple qui marche pour essayé de résoudre le problème. Du coup, j'ai rajouté quelques antislash "\" dans l'enveloppe (normalement c'est pour bien définir la chaîne de caractère attendue dans la variable "soapMessage"). Le trait a disparu. mais au moment de l'exécution toujours rien: le même problème persiste.
Dernière question si tu permets: comment as-tu testé le service en question avec SoapUI. jusqu'à présent tout ce que je sais faire avec SoapUI est de créer un nouveau projet avec l'@ du WSDL et de tester les méthodes du service!!
Justement, j'ai utilisé SoapUI pour construire la requête "valide" (j'ai testé la méthode sur SoapUI, j'ai eu des résultats, j'ai copier la même requête avec les mêmes valeurs, je l'ai collé dans mon programme Java et ça ne marche pas). Chose que je n'arrive pas à comprendre est comment l'enveloppe s'est-elle transformée!!!!!!!!!!!!!!! parce qu'avec SoapUI normalement j'ai obtenu la bonne enveloppe :<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="http://www.webservicex.net/">
Bref, j'ai refait le test avec la bonne requête (que tu m'a envoyé et que j'ai obtenu moi même), et là j'obtiens l'erreur suivante avant l'exécution:
String soapMessage = "<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="http://www.webservicex.net/">" + " <soapenv:Header/>" + " <soapenv:Body>" + " <web:GetGeoIP>" + "<!--Optional:-->" + " <web:IPAddress>8.8.8.8</web:IPAddress>" + " </web:GetGeoIP>" + "</soapenv:Body>" + "</soapenv:Envelope>";
La première partie de l'enveloppe ("<soapenv:Envelope xmlns:soapenv="http) + la balise du header (+ " <soapenv:Header/>") est soulignée en rouge avec un trait en zigzag . je me suis référer à un autre exemple qui marche pour essayé de résoudre le problème. Du coup, j'ai rajouté quelques antislash "\" dans l'enveloppe (normalement c'est pour bien définir la chaîne de caractère attendue dans la variable "soapMessage"). Le trait a disparu. mais au moment de l'exécution toujours rien: le même problème persiste.
Dernière question si tu permets: comment as-tu testé le service en question avec SoapUI. jusqu'à présent tout ce que je sais faire avec SoapUI est de créer un nouveau projet avec l'@ du WSDL et de tester les méthodes du service!!
KX
Messages postés
16733
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
31 janvier 2024
3 015
Modifié le 25 mai 2017 à 11:24
Modifié le 25 mai 2017 à 11:24
Bonjour,
"comment as-tu testé le service en question avec SoapUI. jusqu'à présent tout ce que je sais faire avec SoapUI est de créer un nouveau projet avec l'@ du WSDL et de tester les méthodes du service"
Justement, c'est ce que j'ai fait aussi, le WSDL est ici :
Sinon, pour ta transformation en String, fait un System.out.println() de ce que tu construis et colle le dans SoapUI pour tester ce que ça donne dans le webservice (on ne peut pas exclure une erreur dans ton programme non plus...)
Normalement tu devrais avoir :
Je tiens quand même à insister sur le fait qu'en Java il existe déjà des standards pour faire de la manipulation de web service, on ne devrait donc pas avoir à faire ceci à la main...
"comment as-tu testé le service en question avec SoapUI. jusqu'à présent tout ce que je sais faire avec SoapUI est de créer un nouveau projet avec l'@ du WSDL et de tester les méthodes du service"
Justement, c'est ce que j'ai fait aussi, le WSDL est ici :
http://www.webservicex.net/geoipservice.asmx?wsdl
Sinon, pour ta transformation en String, fait un System.out.println() de ce que tu construis et colle le dans SoapUI pour tester ce que ça donne dans le webservice (on ne peut pas exclure une erreur dans ton programme non plus...)
Normalement tu devrais avoir :
String ip = "8.8.8.8"; String request = "<soapenv:Envelope" + " xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\"" + " xmlns:web=\"http://www.webservicex.net/\">" + "<soapenv:Header/>" + "<soapenv:Body>" + "<web:GetGeoIP>" + "<web:IPAddress>" + ip + "</web:IPAddress>" + "</web:GetGeoIP>" + "</soapenv:Body>" + "</soapenv:Envelope>"; System.out.println(request);
Je tiens quand même à insister sur le fait qu'en Java il existe déjà des standards pour faire de la manipulation de web service, on ne devrait donc pas avoir à faire ceci à la main...
chercheur2017
Messages postés
57
Date d'inscription
mardi 18 avril 2017
Statut
Membre
Dernière intervention
16 décembre 2018
4
>
KX
Messages postés
16733
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
31 janvier 2024
25 mai 2017 à 11:59
25 mai 2017 à 11:59
désolé, mais là je ne te suis pas du tout!!
concernant le test du web service, ce que je n'ai pas compris est comment tu as pu avoir ça?
et concernat: "Sinon, pour ta transformation en String, fait un System.out.println() de ce que tu construis et colle le dans SoapUI pour tester ce que ça donne dans le webservice (on ne peut pas exclure une erreur dans ton programme non plus...)
Normalement tu devrais avoir :"
à quel niveau dois-je faire cette modification: est-ce au niveau de mon programme Java?
"colle le dans SoapUI"
et où dois-je le coller?
Pour Java, c'est vrai je ne maîtrise pas trop. vu que j'occupe un poste de chercheur je ne programme pas trop (notamment avec Java). normalement c'est aux ingénieurs de faire ce travail. mais comme on a un manque d'effectifs alors je voulais pas que le projet bloque. du coup, j'ai décidé de faire cette tâche moi même.
et je te remercie beaucoup pour ton aide KX. tu es toujours présent et tu réponds à toutes mes question. merci encore!!
concernant le test du web service, ce que je n'ai pas compris est comment tu as pu avoir ça?
HTTP/1.1 500 Internal Server Error Cache-Control: private Content-Type: text/xml; charset=utf-8 Server: Microsoft-IIS/7.0 X-AspNet-Version: 4.0.30319 X-Powered-By: ASP.NET Date: Wed, 24 May 2017 17:18:55 GMT Content-Length: 1109 <?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <soap:Header> <soap12:Upgrade xmlns:soap12="http://www.w3.org/2003/05/soap-envelope"> <soap12:SupportedEnvelope qname="soap:Envelope"/> <soap12:SupportedEnvelope qname="soap12:Envelope"/> </soap12:Upgrade> </soap:Header> <soap:Body> <soap:Fault> <faultcode>soap:VersionMismatch</faultcode> <faultstring>System.Web.Services.Protocols.SoapException: Possible SOAP version mismatch: Envelope namespace http://www.w3.org/2003/05/soap-envelope/ was unexpected. Expecting http://schemas.xmlsoap.org/soap/envelope/. at System.Web.Services.Protocols.SoapServerProtocol.CheckHelperVersion() at System.Web.Services.Protocols.SoapServerProtocol.ReadParameters() at System.Web.Services.Protocols.WebServiceHandler.CoreProcessRequest()</faultstring> <detail/> </soap:Fault> </soap:Body> </soap:Envelope>
et concernat: "Sinon, pour ta transformation en String, fait un System.out.println() de ce que tu construis et colle le dans SoapUI pour tester ce que ça donne dans le webservice (on ne peut pas exclure une erreur dans ton programme non plus...)
Normalement tu devrais avoir :"
à quel niveau dois-je faire cette modification: est-ce au niveau de mon programme Java?
"colle le dans SoapUI"
et où dois-je le coller?
Pour Java, c'est vrai je ne maîtrise pas trop. vu que j'occupe un poste de chercheur je ne programme pas trop (notamment avec Java). normalement c'est aux ingénieurs de faire ce travail. mais comme on a un manque d'effectifs alors je voulais pas que le projet bloque. du coup, j'ai décidé de faire cette tâche moi même.
et je te remercie beaucoup pour ton aide KX. tu es toujours présent et tu réponds à toutes mes question. merci encore!!
KX
Messages postés
16733
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
31 janvier 2024
3 015
>
chercheur2017
Messages postés
57
Date d'inscription
mardi 18 avril 2017
Statut
Membre
Dernière intervention
16 décembre 2018
25 mai 2017 à 12:23
25 mai 2017 à 12:23
"concernant le test du web service, ce que je n'ai pas compris est comment tu as pu avoir ça?"
J'ai repris dans ton code la requête que tu envoyais :
Si on teste dans SoapUI on obtient bien l'erreur 500 mais avec le détail.
"à quel niveau dois-je faire cette modification: est-ce au niveau de mon programme Java? "
Oui, il s'agit de remplacer le String soapMessage ci-dessus mais avec le bon format de requête tel qu'attendu par SoapUi.
"je voulais pas que le projet bloque. du coup, j'ai décidé de faire cette tâche moi même"
Mais du coup ça ne sert pas à grand chose de faire ce genre de code à la main...
On peut faire quasiment tout en automatique en Java.
J'ai repris dans ton code la requête que tu envoyais :
String soapMessage = "<soap:Envelope xmlns:soap=\"http://www.w3.org/2003/05/soap-envelope/\" xmlns:web=\"http://www.webservicex.net/\">" + " <soap:Header/>" + " <soap:Body>" + " <web:GetGeoIP>" + "<!--Optional:-->" + " <web:IPAddress>8.8.8.8</web:IPAddress>" + " </web:GetGeoIP>" + "</soap:Body>" + "</soap:Envelope>";
Si on teste dans SoapUI on obtient bien l'erreur 500 mais avec le détail.
"à quel niveau dois-je faire cette modification: est-ce au niveau de mon programme Java? "
Oui, il s'agit de remplacer le String soapMessage ci-dessus mais avec le bon format de requête tel qu'attendu par SoapUi.
"je voulais pas que le projet bloque. du coup, j'ai décidé de faire cette tâche moi même"
Mais du coup ça ne sert pas à grand chose de faire ce genre de code à la main...
On peut faire quasiment tout en automatique en Java.
KX
Messages postés
16733
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
31 janvier 2024
3 015
Modifié le 25 mai 2017 à 12:50
Modifié le 25 mai 2017 à 12:50
Voici comment faire ton webservice en automatique en Java (avec Maven)
1) Petite configuration pour éviter un bug après, dans ton répertoire d'installation de Java il faut rajouter un fichier jaxp.properties
Exemple chez moi c'est :
C:\Program Files\Java\jdk1.8.0_60\jre\lib\jaxp.properties
Ce fichier texte doit contenir :
Cela permet de désactiver une sécurité qui bloque par défaut l'accès au XML/XSD sur des sites distants. Voir JAXP 1.5 and New Properties
2) Tu créés un nouveau dossier avec un fichier pom.xml qui contient ceci :
3) Dans ce nouveau dossier, en lignes de commandes tu fais :
Cela devrait te générer plusieurs classes pour manipuler le service.
4) Tu ajoutes un code de test pour manipuler ce qui vient d'être généré.
5) En exécutant le code du test tu devrais avoir :
1) Petite configuration pour éviter un bug après, dans ton répertoire d'installation de Java il faut rajouter un fichier jaxp.properties
Exemple chez moi c'est :
C:\Program Files\Java\jdk1.8.0_60\jre\lib\jaxp.properties
Ce fichier texte doit contenir :
javax.xml.accessExternalSchema = all
Cela permet de désactiver une sécurité qui bloque par défaut l'accès au XML/XSD sur des sites distants. Voir JAXP 1.5 and New Properties
2) Tu créés un nouveau dossier avec un fichier pom.xml qui contient ceci :
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>ccm.kx</groupId> <artifactId>geoip</artifactId> <version>1.0-SNAPSHOT</version> <build> <plugins> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>jaxws-maven-plugin</artifactId> <version>2.4.1</version> <configuration> <wsdlUrls> <wsdlUrl>http://www.webservicex.net/geoipservice.asmx?wsdl</wsdlUrl> </wsdlUrls> <sourceDestDir>src/main/java</sourceDestDir> </configuration> </plugin> </plugins> </build> </project>
3) Dans ce nouveau dossier, en lignes de commandes tu fais :
mvn clean jaxws:wsimport
Cela devrait te générer plusieurs classes pour manipuler le service.
4) Tu ajoutes un code de test pour manipuler ce qui vient d'être généré.
package test; import java.net.MalformedURLException; import java.net.URL; import javax.xml.ws.Service; import javax.xml.namespace.QName; import net.webservicex.*; @SuppressWarnings("restriction") public class Test { public static void main(String[] args) throws MalformedURLException { URL url = new URL("http://www.webservicex.net/geoipservice.asmx?wsdl"); QName qname = new QName("http://www.webservicex.net/", "GeoIPService"); Service service = GeoIPService.create(url, qname); GeoIPServiceSoap geoipservice = service.getPort(GeoIPServiceSoap.class); GeoIP geoIp = geoipservice.getGeoIP("8.8.8.8"); System.out.println(geoIp.getIP()); System.out.println(geoIp.getCountryCode()); System.out.println(geoIp.getCountryName()); } }
5) En exécutant le code du test tu devrais avoir :
8.8.8.8La confiance n'exclut pas le contrôle
USA
United States
chercheur2017
Messages postés
57
Date d'inscription
mardi 18 avril 2017
Statut
Membre
Dernière intervention
16 décembre 2018
4
25 mai 2017 à 18:10
25 mai 2017 à 18:10
Salut KX, je vais encore te déranger avec mes questions. j'essayait depuis tout à l'heure d'appliquer ce que tu m'a montré mais je n'arrive pas. tout ce que je sais sur maven c'est comment créer un projet, compiler et exécuter!! je l'ai appris sur le lien que tu m'a donné la dernière fois (https://forums.commentcamarche.net/forum/affich-37593827-debuter-avec-maven
alors mes questions sont les suivantes:
1- D'abord, où peut-ont obtenir le fichier "jaxp.properties"?
2- Comment générer le fichier pom.xml? En fait, quand je crée un nouveau projet avec la
commande "mvn archetype:generate -DgroupId=xxxx.yyy -DartifactId=testproject -
DinteractiveMode=false", j'obtiens un fichier pom.xml mais qui ne contient pas la partie
correspondante à la balise <build>. j'ai essayé de rajouter cette partie dans mon fichier
pom.xml, mais en tappant "mvn clean jaxws:wsimport" j'obtiens une erreur!!
3- Si par chance je pourrait régler tout ces problèmes, alors où dois-je rajouter le dernier
code qui me permet de tester et d'avoir des résultats?
bonne fin de journée :)
alors mes questions sont les suivantes:
1- D'abord, où peut-ont obtenir le fichier "jaxp.properties"?
2- Comment générer le fichier pom.xml? En fait, quand je crée un nouveau projet avec la
commande "mvn archetype:generate -DgroupId=xxxx.yyy -DartifactId=testproject -
DinteractiveMode=false", j'obtiens un fichier pom.xml mais qui ne contient pas la partie
correspondante à la balise <build>. j'ai essayé de rajouter cette partie dans mon fichier
pom.xml, mais en tappant "mvn clean jaxws:wsimport" j'obtiens une erreur!!
3- Si par chance je pourrait régler tout ces problèmes, alors où dois-je rajouter le dernier
code qui me permet de tester et d'avoir des résultats?
bonne fin de journée :)
KX
Messages postés
16733
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
31 janvier 2024
3 015
Modifié le 25 mai 2017 à 19:15
Modifié le 25 mai 2017 à 19:15
"1- D'abord, où peut-ont obtenir le fichier "jaxp.properties"?"
Par défaut il n'existe pas, il faut créer un fichier texte vide avec ce nom là.
Il faut le mettre dans le répertoire "lib" du JDK (tu peux faire
"2- Comment générer le fichier pom.xml?"
Dans ce cas précis je t'ai fait le fichier pom.xml complet, tu n'as plus qu'à le copier-coller dans un nouveau fichier. Tu n'as pas besoin d'archetype, c'est la commande jaxws:wsimport qui va générer les classes à partir du wsdl.
"où dois-je rajouter le dernier code"
Lorsque le code va être généré tu auras un dossier src/main/java avec dedans un package net/webservicex contenant les classes générées.
Mon code de test tu peux le mettre n'importe où, évidemment le mieux serait de le mettre dans un dossier "test" puisque j'ai mis que la classe Test était dans un "package test"
Remarque : tu peux bien sûr éditer ton code depuis Eclipse ou n'importe quel éditeur de code, Maven est supporté depuis plusieurs années.
Par défaut il n'existe pas, il faut créer un fichier texte vide avec ce nom là.
Il faut le mettre dans le répertoire "lib" du JDK (tu peux faire
mvn --versionpour connaître le dossier exact du Java home) et ajouter la ligne
javax.xml.accessExternalSchema = all
"2- Comment générer le fichier pom.xml?"
Dans ce cas précis je t'ai fait le fichier pom.xml complet, tu n'as plus qu'à le copier-coller dans un nouveau fichier. Tu n'as pas besoin d'archetype, c'est la commande jaxws:wsimport qui va générer les classes à partir du wsdl.
"où dois-je rajouter le dernier code"
Lorsque le code va être généré tu auras un dossier src/main/java avec dedans un package net/webservicex contenant les classes générées.
Mon code de test tu peux le mettre n'importe où, évidemment le mieux serait de le mettre dans un dossier "test" puisque j'ai mis que la classe Test était dans un "package test"
Remarque : tu peux bien sûr éditer ton code depuis Eclipse ou n'importe quel éditeur de code, Maven est supporté depuis plusieurs années.
24 mai 2017 à 18:37
seulement, je n'ai pas compris concernant SoapUI (peut-on régler le problème avec SoapUI?). en fait, moi je l'ai utilisé pour tester les services (invocation des différentes méthodes du service) et j'ai même testé le service que j'ai cité (""http://www.webservicex.net/geoipservice.asmx") et ça marche très bien.
merci encore. bonne fin de journée!!
24 mai 2017 à 18:53
Évidemment il peut y avoir plein d'autres erreurs sur un serveur pour que ça provoque une erreur 500, mais parfois il y a un message d'explication de l'erreur qui dans certains cas peuvent aider à résoudre le problème (notamment si l'erreur 500 - par défaut - est en fait une erreur moins grave que ce qu'elle indique)
Pour l'instant tu as un programme Java qui voit l'erreur 500 et lèves une exception, s'il y a d'autres informations utiles dans la réponse d'erreur ton programme ne les affiches pas, mais SoapUi peut le faire facilement, c'est très pratique pour tester un webservice.