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

Java EE Discussion :

Service web et EJB3 [EJB]


Sujet :

Java EE

  1. #1
    Membre habitué Avatar de khallou2007
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    111
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mars 2008
    Messages : 111
    Points : 153
    Points
    153
    Par défaut Service web et EJB3
    bonjour,
    de retour après une longue absence, bon j'aime testé une service web avec les ejb3, j'ai développé mon Bean "TestBean"et le WSDL est généré, j'utilise Eclipse wtp et Jboss 4, le probleme et coté client voila le code asocié:
    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
    package khaled;
     
    import java.net.URL;
     
    import javax.xml.namespace.QName;
    import javax.xml.rpc.Service;
    import javax.xml.rpc.ServiceFactory;
     
    import khallou.Test;
     
    public class Client {
        public static void main(String[] args) throws Exception {
            URL url = new URL("http://pc-de-khallou:8080/WS/TestBean?wsdl");
            QName qname = new QName("http://khallou/jaws","TestService");
            System.out.println("Creating a service Using: \n\t"+ url + " \n\tand " + qname);
            ServiceFactory factory = ServiceFactory.newInstance();
            Service remote = factory.createService(url, qname);
            System.out.println("Obtaining reference to a proxy object");
            Test nom = (Test) remote.getPort(Test.class);
            System.out.println("Accessed local proxy: " + nom);
            String string = "world";
            System.out.println("Sending: " + string);
            try{
            	System.out.println("Receiving: " + nom.sayHello("world"));
            }
            catch(Exception e){
            	System.out.println(e.getStackTrace());
            }
     
        }
    }

    l'erreur au niveau de l'invocation alors j'ai fai une try catch (derniere ligne)
    voila l'execution
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Creating a service Using: 
    	http://pc-de-khallou:8080/WS/TestBean?wsdl 
    	and {http://khallou/jaws/}TestService
    Obtaining reference to a proxy object
    Accessed local proxy: org.jboss.ws.jaxrpc.CallImpl@ed0338
    [Ljava.lang.StackTraceElement;@18dfef8
    j'ai suit ce petit tuto http://www.theregister.co.uk/2007/01..._web_services/

    merci d'avance pour toute proposition

  2. #2
    Membre habitué Avatar de khallou2007
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    111
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mars 2008
    Messages : 111
    Points : 153
    Points
    153
    Par défaut
    j'ai changé la version de Jbosse, j'utilise jboss-5.0.0.CR2 et eclipse jee ganymede 3.4.2
    j'ai construit mon bean avec l'interface remote et le déploiement est sans erreur, deja je peut lister le service en allant sur ce lien http://localhost:8080/jbossws/services et afficher le fichier wsdl.(http://127.0.0.1:8080/EJBWS/HelloWorld?wsdl)

    mais lors l'invocation du service j'ai l'erreur suivante
    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
    Exception in thread "main" javax.xml.ws.WebServiceException: Failed to access the WSDL at: http://127.0.0.1:8080/ejb/HelloWorld?wsdl. It failed with: 
    	http://127.0.0.1:8080/ejb/HelloWorld?wsdl.
    	at com.sun.xml.ws.wsdl.parser.RuntimeWSDLParser.tryWithMex(RuntimeWSDLParser.java:136)
    	at com.sun.xml.ws.wsdl.parser.RuntimeWSDLParser.parse(RuntimeWSDLParser.java:122)
    	at com.sun.xml.ws.client.WSServiceDelegate.parseWSDL(WSServiceDelegate.java:226)
    	at com.sun.xml.ws.client.WSServiceDelegate.<init>(WSServiceDelegate.java:189)
    	at com.sun.xml.ws.client.WSServiceDelegate.<init>(WSServiceDelegate.java:159)
    	at com.sun.xml.ws.spi.ProviderImpl.createServiceDelegate(ProviderImpl.java:81)
    	at javax.xml.ws.Service.<init>(Service.java:56)
    	at javax.xml.ws.Service.create(Service.java:680)
    	at TestEJB.getPort(TestEJB.java:19)
    	at TestEJB.main(TestEJB.java:25)
    Caused by: java.io.FileNotFoundException: http://127.0.0.1:8080/ejb/HelloWorld?wsdl
    	at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1288)
    	at java.net.URL.openStream(URL.java:1009)
    	at com.sun.xml.ws.wsdl.parser.RuntimeWSDLParser.createReader(RuntimeWSDLParser.java:785)
    	at com.sun.xml.ws.wsdl.parser.RuntimeWSDLParser.resolveWSDL(RuntimeWSDLParser.java:236)
    	at com.sun.xml.ws.wsdl.parser.RuntimeWSDLParser.parse(RuntimeWSDLParser.java:107)
    	... 8 more
    voila le code du client :
    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
     
     
    import java.net.MalformedURLException;
    import java.net.URL;
     
    import javax.xml.namespace.QName;
    import javax.xml.ws.Service;
     
    import samples.webservice.HelloRemote;
     
     
    public class TestEJB {
     
     
    	 private static HelloRemote getPort(String endpointURI) throws MalformedURLException   {
    	   QName serviceName = new QName("http://www.openuri.org/2004/04/HelloWorld", "HelloWorldService");
    	   URL wsdlURL = new URL(endpointURI);
     
    	   Service service = Service.create(wsdlURL, serviceName);
    	   return service.getPort(HelloRemote.class);
    	 }
    	 public static void main(String args[]) throws Exception {
    		  String endpointURI ="http://127.0.0.1:8080/ejb/HelloWorld?wsdl";
    		  String helloWorld = "Hello world!";
    		  Object retObj = getPort(endpointURI).echo(helloWorld);
    		  System.out.println(retObj);
    		}  
    }

    je pense qu'il y a des librairie qu'il faut les ajouter!!

  3. #3
    Membre habitué Avatar de khallou2007
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    111
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mars 2008
    Messages : 111
    Points : 153
    Points
    153
    Par défaut
    bon j'ai touvé une solution,
    l'appel du service web en utilisant ejb3 ca marche pour jdk 1.5 ( ya un problem avec le jdk 1.6).
    si personne connait comment la faire tourner sous 1.6 ca sera génial.

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

Discussions similaires

  1. [EJB3] Service Web avec EJB3
    Par Sebastien13 dans le forum Java EE
    Réponses: 2
    Dernier message: 11/11/2007, 11h12
  2. Livre : XML et les services Web
    Par cyberzoide dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 27/05/2007, 18h12
  3. [VB.Net] Comment renvoyer un SQLDataReader par un service Web ?
    Par moufles03 dans le forum Services Web
    Réponses: 4
    Dernier message: 13/07/2004, 12h55
  4. [C#] Comment passer un paramètre Boolean au service Web ?
    Par ramalho dans le forum Services Web
    Réponses: 3
    Dernier message: 07/06/2004, 18h31
  5. Quel est l'intérêt des Services Web ??
    Par silvermoon dans le forum Débats sur le développement - Le Best Of
    Réponses: 19
    Dernier message: 12/02/2003, 23h28

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