Salut,
j'ai une erreur en essayant d'invoquer un EJB à partir d'un client lourd et je ne comprends pas pourquoi.
Voici le code que j'utilise :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
Application app = new Application();
//établissement de la connection
System.out.println("Contexte JNDI : "+ args[0] + "\n Host : "+ args[1]+"\n Port : " + args[2]+"\n");
app.connectionSA(args[0], args[1], args[2]);
//liste des ejb présents sur le serveur d'application
app.afficherListEjb();
// récupération de la référence JNDI de l'EJB
Object objRef = app.getJndiRef();
[b] ConverterRemoteHome home =
(ConverterRemoteHome)PortableRemoteObject.narrow(
objRef, ConverterRemoteHome.class);[/b] |
Avec pour les méthodes appelées :
1- pour le contexte
1 2 3 4 5 6 7 8 9 10 11 12
|
m_props.put(Context.INITIAL_CONTEXT_FACTORY, com.sun.jndi.cosnaming.CNCtxFactory);
m_props.put(Context.PROVIDER_URL, "iiop://localhost:3700");
// init the jndi context
try
{
this.m_jndiContext = new InitialContext(m_props);
}
catch (Exception e)
{
System.out.println("Erreur de connection au serveur : " + e);
} |
2- pour la référence JNDI de l'EJB :
Object objRef = ctx.lookup(EjbJndiName);
avec EjbJndiName = ejb/ConverterBean
L'erreur que j'ai est :
Exception : java.lang.ClassCastException
En sachant que j'ai mon jar ConverterApp-EJBModule.jar dans mon classpath et tous les import associé...
Quelqu'un serait-il m'éclairer sur ce point?
merci
Partager