Voici ma source de classe BeanAppeler une méthode de haricot d'entreprise
@Stateless (mappedName = "StringVal") public class NewSessionBean implémente NewSessionRemote {
String val = null;
public String stringChange(int parameter) {
while(parameter < 5){
switch (parameter){
case 1: System.out.println(val + "One" + ",");
case 2: System.out.println(val + "Two" + ",");
case 3: System.out.println(val + "Three" + ",");
case 4: System.out.println(val + "Four" + ",");
}
}
return val;
}
}
Et voici ma classe client pour ce bean (client autonome)
import endpoint.NewSessionRemote; import javax.naming.InitialContext;
public class TestLogicBean {
static String retVal = null;
public static void main(String[] args) {
try {
InitialContext ctx = new InitialContext();
NewSessionRemote br = (NewSessionRemote) ctx.lookup("StringVal");
for (int i = 0; i < 5; i++) {
String retVal1 = br.stringChange(i);
System.out.println("EJB message is:" + retVal1);
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
Mais je reçois cette exception « javax.naming.NoInitialContextException: Nécessité de préciser le nom de la classe dans l'environnement ou la propriété du système, ou comme paramètre d'applet , ou dans un fichier de ressources d'application: java.naming.factory.initial "
J'ai essayé plusieurs façons de faire cela, mais cela donne quand même cette exception.
L'appel de la méthode stringChange() de votre bean n'entraîne-t-il pas une boucle infinie? :) –