Io faccio così quando devo prelevare una home:
in un metodo di una classe di utility, chiamato getEjbHome, passo due parametri: il nome dell'interfaccia ed il tipo di classe
Codice PHP:
public static Object getEJBHome(String name, Class type){
try{
InitialContext ctx = new InitialContext();
Object actual = ctx.lookup(name);
return PortableRemoteObject.narrow(actual, type);
}
catch(NamingException ne){
ne.printStackTrace();
log.fatal("Naming Exception: Home " + name + " cannot be found");
}
}
quando devo richiamare questo metodo faccio:
Codice PHP:
test2Home home2 = (test2Home )EJBUtil.getEJBHome("test2", test2Home.class);
Il fatto di avere quella classe di utility è ininfluente, ma forse l'errore potrebbe essere legato al mancato utilizzo del metodo narrow.
Oppure, potrebbe semplicemente essere un errore nel naming...
ciao