Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
825 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  [WebServices/SOAP] Serveur php NuSOAP / Client JAVA/JSP

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[WebServices/SOAP] Serveur php NuSOAP / Client JAVA/JSP

n°1170444
sanchou
Posté le 05-08-2005 à 10:34:14  profilanswer
 

Bonjour,
je dispose d'un outil de crm (SugarCRM) incluant un serveur NuSOAP en PHP dont une des méthodes implémentées m'intéresse particulièrement : create_lead.  
 
D'un autre coté, je dispose d'un formulaire de demande de documentation où un visiteur peut entrer ses nom prénom, mail, etc... ce formulaire se trouvant dans une page JSP.
 
Avant tout je précise que les serveur Tomcat(site web) et Apache(outil CRM) se trouvent sur la même machine.
 
Je voudrais que lorsqu'une demande de documentation est effectuée (via le formulaire JSP), un appel à la méthode create_lead via le protocole SOAP soit effectuée, afin d'intégrer ce lead (que je traduirai par "piste" ) à mon outil de crm.  
 Je ne sais pas si c'est facile, je n'ai jamais utilisé le protocole SOAP bien que j'en connaisse le fonctionnement, donc si des points ne sont pas très clairs ou si je me plante complet, n'hésitez pas à me le dire.
 
Tout d'abord, voici la description de la méthode create_lead :

Code :
  1. Name: create_lead
  2. Binding: sugarsoapBinding
  3. Endpoint: http://100.1.0.50/sugar_temp/soap.php
  4. SoapAction: http://localhost/sugar_temp/soap.php/create_lead
  5. Style: rpc
  6. Input:
  7.   use: encoded
  8.   namespace: http://www.sugarcrm.com/sugarcrm
  9.   encodingStyle: http://schemas.xmlsoap.org/soap/encoding/
  10.   message: create_leadRequest
  11.   parts:
  12.     user_name: xsd:string
  13.     password: xsd:string
  14.     first_name: xsd:string
  15.     last_name: xsd:string
  16.     email_address: xsd:string
  17. Output:
  18.   use: encoded
  19.   namespace: http://www.sugarcrm.com/sugarcrm
  20.   encodingStyle: http://schemas.xmlsoap.org/soap/encoding/
  21.   message: create_leadResponse
  22.   parts:
  23.     return: xsd:string
  24. Namespace: http://www.sugarcrm.com/sugarcrm
  25. Transport: http://schemas.xmlsoap.org/soap/http
  26. Documentation:


 
Côté tomcat, j'ai récupéré le fichier soap.jar, je l'ai mis dans common/lib et je l'ai rajouté au classpath.
Et voici la partie du code de ma page JSP que j'ai rajoutée pour appeler la méthode distante :

Code :
  1. <%@ page import="org.apache.soap.*" %>
  2. <%@ page import="org.apache.soap.rpc.*" %>
  3. String first_name = request.getParameter("First_Name" );
  4. String surname = request.getParameter("Surname" );
  5. String email = request.getParameter("Email" );
  6. Call call = new Call ();
  7. String encodingStyleURI = org.apache.soap.Constants.NS_URI_SOAP_ENC;
  8. call.setEncodingStyleURI(encodingStyleURI);
  9. call.setTargetObjectURI ("urn:sugarsoapBinding" );
  10. call.setMethodName("create_lead" );
  11. Vector parameters = new Vector ();
  12. parameters.addElement (new Parameter("user_name", String.class, "nicolas", null));
  13. parameters.addElement (new Parameter("password", String.class, "", null));
  14. parameters.addElement (new Parameter("first_name", String.class, first_name, null));
  15. parameters.addElement (new Parameter("last_name", String.class, surname, null));
  16. parameters.addElement (new Parameter("email_address", String.class, email, null));
  17. call.setParams(parameters);
  18. Response soap_response = call.invoke(new java.net.URL("http://localhost/sugar_temp/soap.php" ), "" );
  19.      
  20. if ( soap_response.generatedFault() ) {
  21.      
  22.       Fault fault = soap_response.getFault ();
  23.       System.out.println("The call failed: " );
  24.       System.out.println("Fault Code   = " + fault.getFaultCode());
  25.       System.out.println("Fault Entrie   = " + fault.getFaultEntries());
  26.       System.out.println("Fault String = " + fault.getFaultString());
  27. System.out.println("Detail Entrie   = " + fault.getDetailEntries());
  28. System.out.println("Fault Actor URI   = " + fault.getFaultActorURI());
  29.          
  30.     }
  31.     else {
  32.         Parameter soap_result = soap_response.getReturnValue();
  33.         System.out.println(soap_result.getValue());
  34.         System.out.println("J'ai une réponse !!!" );
  35.     }


 
Lorsque je fait mes tests, je remplis mon formulaire, je valide, et là je n'ai aucune exception levée, mais dans les logs de tomcat j'ai ces lignes qui apparaissent :

Code :
  1. 0
  2. J'ai une réponse !!!


 
Si je comprend bien, çà signifie que l'appel à la méthode distante a réussi, c'est çà ?
Au début j'avais soap_response.generatedFault()=true car j'avais oublié le "urn:" dans call.setTargetObjectURI ("urn:sugarsoapBinding" );
Depuis que je l'ai rajouté, j'ai l'impression que l'appel à distance marche, cependant la méthode ne doit pas vraiment être appelée, car mon lead n'est pas créé dans l'outil de crm.
 
Est-ce que je me trompe quelque part au niveau du code java ?
Ou à votre avis cela viendrait de la méthode définie sur le server soap?
 
Voilà, désolé d'avoir été si long, mais je voyais pas comment expliquer çà plus clairement...
Si vous avez besoin de précision, n'hésitez pas !
 
Je vous remercie par avance du temps passé à la lecture de ce post :) et de vos réponses.
 
Nicolas

mood
Publicité
Posté le 05-08-2005 à 10:34:14  profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  [WebServices/SOAP] Serveur php NuSOAP / Client JAVA/JSP

 

Sujets relatifs
installation de javaRécupérer le nom de session windows du client dans un réseau local
Java, OAS et Single Sign Onstruts et JSP, principe des formulaires
[vba] sauvegarder sous un serveurlecteur java
[ORACLE]Importance de l'OS du serveur ?Saut de ligne en java
Personne n'a pu repondre ou sont les pgm java?appel d'un programme JAVA depuis C
Plus de sujets relatifs à : [WebServices/SOAP] Serveur php NuSOAP / Client JAVA/JSP


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR