Aplicação Java Standalone acessando EJB 3.0

Olá. Estou começando a trabalhar com EJB 3.0, nunca trabalhei com EJBs antes.

Tenho diversos EJB’s em um servidor Glassfish, mas tenho aplicações remotas, pequenos clients que devem executar alguns SessionBeans no servidor. As configurações de conexão estão todas no jdni.properties. Eu estou usando o seguinte bloco de código para conectar a partir dos clients:

[code]Properties props = new Properties();
props.load(new FileInputStream(new File(“jndi.properties”)));

Context ctx = new InitialContext(props);
Object ref = ctx.lookup(“ejb/RegraUsuario”);
RegraUsuarioRemote bean = (RegraUsuarioRemote) PortableRemoteObject.narrow(ref, RegraUsuarioRemote.class);

[/code]

E tudo funciona maravilhosamente, desde que eu coloque o JAR que contem todos os EJB’s (o mesmo que eu uso para dar Deploy no servidor de aplicações) no classpath da aplicação client. E isso não é muito legal, uma vez que estou distribuindo todas as regras de negócio desnecessariamente.

Para permitir o uso das interfaces remotas, eu encontrei diversas referências na internet a respeito de criar “interfaces Stub” para criar os Beans nos clients, mas não encontrei nenhum lugar onde me diga o que são estes stubs ou como criá-los.

Alguém poderia me dar uma luz?

https://glassfish.dev.java.net/javaee5/ejb/EJB_FAQ.html

Certo. Problema resolvido. Fiquei horas a fio no FAQ do Glassfish antes deste post, e acabei não visualizando esta solução.

Entretanto, resolvi o problema com a criação de um Enterprise Application Client para ser acessado via JNLP (Java Web Start).