[color=red]Olá Pessoal,[/color]
Estou fazendo uma “mini-aplicação” para testar cerca de 6 EJB´s… Como não quero colocar direto no código (hardcode) esses EJB´s (import e criar a instância), estou utilizando Reflection…
A idéia é simples… o usuário num html inicial coloca o nome do PROVIDER_URL e o initialContext.lookup (JNDI), o nome do EJB q ele quer acessar e o resultado dessa consulta trará o nome dos métodos públicos, o que eles retornam e tudo mais através de uma servlet…
Normalmente o q encontro na Internet sobre código de Reflection já tem os EJB´s no código, facilitando o trabalho… o q preciso é fazer essa conexão do EJB através no input do usuário… ou seja, ele vai me passar o nome do EJB… o q parece q dificulta bastante as coisas…
Através deste link: [color=brown]http://www.ddj.com/184403939?pgno=1[/color], encontrei a informação q preciso… mas está complicado de entender daonde o cara que fez o código puxa determinados métodos… alguém poderia me ajudar… abaixo segue o meu código atual:
// A parte abaixo é do PROVIDER_URL - naum dá problema!! Tá certo!
Properties properties = new Properties();
properties.put(javax.naming.Context.PROVIDER_URL, req.getParameter(“provider_url”));
properties.put(javax.naming.Context.INITIAL_CONTEXT_FACTORY,
“com.ibm.websphere.naming.WsnInitialContextFactory”);
javax.naming.InitialContext initialContext = new javax.naming.InitialContext(properties);
/*
Esta é a parte q começa a complicar… o lookup - é ai q eu recebo o parametro do usuário e naum consigo achar o EJB
*/
Object objHome = initialContext.lookup(req.getParameter(“lookup”));
// Esse cara aí embaixo é o famoso Reflection
Class Classe = Class.forName(req.getParameter(“EJB”));
// Aqui embaixo é onde começa a complicar… e naum compilo de jeito nenhum!!
Object classe = javax.rmi.PortableRemoteObject.narrow(objHome,Classe);
Method createRemoteProxy = Classe.getMethod( “create”, null );
proxy = (ConverterInterface)
createRemoteProxy.invoke( home, null );
/*
Essa parte eu peguei no link: <a href="http://www.ddj.com/184403939;jsessionid=XMIFLKPEFAQP4QSNDLPCKH0CJUNN2JVN?pgno=9">http://www.ddj.com/184403939;jsessionid=XMIFLKPEFAQP4QSNDLPCKH0CJUNN2JVN?pgno=9</a>… quando alguém ver o código dessa página… por favor me digam onde o cara pega o código do método “ConverterInterface”…
*/
Bom… é isso… aceito qualquer ajuda… se alguém tiver código pra teste de EJB pronto me passem please…
Ah… detalhe importante… plataforma 1.4.2…
Abraços!!