JNDI / JBoss

7 respostas
C

Olá,

Tenho uma aplicação J2EE Struts onde o modelo usando EJB ( stateful, stateless, Entity.. )  está em um JAR separado feito deployment em uma maquina com o JBoss.
A parte que lida com apresentação está em um arquivo WAR e gostaria de fazer deployment no mesmo em outra maquina rodando também o JBoss.
O problema é que, para fazer o lookup dos beans eu uso o InitialContext sem argumentos no constructor, dessa forma ele usa o jndi.properties que fica em <JBOSS_HOME>/server/default/conf.
Se eu editar este arquivo e descomentar a linha onde é definido o URL do servidor JNDI, e colocar esta property com o host e porta da maquina onde estão os beans, quando eu reinicio a maquina, aparecem varios erros de Object already bound, dai nenhuma operação de lookup funciona.
A pergunta é, como configurar o JBoss para usá-lo como Web container cuja aplicações irão fazer lookup sempre na maquina onde estão os beans.
Qualquer palpite vale.

7 Respostas

urubatan

se as maquinas estão na mesma rede, simplesmente faz o deploy do modulo de cluster dele :slight_smile:

C

Sim, elas estão na mesma rede.

Como fazê-lo ?
ozielneto

Usando o JBOSS 3.2 basta iniciar a instancia “all” ao inves da “default”, e fazer o deploy da aplicacao em ambos os diretorios das instancias “all” dos servidores… deve funcionar.

No JBOSS 3.0, e mais complicado um pouco…

Entretanto, no meu site ( www.oziel.com.br/ebooks2.html ) tem o conjunto dos livros do JBOSS, inclusive o de clustering.

Bom estudo.

C

Vou ler este livro sobre clustering, mas acho que o que preciso é bem menos.
Se a minha classe ServiceLocator (essa classe é um Singleton)estivesse usando o construtor do InitialContext que recebe um Properties eu poderia configurá-lo para conectar-se à outra máquina onde estão os beans. O problema é que se eu mudar o endereço dos Beans eu teria que atualizar e recompilar a classe ServiceLocator, por isso estou tentando usar o jndi.properties, para desacoplar o ServiceLocator do endereço de rede do EJB Container.
Será que eu preciso usar clustering para ativar isso ?
O que quero é dizer ao JBoss que todo InitialContext criado sem parametros irá apontar para um Naming Server determinado no jndi.properties, soh isso.
Obrigado pela ajuda.

urubatan

é que se utilizar clustering, isto fica transparente
se fizer de outra maneira, tu tem que saber onde esta o server, mesmo que seja para atualizar o jndi.properties

C

Fiz o teste colocando a aplicação em cluster, realmente é um ótimo recurso, muito fácil de configurar, mas não é realmente o que quero.
Com o cluster todos os nós tem os modulos replicados, ou seja, se eu fizer deployment de um ejb-jar.jar no farm de qualquer nó, o cluster vai replicar para todos os nós.
Na verdade o que gostaria era que somente uma maquina tivesse os pacotes de Controller/View e outra máquina somente os pacotes do Model.
Alguma outra solução que não cluster.

urubatan

basta desativar o modulo de ejb na maquina que tu quer que tenha só o view :slight_smile:
e desativar o modulo web na maquina que tu quer que tenha o modulo de controle :slight_smile:

Criado 22 de agosto de 2003
Ultima resposta 25 de ago. de 2003
Respostas 7
Participantes 3