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 :

appel WebService sur une autre endpoint que celui de la génération


Sujet :

Services Web Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Mars 2007
    Messages : 79
    Points : 48
    Points
    48
    Par défaut appel WebService sur une autre endpoint que celui de la génération
    Bonjour à tous,

    J'ai un webservice en local sur mon poste. Sous Eclipse, j'ai généré le client à partir de l'adresse local du webservice.

    Maintenant, que mon appel fonctionne. Je voudrai que mon client appelle mon webservice sur une autre machine. Mais je n'y arrive pas.

    Voici mon code qui appelle mon webservice local qui fonctionne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    try {
                Ttpu_ApplicationDAOServiceLocator service = new Ttpu_ApplicationDAOServiceLocator();
                service.setTtpu_ApplicationDAOPortEndpointAddress(wsdlLoc);
                Ttpu_ApplicationDAOPort port = service.getTtpu_ApplicationDAOPort();
                Season season = port.getCurrentSeason();
                System.out.println("Season : "+season.getId()+" - "+season.getPhase());
            } catch (ServiceException e1) {
                // TODO Auto-generated catch block
                e1.printStackTrace();
            } catch (RemoteException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
    et voici mon code modifié pour appeler mon webservice distant :
    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
    String adress = "http://192.168.0.9/Re7/";
            String webserviceURL = adress+"admin/ttpu/service";
            QName qname = new QName(webserviceURL,"Ttpu_ApplicationDAOService");
     
            try {
                Ttpu_ApplicationDAOServiceLocator service = new Ttpu_ApplicationDAOServiceLocator(webserviceURL+"?wsdl",qname);
                service.setTtpu_ApplicationDAOPortEndpointAddress(webserviceURL);
                Ttpu_ApplicationDAOPort port = service.getTtpu_ApplicationDAOPort();
                Season season = port.getCurrentSeason();
                System.out.println("Season : "+season.getId()+" - "+season.getPhase());
            } catch (ServiceException e1) {
                // TODO Auto-generated catch block
                e1.printStackTrace();
            } catch (RemoteException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
    Et voici l'erreur que j'obtiens avec le code modifié :
    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
    AxisFault
     faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
     faultSubcode: 
     faultString: org.xml.sax.SAXParseException: Content is not allowed in prolog.
     faultActor: 
     faultNode: 
     faultDetail: 
        {http://xml.apache.org/axis/}stackTrace:org.xml.sax.SAXParseException: Content is not allowed in prolog.
        at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:195)
        at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:174)
        at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:388)
        at com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(XMLScanner.java:1411)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:1024)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:647)
        at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:140)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:508)
        at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:807)
        at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)
        at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:107)
        at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205)
        at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522)
        at javax.xml.parsers.SAXParser.parse(SAXParser.java:395)
        at org.apache.axis.encoding.DeserializationContext.parse(DeserializationContext.java:227)
        at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:696)
        at org.apache.axis.Message.getSOAPEnvelope(Message.java:435)
        at org.apache.axis.handlers.soap.MustUnderstandChecker.invoke(MustUnderstandChecker.java:62)
        at org.apache.axis.client.AxisClient.invoke(AxisClient.java:206)
        at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
        at org.apache.axis.client.Call.invoke(Call.java:2767)
        at org.apache.axis.client.Call.invoke(Call.java:2443)
        at org.apache.axis.client.Call.invoke(Call.java:2366)
        at org.apache.axis.client.Call.invoke(Call.java:1812)
        at localhost.LTT_QuickDev.admin.ttpu.service.Ttpu_ApplicationDAOBindingStub.getCurrentSeason(Ttpu_ApplicationDAOBindingStub.java:212)
        at Main.main(Main.java:26)
     
        {http://xml.apache.org/axis/}hostname:O000072848
     
    org.xml.sax.SAXParseException: Content is not allowed in prolog.
        at org.apache.axis.AxisFault.makeFault(AxisFault.java:101)
        at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:701)
        at org.apache.axis.Message.getSOAPEnvelope(Message.java:435)
        at org.apache.axis.handlers.soap.MustUnderstandChecker.invoke(MustUnderstandChecker.java:62)
        at org.apache.axis.client.AxisClient.invoke(AxisClient.java:206)
        at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
        at org.apache.axis.client.Call.invoke(Call.java:2767)
        at org.apache.axis.client.Call.invoke(Call.java:2443)
        at org.apache.axis.client.Call.invoke(Call.java:2366)
        at org.apache.axis.client.Call.invoke(Call.java:1812)
        at localhost.LTT_QuickDev.admin.ttpu.service.Ttpu_ApplicationDAOBindingStub.getCurrentSeason(Ttpu_ApplicationDAOBindingStub.java:212)
        at Main.main(Main.java:26)
    Caused by: org.xml.sax.SAXParseException: Content is not allowed in prolog.
        at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:195)
        at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:174)
        at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:388)
        at com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(XMLScanner.java:1411)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:1024)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:647)
        at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:140)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:508)
        at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:807)
        at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)
        at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:107)
        at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205)
        at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522)
        at javax.xml.parsers.SAXParser.parse(SAXParser.java:395)
        at org.apache.axis.encoding.DeserializationContext.parse(DeserializationContext.java:227)
        at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:696)
        ... 10 more
    Quelqu'un a-t-il une idée ?

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Mars 2007
    Messages : 79
    Points : 48
    Points
    48
    Par défaut
    J'ai réussi à corriger mon problème. Cela venait du wsdl qui était mal formaté.

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Août 2010
    Messages : 41
    Points : 45
    Points
    45
    Par défaut problème d'appel de service Web dans un reseau local
    Bonjour CocoLeNain,

    Je suis débutant dans le Web service et je suis actuellement coincé à ce niveau d'appel d'un service web par une autre machine du même réseau. Je voudrais connaître le clé du mystère. Comment faut-il procéder? Sur la même machine tout marche bien avec NetBeans.

    Merci pour votre aide.

    Leaston

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Mars 2007
    Messages : 79
    Points : 48
    Points
    48
    Par défaut
    Bonjour,

    Désolé de ne pas avoir répondu plutôt, mais j'étais surchargé au niveau de mon taff.

    Mon problème venait de mon web service et non de mon client. Mon web service a été développé en PHP avec le framework Zend.

    La solution à mon problème était de mettre les classes Metiers dans le même fichier que celui du WebService. Je ne sais pas pourquoi, mais maintenant ça marche et je n'ai pas le temps pour l'instant de m'y pencher.

    Je pense donc que ça ne va pas trop t'aider car apparement ton web service est en Java.

    Ce que je peux te conseiller, c'est de commencer par un web service simple comme par exemple un web service qui retourne un string et d'essayer de l'appeler à partir d'un client qui n'est pas sur la même machine que ton web service. Une fois que ça marche, ajoutes ton code pour essayer de voir d'où vient le problème.

    Si tu ne t'en sors pas, crée un post sur le forum avec ton code, je suis sûr que la communauté de Developpez.com pourra t'aider.

  5. #5
    Membre du Club
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Août 2010
    Messages : 41
    Points : 45
    Points
    45
    Par défaut
    Bonjour CocoLeNain.

    Merci pour tes conseils que j'essaye actuellement de suivre.
    Leaston

  6. #6
    Membre du Club
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Août 2010
    Messages : 41
    Points : 45
    Points
    45
    Par défaut
    Bonjour CocoLeNain,

    J'ai finalement pu trouver la clé du problème pour l'appel d'un web service à partir d'un autre poste de mon réseau.
    En effet, il fallait renseigner l'adresse de mon fichier WSDL en remplaçant localhost par l'adresse IP du serveur, puis mettre un double slash avant le nom du service web. Ce qui me donne ceci:

    http://192.168.1.3:8080/WebApplication1_1//WSDaoJpaService?WSDL;

    1. Vous comprenez que WSDaoJpaService est le nom de mon Web service, et que
    2. 192.168.1.3 est l'adresse IP de mon serveur.



    Voilà tout.

    Merci pour tes conseils.

Discussions similaires

  1. Réponses: 0
    Dernier message: 02/06/2009, 19h28
  2. Trier des lignes sur un autre champ que celui du groupe
    Par tatayoyo dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 28/01/2009, 19h37
  3. Réponses: 7
    Dernier message: 01/09/2007, 15h27
  4. SELECT DISTINCT avec tri sur un autre champ que celui du distinct
    Par Stephane_br dans le forum Langage SQL
    Réponses: 5
    Dernier message: 09/11/2006, 11h37
  5. Réponses: 9
    Dernier message: 23/12/2005, 12h41

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