Pb avec j2ee

billy -  
fouix Messages postés 2 Statut Membre -
Salut lorsque je compile le Client de mon l'EJB j'ai ce message:
j'utilise tomcat

"HelloWorldClient.java:38: cannot resolve symbol
symbol : method sayHello ()
location: interface sb.HelloWorld
String message = myHelloWorld.sayHello();
^
1 error"

merci

5 réponses

  1. choubaka Messages postés 5535 Date d'inscription   Statut Modérateur Dernière intervention   2 113
     
    salut

    tu peux nous montrer le code de l'interface et de ta classe?

    Chouba
    Casque Bleu forumique
    0
    1. billy
       
      salut

      voici mon interface distant

      package sb;

      import javax.ejb.EJBObject;
      import java.rmi.RemoteException;

      public interface HelloWorld extends EJBObject {

      public String sayHelloWorld() throws RemoteException;
      }


      voici mon interface locale

      package sb;

      import java.io.Serializable;
      import java.rmi.RemoteException;
      import javax.ejb.CreateException;
      import javax.ejb.EJBHome;

      public interface HelloWorldHome extends EJBHome {

      HelloWorld create() throws RemoteException, CreateException;

      }

      voici mon bean

      package sb;

      import java.rmi.RemoteException;
      import javax.ejb.SessionBean;
      import javax.ejb.SessionContext;

      public class HelloWorldBean implements SessionBean {

      public String sayHello() {
      return "Bonjour monde";
      }

      public void ejbCreate() {}
      public void ejbRemove() {}
      public void ejbActivate() {}
      public void ejbPassivate() {}
      public void setSessionContext(SessionContext sc) {}

      }

      voici mon client

      package sb;

      import java.util.Properties;
      import javax.naming.InitialContext;
      import javax.naming.Context;
      import javax.transaction.UserTransaction;
      import javax.rmi.PortableRemoteObject;

      public class HelloWorldClient {

      public static void main(String args[]) {

      // Récupération du contexte initial
      Context initialContext = null;
      try {
      initialContext = new InitialContext();
      } catch (Exception e) {
      System.err.println("Impossible d'accéder au contexte JNDI : " + e);
      System.exit(2);
      }

      // Récupération d'une référence à l'interface locale
      HelloWorldHome home = null;
      try {
      home = (HelloWorldHome)PortableRemoteObject.narrow(initialContext.lookup("MyHelloWorld"), HelloWorldHome.class);
      } catch (Exception e) {
      System.err.println( "Impossible de trouver HelloWorldHome : " + e);
      System.exit(2);
      }

      // Création d'un objet de même type que l'interafce distante
      // et appel de la fonction sayHello()
      HelloWorld myHelloWorld = null;
      try {
      myHelloWorld = home.create();
      System.out.println(myHelloWorld.sayHello());
      } catch (Exception e) {
      System.err.println("Impossible de créer le bean : " + e);
      System.exit(2);
      }

      }
      }
      0
      1. choubaka Messages postés 5535 Date d'inscription   Statut Modérateur Dernière intervention   2 113 > billy
         
        ce que je comprends pas, c'est que tu instancies une interface
        tu devrais créer un objet qui implémente cette interface Helloworld et puis instancier cette classe.

        Chouba
        Casque Bleu forumique
        0
  2. maily Messages postés 7560 Statut Contributeur 453
     
    Bonjour

    Moi, ce que ça m'inspire c'est qu'il ne reconnait pas la méthode sayHello()! Il ne sait pas ce que c'est donc, tu n'as pas inclue le fichier ou est définie sayHello()!!
    voila
    bon courage!!

    Maily   :-))))
    0
  3. choubaka Messages postés 5535 Date d'inscription   Statut Modérateur Dernière intervention   2 113
     
    ou une implémentation foireuse, c'est possible

    Chouba
    Casque Bleu forumique
    0
  4. Coyote
     
    Dans l'interface, c'est la méthode sayHelloWorld() qui est définie
    Or dans l'implémentation de ton Bean, c'est la méthode sayHello()

    Donc il est normal que la méthode sayHello() ne soit pas reconnue dans le code du client ! il faut donner le même nom au deux méthodes
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. fouix Messages postés 2 Statut Membre
     
    trés bien coyote
    0