Tô fazendo alguma besteira aqui…
Meu EJB tem os doclets:
* @ejb.bean name = "QueryManagerRemoteHome" display-name="QueryHandler Component"
* description="EJB Component for the QueryHandler"
* jndi-name="obqs.ejb.Query" type="Stateless" view-type="both"
Isso me gera uma interface Remote chamada QueryManager.
Ok, deploy blablabla, tento alcançar com o código:
query = context.lookup("obqs.ejb.Query");
PortableRemoteObject.narrow(query, QueryManager.class);
E tomo um ClassCastException. Consigo acessar outros beans, com Remote feito na mão.
Alguém? JBoss 3.2.
[]s
Olá Phillip,
Acredito que o erro está no name = "QueryManagerRemoteHome"
o certo não seria apenas name = “QueryManager” ???
Eu acabei de fazer um “Hello World” bem simples com a mesma estrutura
:arrow: QueryManagerBean
:arrow: QueryManager (Remote)
:arrow: QueryManagerHome (Home)
meu doclet ficou assim
* @ejb.bean name = "QueryManager"
* type = "Stateless"
* display-name = "QueryManagerBean"
* description = "QueryManagerBean EJB"
* view-type = "remote"
* jndi-name = "ejb/QueryManagerBeanHome"
E para eu poder acessá-lo no Container
Hashtable hashtable = new Hashtable();
hashtable.put(Context.INITIAL_CONTEXT_FACTORY,"org.jnp.interfaces.NamingContextFactory");
hashtable.put(Context.PROVIDER_URL,"localhost:1099");
try {
Context context = new InitialContext(hashtable);
QueryManagerHome queryManagerHome = (QueryManagerHome) PortableRemoteObject.narrow(context.lookup("ejb/QueryManagerBeanHome"),QueryManagerHome.class);
QueryManager queryManager = queryManagerHome.create();
System.out.println(queryManager.helloWorld());
} catch (NamingException e) {
e.printStackTrace();
} catch (RemoteException e) {
e.printStackTrace();
} catch (CreateException e) {
e.printStackTrace();
}