ejb3

Srs. faz algum tempo que estou fazendo alguns testes com o EJB3. Estou fazendo um exemplo simples de consulta cep (Mundo Java nº20). Consegui fazer funcionar com o Cliente dentro do mesmo jar.
A duvida é como eu faço isso para uma aplicação distribuida, explico:
… a idéia é, tenho um appProjeto.war (struts2,tiles) e este com suas regras de negócio construidas com EJB3, ou seja, estaram em um container EJB. Assim eu terei um bean manutenção de empregado por ex. que será chamado pelo appProjeto.war.

Funciona assim ou estou pedindo demais !!

t+

Olha oque consegui fazer…

public String testeEjb() throws Exception {

		Properties properties = new Properties();
 		properties.put("java.naming.factory.initial","org.jnp.interfaces.NamingContextFactory");
 		properties.put("java.naming.factory.url.pkgs","=org.jboss.naming:org.jnp.interfaces");
		properties.put("java.naming.provider.url","localhost:1099");
 			
		Context context = new InitialContext(properties);

		System.out.println(context.lookup("ConsultaCEPBean/remote"));
		System.out.println("teste");
		
		return SUCCESS;
	}

Quando executo a url testeEjb.action retorna o seguinte:

12:47:13,239 INFO  [STDOUT] 12:47:13,239 INFO  [ActionValidatorManagerFactory] Detected AnnotationActionValidatorManager, initializing it...
12:47:13,380 INFO  [STDOUT] [b]jboss.j2ee:jar=business.ejb3,name=ConsultaCEPBean,service=EJB3[/b]
12:47:13,380 INFO  [STDOUT] teste

Veja que ele esta carregando o Bean. Mas como eu executo os métodos que estão dentro desse Bean ???

Tentei criar a mesma classe do projeto EJB, mas da um erro mais estranho ainda um tal de $Proxy115…

Alguma idéia ?

TuaInterfaceRemota blaBlaRemoto = (TuaInterfaceRemota) context.lookup(“ConsultaCEPBean/remote”);

blaBlaRemoto.nomeMetodo();

JN

Ficou assim. No entanto tenho uma dúvida… é correto utilizar desta forma, com reflexão?

Ou tem outra forma mais simples…

(Action do Struts2) ex.
public String testeEjb() throws Exception {
Context context = new InitialContext();
Object o = context.lookup(“ConsultaCEPBean/remote”);
o.getClass().getMethod(“getMetodo”, null).invoke(home, null)

    return SUCCESS;

}