Bonjour !
Je suis en train de réaliser un client qui doit effectuer des appels à plusieurs web services différents. (avec axis 1.4)
Seulement je ne suis pas sûr de comprendre le fonctionnement des passages de paramètres, le type de retour etc...
voici mon code actuel :
Mon erreur de retour est la suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 try { //étape 1 : création d'accès vers le service Service service = new Service(); //étape 2 :création d'un appel vers le service Call call = (Call)service.createCall();//new javax.xml.namespace.QName("http://ejb.service.access.***"), new javax.xml.namespace.QName("lirePersonne")); //étape 3 : récupération de l'adresse URL du service accédé String endpoint = "http://***/services/CRMPersonne"; call.setTargetEndpointAddress(endpoint); call.setOperationName(new QName("lirePersonne")); call.addParameter("arg_0_1", new QName("ServiceContexte"), ParameterMode.IN); call.addParameter("arg_1_1", new QName("String"), ParameterMode.IN); call.setReturnType(XMLType.SOAP_ARRAY); Personne myperson = (Personne)call.invoke( new Object [] { new QName("123461199") }); } catch (Exception e) { e.printStackTrace(); }
Donc ok il faut que je mette le deuxième argument dans le Object, mais je ne suis pas sûr de savoir quoi mettre ni du reste de mon code.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 AxisFault faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException faultSubcode: faultString: javax.xml.rpc.JAXRPCException: Number of parameters passed in (1) doesn't match the number of IN/INOUT parameters (2) from the addParameter() calls faultActor: faultNode:
Voici le body de la requête soap :
Quand je disais je ne suis pas sûr de mon code, c'est parce que pour le premier argument arg_0_1, je suis censé passé 4 paramètres, ce que je n'ai pas fait parce que je ne sais pas comment m'y prendre...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 <soapenv:Body> <ejb:lirePersonne> <arg_0_1> <codeApplication>${#Project#codeApplication}</codeApplication> <jetonApplication>${#Project#jetonApplication}</jetonApplication> <traitementId>${#Project#timestampTest}</traitementId> <utilisateur>${#Project#utilisateur}</utilisateur> </arg_0_1> <arg_1_1> <identifiantPersonne>123461199</identifiantPersonne><infosPersonne xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><infosPersonne><budget xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><charges xsi:nil="true"/></budget><budget xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><signaletique xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><nommage xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><situationFamiliale xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><situationProfessionnelle><employeur><adresseTelephonique xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><adresseTelephonique xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><adresseEmail xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><adressePostale xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><profilAdresse xsi:nil="true"/></adressePostale></employeur><employeur xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/></situationProfessionnelle><adresse><adressePostale xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><profilAdresse xsi:nil="true"/></adressePostale><adressePostale xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><adresseEmail xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><adresseTelephonique xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/></adresse><relationPersonne xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><profilPersonne xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><profilClient xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><qualite xsi:nil="true"/></profilClient><salarie xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><recrutementStructure><magasin xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><magasin xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><reseau xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><sousReseau xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><enseigne xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><portefeuille xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><societeJuridique><adresse xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><profilAdresse xsi:nil="true"/></adresse><adresse xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><mentionsLegales xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/></societeJuridique><uniteGestion xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><agence xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><uniteComptable xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/></recrutementStructure><profilProspect xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><encours xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/></infosPersonne><intervenant xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/> </arg_1_1> </ejb:lirePersonne> </soapenv:Body>
Donc voici mon problème!
J'ai aussi une autre question.
Est-il possible de réaliser un appel de service directement en spécifiant tout le contenu du message soap envoyé et de récupérer le contenu du retour ?
Merci de m'éclairer.
Partager