Testes EJB´s usando Reflection

0 respostas
D

[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!!

Criado 14 de agosto de 2006
Respostas 0
Participantes 1