IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Services Web Java Discussion :

Problème avec le client soap


Sujet :

Services Web Java

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Problème avec le client soap
    Bonjour,
    j'essaie de faire communiquer mon client soap et mon webservices, mais je n'y arrive pas.
    Dans la webapps de mon serveur tomcat 6, j'y ai placé mon web service sous forme de fichier war que j'ai crée sous éclipse europa.
    Sous éclipse, j'écris un client soap avec saaj, qui va emettre des requêtes à mon web service.

    Merci de repondre car je ne comprends plus rien

  2. #2
    Membre expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 851
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 851
    Points : 3 481
    Points
    3 481
    Par défaut
    Salut,

    Sans plus d'information sur la nature de l'erreur que tu obtiens, on ne pourra pas t'en dire plus...
    K

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    bonjour,
    voici l'erreur qu'il affiche:
    {http://xml.apache.org/axis/}stackTrace:no SOAPAction header!
    at org.apache.axis.transport.http.AxisServlet.getSoapAction(AxisServlet.java:1013)
    at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:678)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
    at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
    at java.lang.Thread.run(Thread.java:619)

    {http://xml.apache.org/axis/}hostname:vo4

    no SOAPAction header!
    at org.apache.axis.transport.http.AxisServlet.getSoapAction(AxisServlet.java:1013)
    at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:678)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
    at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
    at java.lang.Thread.run(Thread.java:619)
    27 nov. 2007 10:48:19 org.apache.axis.transport.http.AxisServlet getSoapAction
    GRAVE: Generating fault class
    AxisFault
    faultCode: {http://xml.apache.org/axis/}Client.NoSOAPAction
    faultSubcode:
    faultString: no SOAPAction header!
    faultActor:
    faultNode:
    faultDetail:
    {http://xml.apache.org/axis/}stackTrace:no SOAPAction header!
    at org.apache.axis.transport.http.AxisServlet.getSoapAction(AxisServlet.java:1013)
    at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:678)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
    at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
    at java.lang.Thread.run(Thread.java:619)

    {http://xml.apache.org/axis/}hostname:vo4

    no SOAPAction header!
    at org.apache.axis.transport.http.AxisServlet.getSoapAction(AxisServlet.java:1013)
    at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:678)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
    at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
    at java.lang.Thread.run(Thread.java:619)

  4. #4
    Membre expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 851
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 851
    Points : 3 481
    Points
    3 481
    Par défaut
    Dans l'entête HTTP il faut ajouter un paramètre du nom de SOAPAction, qui correspond à la "méthode" que tu souhaites appeller dans le webservice.
    K

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    c'est bon, le problème est réglé,
    Merci

  6. #6
    Membre régulier Avatar de silverfab34
    Inscrit en
    Mars 2006
    Messages
    203
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Mars 2006
    Messages : 203
    Points : 91
    Points
    91
    Par défaut
    Citation Envoyé par KiLVaiDeN Voir le message
    Dans l'entête HTTP il faut ajouter un paramètre du nom de SOAPAction, qui correspond à la "méthode" que tu souhaites appeller dans le webservice.
    Bonsoir,
    J'ai le même message de reponse........

    J'aimerais savoir ce que tu veux dire par "l'entête HTTP il faut ajouter un paramètre du nom de SOAPAction, qui correspond à la "méthode" que tu souhaites appeller dans le webservice"
    car moi c'est dans mon fichier xml que j'ai ce message :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
     
      <?xml version="1.0" encoding="UTF-8" ?> 
    - <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    - <soapenv:Body>
    - <soapenv:Fault>
      <faultcode xmlns:ns1="http://xml.apache.org/axis/">ns1:Client.NoSOAPAction</faultcode> 
      <faultstring>no SOAPAction header!</faultstring> 
    - <detail>
      <ns2:hostname xmlns:ns2="http://xml.apache.org/axis/">FDU</ns2:hostname> 
      </detail>
      </soapenv:Fault>
      </soapenv:Body>
      </soapenv:Envelope>
    Dans mon WSDL, j'ai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <wsdlsoap:operation soapAction=""/>

  7. #7
    Membre expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 851
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 851
    Points : 3 481
    Points
    3 481
    Par défaut
    Salut,

    Plus d'infos sur la spec w3c du truc

    En fait le corps SOAP ne suffit pas, il y a également le header qui joue un role, d'authentification parfois, et aussi de destination.

    Normalement tu devrais utiliser un outil pour te générer tes classes clientes, ça simplifie grandement le dev, et ça t'enlève de la tête ces spécificités bien "ennuyeuses"

    A+
    K

  8. #8
    Membre régulier Avatar de silverfab34
    Inscrit en
    Mars 2006
    Messages
    203
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Mars 2006
    Messages : 203
    Points : 91
    Points
    91
    Par défaut
    Citation Envoyé par KiLVaiDeN Voir le message
    Salut,

    Plus d'infos sur la spec w3c du truc

    En fait le corps SOAP ne suffit pas, il y a également le header qui joue un role, d'authentification parfois, et aussi de destination.

    Normalement tu devrais utiliser un outil pour te générer tes classes clientes, ça simplifie grandement le dev, et ça t'enlève de la tête ces spécificités bien "ennuyeuses"

    A+
    Ok, car moi je fais un classe HttpClient pour creer mon fichier XML à partir de mon webservice

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
     
    /**
     * Simple client HTTP permettant d'envoyer un fichier XML en UTF-8 vers une url
     * Paramètres : - args[0] : chemin du fichier xml à envoyer - args[1] : url où
     * envoyer le fichier - args[2] : si égal à "soap", le header SOAPAction sera
     * ajouté si égal à "noresponse" la réponse http ne sera pas lue
     * 
     * La réponse XML est écrite dans le fichier response.xml
     * 
     
     */
    public class HttpClient {
     
     
    	public static void main(String[] args)  {
     
    		org.apache.commons.httpclient.HttpClient client = new org.apache.commons.httpclient.HttpClient();
    		PostMethod post = null;
    		try {
    			post = new PostMethod(args[1]);
     
    			List lArgs = Arrays.asList(args);
     
    			if(lArgs.contains("soap"))
    				post.addRequestHeader("SOAPAction", "");
     
     
    			boolean readResponse = !lArgs.contains("noresponse");
     
     
     
    			post.addRequestHeader("Content-Type", "text/xml;charset=UTF-8");
    			post.setRequestEntity(new InputStreamRequestEntity(
    					new FileInputStream(args[0])));
     
    			client.executeMethod(post);
     
     
    			if (readResponse) {
    				InputStream is = post.getResponseBodyAsStream();
    				FileOutputStream fos = new FileOutputStream("D:/response.xml");
    				BufferedReader reader = new BufferedReader(
    						new InputStreamReader(is, Charset.forName(post
    								.getResponseCharSet())));
    				BufferedWriter writer = new BufferedWriter(
    						new OutputStreamWriter(fos, Charset.forName(post
    								.getResponseCharSet())));
    				String s = null;
     
    				while ((s = reader.readLine()) != null)
    					writer.write(s);
     
    				writer.flush();
    				writer.close();
    				reader.close();
     
    			}
     
    		} catch (Exception e) {
    			e.printStackTrace();
    		} finally {
    			if (post != null)
    				post.releaseConnection();
    		}
     
    	}
     
    }

  9. #9
    Membre régulier Avatar de silverfab34
    Inscrit en
    Mars 2006
    Messages
    203
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Mars 2006
    Messages : 203
    Points : 91
    Points
    91
    Par défaut
    C'est bon,j'arrive à creer mon fichier XML, j'ai enlevé de mon code la ligne :

    if(lArgs.contains("soap"))

    Par contre,j'aimerais que mon fichier XML ne contiene pas les balises <soapenv:> (ne s'affiche pas )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
       <soapenv:Body>
    Est ce que c'est possible ou je veux perdre tout le contenu de mon fichier XML

Discussions similaires

  1. Problème avec un client citrix
    Par deck10 dans le forum VB 6 et antérieur
    Réponses: 0
    Dernier message: 19/08/2009, 18h10
  2. Problème avec un client SOAP
    Par Thibault.B dans le forum Services Web
    Réponses: 1
    Dernier message: 02/06/2008, 11h55
  3. Réponses: 0
    Dernier message: 15/04/2008, 00h56
  4. [HTML] problème avec différents clients mail
    Par torn33260 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 03/04/2008, 12h35
  5. Probléme avec un client
    Par wikipierre dans le forum Droit du travail
    Réponses: 23
    Dernier message: 02/04/2008, 10h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo