Rechercher : dans
Par :

Pb avec j2ee

Dernière réponse le 31 jan 2007 à 13:44:30 billy, le 10 jui 2003 à 09:50:13 
 Signaler ce message aux modérateurs

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

Meilleures réponses pour « pb avec j2ee » dans :
Configuration du Framework Acegi dans application Web JAVA J2EE VoirEtape 1: Mettre le acegi-security-1.0.0-RC2.jar sous le répertoire lib de votre application: Etape 2: Configuration des listeners et des filtres: Etape 3: Configuration des filtres et des listeners dans le fichier web.xml: Etape 4:...
J2EE - Java 2 Enterprise Edition VoirIntroduction au Java Framework Le «Java Framework» (Java 2 Platform) est composé de trois éditions, destinées à des usages différents : J2ME : Java 2 Micro Edition est prévu pour le développement d'applications embarquées, notamment sur des...

1

choubaka, le 10 jui 2003 à 10:21:43

Salut

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

Chouba
Casque Bleu forumique

Répondre à choubaka

4

billy, le 10 jui 2003 à 11:26:08

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);
}

}
}

Répondre à billy

5

choubaka, le 10 jui 2003 à 11:31:36

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

Répondre à choubaka

2

maily, le 10 jui 2003 à 10:23:39

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   :-))))

Répondre à maily

3

choubaka, le 10 jui 2003 à 10:39:10

Ou une implémentation foireuse, c'est possible

Chouba
Casque Bleu forumique

Répondre à choubaka

6

Coyote, le 22 oct 2003 à 11:40:11

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

Répondre à Coyote

7

 fouix, le 31 jan 2007 à 13:44:30

Trés bien coyote

Répondre à fouix