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 d'une méthode d'un web service


Sujet :

Services Web Java

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Appel d'une méthode d'un web service
    Bonjour,

    je travaille sur la mise en place d'un web service, j'ai mon fichier .wsdl et je génère automatiquement le stub java correspondant, grâce à la fonction web services stub/skeleton de JDeveloper.

    Seulement lorsque j'essaye d'appeler la méthode "lancement()" (la seule méthode contenu dans mon wsdl) JDeveloper ne la reconnait pas et me dit "method lancement not found in myPackage1.MainAppliServiceStub" Comme si la fonction n'était pas définie, ou que le nombre d'arguments était mauvais.
    L'erreur doit être ailleurs mais je ne vois pas où...

    Le code qui suit a donc été généré automatiquement par JDeveloper mise à part la ligne en gras(celle qui pose problème).
    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
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    package mypackage1;
    import oracle.soap.transport.http.OracleSOAPHTTPConnection;
    import org.apache.soap.encoding.SOAPMappingRegistry;
    import java.net.URL;
    import org.apache.soap.rpc.Call;
    import org.apache.soap.Constants;
    import java.util.Vector;
    import org.apache.soap.rpc.Parameter;
    import org.apache.soap.rpc.Response;
    import org.apache.soap.Fault;
    import org.apache.soap.SOAPException;
    import java.util.Properties;
    
    
    /**
     * Generated by the Oracle JDeveloper 10g Web Services Stub/Skeleton Generator.
     * Date Created: Wed Mar 02 15:54:48 CET 2011
     * WSDL URL: http://localhost:8080/axis2/services/MainAppliService?wsdl
     */
    
    public class MainAppliServiceStub 
    {
      public MainAppliServiceStub()
      {
        m_httpConnection = new OracleSOAPHTTPConnection();
        m_smr = new SOAPMappingRegistry();
      }
    
      public static void main(String[] args)
      {
        try
        {
          MainAppliServiceStub stub = new MainAppliServiceStub();
          // Add your own code here.
          String res = stub.lancement("", "", "", "11", "", "", "", "", "", true);
    
        }
        catch(Exception ex)
        {
          ex.printStackTrace();
        }
    
      }
    
      private String _endpoint = "http://localhost:8080/axis/services/MainAppliService/";
    
      public String getEndpoint()
      {
        return _endpoint;
      }
    
      public void setEndpoint(String endpoint)
      {
        _endpoint = endpoint;
      }
    
      private OracleSOAPHTTPConnection m_httpConnection = null;
      private SOAPMappingRegistry m_smr = null;
    
      public String lancement(String mat, String n, String pre, String bu, String cf, String nomFic, String dd, String df, String txd, Boolean lancExc) throws Exception
      {
        String returnVal = null;
    
        URL endpointURL = new URL(_endpoint);
        Call call = new Call();
        call.setSOAPTransport(m_httpConnection);
        call.setTargetObjectURI("http://examples.ss.poi.apache.org");
        call.setMethodName("lancement");
        call.setEncodingStyleURI(Constants.NS_URI_SOAP_ENC);
    
        Vector params = new Vector();
        params.addElement(new Parameter("mat", String.class, mat, null));
        params.addElement(new Parameter("n", String.class, n, null));
        params.addElement(new Parameter("pre", String.class, pre, null));
        params.addElement(new Parameter("bu", String.class, bu, null));
        params.addElement(new Parameter("cf", String.class, cf, null));
        params.addElement(new Parameter("nomFic", String.class, nomFic, null));
        params.addElement(new Parameter("dd", String.class, dd, null));
        params.addElement(new Parameter("df", String.class, df, null));
        params.addElement(new Parameter("txd", String.class, txd, null));
        params.addElement(new Parameter("lancExc", Boolean.class, lancExc, null));
        call.setParams(params);
    
        call.setSOAPMappingRegistry(m_smr);
    
        Response response = call.invoke(endpointURL, "");
    
        if (!response.generatedFault())
        {
          Parameter result = response.getReturnValue();
          returnVal = (String)result.getValue();
        }
        else
        {
          Fault fault = response.getFault();
          throw new SOAPException(fault.getFaultCode(), fault.getFaultString());
        }
    
        return returnVal;
      }
    
      public void setMaintainSession(boolean maintainSession)
      {
        m_httpConnection.setMaintainSession(maintainSession);
      }
    
      public boolean getMaintainSession()
      {
        return m_httpConnection.getMaintainSession();
      }
    
      public void setTransportProperties(Properties props)
      {
        m_httpConnection.setProperties(props);
      }
    
      public Properties getTransportProperties()
      {
        return m_httpConnection.getProperties();
      }
    }
    Merci de votre aide

  2. #2
    Membre averti Avatar de rockley
    Homme Profil pro
    Inscrit en
    Décembre 2010
    Messages
    404
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 404
    Points : 346
    Points
    346
    Par défaut
    J'utilise pas JDeveloper mais je pense que tu devrais avoir plusieurs classes.

    Moi quand je génère les classes que ce soit en ligne de commande avec axis, sur netbeans ou sur eclipse, j'ai toujours plusieurs classes.

    Une classe par méthode et des classes de communication (proxy, stub, service, ...). C'est pas toujours les mêmes.


    De plus, je te conseil de mettre ton main dans une classe extérieur. C'est plus claire à comprendre.

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Tout d'abord merci de votre réponse, c'est vrai que ce que j'ai fait n'est pas très propre (je l'admet), mais j'ai testé cette manière de procéder avec une méthode toute simple (qui fait la somme des paramètres qu'elle reçoit) et dans ce cas ça fonctionne. Je me demande si le problème ne vient pas d'ailleurs : Quand j'ai développé l'application (que je tente de lancer ici) sous Eclipse, je lui ai alloué 1024 Mo de mémoire (commande du type : -Xms1024m). Car l'application plante si la mémoire allouée est inférieure.
    Peut-être que cela vous aidera : lorsque je tente de lancer l'application en utilisant l'url axis :
    http://localhost:8080/axis/services/ServiceMainAppli?method=lancement&mat=""&n=""&pre=""&bu="11"&cf=""&nomFic=""&dd=""&df=""&txd=""&lancExc=true

    Tomcat se ferme et m'affiche ces messages d'erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    2 mars 2011 17:53:18 org.apache.coyote.http11.Http11BaseProtocol pause
    INFO: Suspension de Coyote HTTP/1.1 sur http-8080
    2 mars 2011 17:53:19 org.apache.catalina.core.StandardService stop
    INFO: Arrêt du service Catalina
    2 mars 2011 17:53:19 org.apache.catalina.core.StandardWrapper unload
    INFO: Waiting for 1 instance(s) to be deallocated
    2 mars 2011 17:53:20 org.apache.catalina.core.StandardWrapper unload
    INFO: Waiting for 1 instance(s) to be deallocated
    2 mars 2011 17:53:21 org.apache.catalina.core.StandardWrapper unload
    INFO: Waiting for 1 instance(s) to be deallocated
    2 mars 2011 17:53:24 org.apache.coyote.http11.Http11BaseProtocol destroy
    INFO: Arrêt de Coyote HTTP/1.1 sur http-8080
    Je ne suis pas sûr mais je pense que l'allocation de mémoire n'y est pas pour rien...

Discussions similaires

  1. Réponses: 3
    Dernier message: 31/03/2015, 08h57
  2. Appel d'une méthode de Web Service
    Par mhamed2705 dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 22/02/2013, 13h07
  3. Appel d'une servlet depuis un Web Service JAX-WS
    Par gabybag dans le forum Services Web
    Réponses: 0
    Dernier message: 10/10/2011, 15h37
  4. problème d'appel d'une méthode d'un service web
    Par aida1986 dans le forum Services Web
    Réponses: 15
    Dernier message: 21/05/2010, 15h10
  5. Réponses: 2
    Dernier message: 11/05/2010, 13h15

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