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 :

Axis2 : Problème d'interrogation d'un Web Service via le stub client


Sujet :

Services Web Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 20
    Par défaut Axis2 : Problème d'interrogation d'un Web Service via le stub client
    Bonjour à tous,

    j'ai développé un Web service sous Axis2 (v1.4) que j'ai déployé sur le serveur de développement de ma boîte, après l'avoir testé en local sur mon poste.

    Sur le serveur de développement, je rencontre le problème suivant :

    Lorsque que j'interroge le service Web via le stub client j'obtiens l'erreur suivante :
    org.apache.axis2.AxisFault: com.ctc.wstx.exc.WstxEOFException: Unexpected EOF in prolog
    at [row,col {unknown-source}]: [1,0]
    at org.apache.axis2.util.Utils.getInboundFaultFromMessageContext(Utils.java:512)
    at org.apache.axis2.description.OutInAxisOperationClient.handleResponse(OutInAxisOperation.java:370)
    at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:416)
    at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:228)
    at org.apache.axis2.client.OperationClient.execute(OperationClient.java:163)
    at fr.gouv.meeddat.server.Paie_marinStub.getPositionsAgents(Paie_marinStub.java:207)
    at fr.gouv.meeddat.server.LanceurWebServiceClient.main(LanceurWebServiceClient.java:36)

    Lorsque que j'interroge le service Web via un navigateur, tout se passe correctement sans aucune erreur.

    Avant de poster ce message, j'ai effectué des recherches sur le net sans trouver de solutions.

    Depuis, je tourne en rond.

    Voici quelques précisions :
    Axis2 (1.4)
    Tomcat 5.5.17
    Linux Debian (serveur de dév)
    Win XP SP2 (poste client)

    J'ai généré les stubs client et serveur à partir de l'outil wsdl2java.

    Axis2 tourne dans le conteneur de servlet Tomcat.

    Merci d'avance.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 20
    Par défaut
    Re bonjour à tous,

    voilà, mon problème est toujours d'actualité.

    J'ai essayé de tracer les paquets (avec Wireshark) lorsque j'appelle le WS via le stub client et voici le message que j'obtiens :

    HTTP/1.1 500 Erreur Interne de Servlet
    Date: Thu, 02 Oct 2008 09:07:51 GMT
    Server: Apache-Coyote/1.1
    Content-Type: text/xml;charset=UTF-8
    Via: 1.1 p8080.sirh.dev.ac.centre-serveur.i2
    Connection: close
    Transfer-Encoding: chunked

    <?xml version='1.0' encoding='UTF-8'?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Header xmlns:wsa="http://www.w3.org/2005/08/addressing"><wsa:Action>http://www.w3.org/2005/08/addressing/soap/fault</wsa:Action></soapenv:Header><soapenv:Body><soapenv:Fault><faultcode></faultcode><faultstring>com.ctc.wstx.exc.WstxEOFException: Unexpected EOF in prolog
    at [row,col {unknown-source}]: [1,0]</faultstring><detail><Exception>org.apache.axis2.AxisFault: com.ctc.wstx.exc.WstxEOFException: Unexpected EOF in prolog
    at [row,col {unknown-source}]: [1,0]
    at org.apache.axis2.AxisFault.makeFault(AxisFault.java:430)
    at org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:283)
    at org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:131)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:825)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:738)
    at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:526)
    at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
    at java.lang.Thread.run(Thread.java:595)
    Caused by: org.apache.axiom.om.OMException: com.ctc.wstx.exc.WstxEOFException: Unexpected EOF in prolog
    at [row,col {unknown-source}]: [1,0]
    at org.apache.axiom.om.impl.builder.StAXOMBuilder.next(StAXOMBuilder.java:249)
    at org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder.getSOAPEnvelope(StAXSOAPModelBuilder.java:156)
    at org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder.&lt;init>(StAXSOAPModelBuilder.java:105)
    at org.apache.axis2.builder.SOAPBuilder.processDocument(SOAPBuilder.java:53)
    at org.apache.axis2.transport.TransportUtils.createDocumentElement(TransportUtils.java:164)
    at org.apache.axis2.transport.TransportUtils.createSOAPMessage(TransportUtils.java:112)
    at org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:270)
    ... 18 more
    Caused by: com.ctc.wstx.exc.WstxEOFException: Unexpected EOF in prolog
    at [row,col {unknown-source}]: [1,0]
    at com.ctc.wstx.sr.StreamScanner.throwUnexpectedEOF(StreamScanner.java:661)
    at com.ctc.wstx.sr.BasicStreamReader.handleEOF(BasicStreamReader.java:2134)
    at com.ctc.wstx.sr.BasicStreamReader.nextFromProlog(BasicStreamReader.java:2040)
    at com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1069)
    at org.apache.axiom.om.impl.builder.StAXOMBuilder.parserNext(StAXOMBuilder.java:506)
    at org.apache.axiom.om.impl.builder.StAXOMBuilder.next(StAXOMBuilder.java:161)
    ... 24 more

    </Exception></detail></soapenv:Fault></soapenv:Body></soapenv:Envelope>

    A priori, j'ai bien compris qu'il y a un souci niveau serveur mais lequel ...

    Merci de m'aider.

    Thomas

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    239
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 239
    Par défaut
    est ce que tu peux nous dire comment ta tester tes WS sur ton poste.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 20
    Par défaut
    Pour tester le service web, j'utilise deux méthodes :
    _ L'interrogation via un navigateur en entrant une url du type :
    http://***serveur_dev***/axis2-1.4.1...QuotitesAgents pour interroger le WS sur le serveur de dev
    http://localhost:8080/axis2-1.4.1/se...QuotitesAgents pour interroger le WS sur le tomcat installé en local
    Ces deux tests sont concluant et retourne le flux XML attendu

    _ L'interrogation via l'exécution d'une classe java.

    Voici le code de la classe appelante :
    package fr.gouv.meeddat.server;

    import java.rmi.RemoteException;

    import org.apache.axis2.AxisFault;
    import org.apache.axis2.transport.http.HTTPConstants;
    import org.apache.axis2.transport.http.HttpTransportProperties.Authenticator;

    import fr.gouv.meeddat.server.Paie_marinStub.GetPositionsAgents;
    import fr.gouv.meeddat.server.Paie_marinStub.GetPositionsAgentsResponse;
    import fr.gouv.meeddat.server.Paie_marinStub.Positions;

    public class LanceurWebServiceClient {

    /**
    * @param args
    */
    public static void main(String[] args) {
    Paie_marinStub lStub = null;
    try {
    lStub = new Paie_marinStub("http://***serveur_dev***/axis2-1.4.1/services/paie_marin");
    Authenticator lAuthentification = new Authenticator();
    lAuthentification.setUsername("******");
    lAuthentification.setPassword("******");
    lAuthentification.setPreemptiveAuthentication(true);
    lStub._getServiceClient().getOptions().setProperty(HTTPConstants.AUTHENTICATE, lAuthentification);
    } catch (AxisFault e){
    e.printStackTrace();
    }
    GetPositionsAgents lRequete = new GetPositionsAgents();//DEF D'UNE NVLLE REQUETE
    String lDateDebut = "01-02-2008";
    String lDateFin = "31-12-2999";
    lRequete.setDateFin(lDateFin);
    lRequete.setDateDebut(lDateDebut);//LA REQUETE EST PRETE
    try {
    GetPositionsAgentsResponse lReponse = lStub.getPositionsAgents(lRequete);
    Positions[] lPositions = lReponse.getPositionsAgents();
    System.out.println("\n----------------------------------------------");
    for (int i = 0; i < lPositions.length; i++) {
    System.out.println("Num agent : "+lPositions[i].getNumeroAgent());
    System.out.println("Service : "+lPositions[i].getService());
    System.out.println("Site Code : "+lPositions[i].getSiteCode());
    System.out.println("Date debut : "+lPositions[i].getDateDebut());
    System.out.println("Date Fin : "+lPositions[i].getDateFin());
    System.out.println("----------------------------------------------\n");
    }
    } catch (RemoteException e){
    e.printStackTrace();
    }

    }

    }
    Je change juste
    lStub = new Paie_marinStub("http://***serveur_dev***/axis2-1.4.1/services/paie_marin");pour interroger soit le serveur de dev soit mon tomcat en local.

    En local, tout est ok, dans la console, les données suivantes s'affichent :
    ----------------------------------------------
    Num agent : TRH000131
    Service : 0E20
    Site Code : CPAR
    Date debut : 2008-03-01
    Date Fin : 0099-12-31
    ----------------------------------------------

    Num agent : TRH000133
    Service : 2071
    Site Code : CPAR
    Date debut : 2008-05-15
    Date Fin : 0099-12-31
    ----------------------------------------------

    Num agent : TRH000133
    Service : DG01
    Site Code : CPAR
    Date debut : 2008-05-15
    Date Fin : 0099-12-31
    ----------------------------------------------

    alors qu'en interrogeant le serveur de dev, j'ai le message :

    org.apache.axis2.AxisFault: com.ctc.wstx.exc.WstxEOFException: Unexpected EOF in prolog
    at [row,col {unknown-source}]: [1,0]
    at org.apache.axis2.util.Utils.getInboundFaultFromMessageContext(Utils.java:512)
    at org.apache.axis2.description.OutInAxisOperationClient.handleResponse(OutInAxisOperation.java:370)
    at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:416)
    at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:228)
    at org.apache.axis2.client.OperationClient.execute(OperationClient.java:163)
    at fr.gouv.meeddat.server.Paie_marinStub.getPositionsAgents(Paie_marinStub.java:207)
    at fr.gouv.meeddat.server.LanceurWebServiceClient.main(LanceurWebServiceClient.java:36)

    Si vous avez des idées, je suis preneur.

    Merci.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    239
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 239
    Par défaut
    si j'ai bien compris, t'as une erreur lorsque t'essayes de consommer tes WS à partir de l'exterieur,,,,essayes d'être plus clair

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 20
    Par défaut
    Alors, je ne consomme pas le WS depuis l'extérieur car le serveur de dev est situé dans ma boite. Mon poste et le serveur de dev sont situés sur le même réseau, en intra.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AXIS2] Passage de paramètres à un web service via URL
    Par evenl dans le forum Services Web
    Réponses: 1
    Dernier message: 28/04/2009, 12h30
  2. Problème de création d'un web service avec tomcat sous eclipse
    Par elfenomeno9 dans le forum Tomcat et TomEE
    Réponses: 1
    Dernier message: 17/02/2009, 11h05
  3. probléme d'utilisation d'un web service
    Par distordz dans le forum Flex
    Réponses: 1
    Dernier message: 30/06/2008, 20h32
  4. Problème de libération de DLL - Web Service
    Par Laurent_75000 dans le forum Web & réseau
    Réponses: 3
    Dernier message: 18/05/2006, 13h25
  5. [Système] Problème d'exécution d'un Web Service
    Par kheiro dans le forum Langage
    Réponses: 2
    Dernier message: 11/05/2006, 14h26

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