Consommer un web service en java
Bonjour,
Je suis sur Eclipse / Java et j'aimerais consommer un web service dont l'URL du WSDL est la suivante :
https://soge.six-axe.fr/asteaallianc....API.asmx?wsdl
Dans cette URL je voudrai appeler la méthode Login qui accepte 3 paramètres : User, Password, Env.
Le web service doit retourner :
- soit un numéro de session si ok
- soit un string sous la forme "Unable to login to profile UnLogin reason:
Login Failed. The profile: UnProfil does not exist." si non autorisé.
Mon code que j'ai généré est le suivant :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
|
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.apache.axis.encoding.XMLType;
import org.apache.axis.message.SOAPHeaderElement;
import javax.xml.namespace.QName;
import javax.xml.rpc.ParameterMode;
public class Test {
public static void main(String [] args) throws Exception {
String endpoint = "https://soge.six-axe.fr/asteaalliance140_APP_frameworkSO_DEV/Astea.AO.API.asmx";
// Make the call
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress(new java.net.URL(endpoint));
call.addHeader(new SOAPHeaderElement(new QName("http://www.astea.com/webservices","SessionID")));
call.setOperationName( "Login" );
call.addParameter("User", XMLType.XSD_NORMALIZEDSTRING, ParameterMode.IN);
call.addParameter("Password", XMLType.XSD_NORMALIZEDSTRING, ParameterMode.IN);
call.addParameter("Profile", XMLType.XSD_NORMALIZEDSTRING, ParameterMode.IN);
call.setReturnType(XMLType.XSD_NORMALIZEDSTRING);
String ret = (String) call.invoke( new Object [] { "monUtilisateur", "monMotDePasse", "monProfile" });
System.out.println(ret);
}
} |
Avec ce que je vous donne en retour je devrais avoir :
"Unable to login to profile monUtilisateur reason:
Login Failed. The profile: monProfile does not exist."
Mais non !
A la place j'ai la vieille Exception :
Server did not recognize the value of HTTP Header SOAPAction: .
J'aurais bien voulu voir le message xml préparé pour le comparer avec ce que j'ai dans SOAPUI mais je ne sais pas comment faire.