[Prévia] [Próxima] [Prévia por assunto] [Próxima por assunto]
[Índice cronológico] [Índice de assunto]

Re: [reverbel-sma] 1) carga dinâmica de classes; 2) jndi



Olá Alexandre.

On 10/13/06, Alexandre Freire <chegado@xxxxxxxxx> wrote:
1) carga dinâmica de classes:
 a classe JavaIIOPInvokerProxy só é carregada com sucesso no cliente
quando eu a coloco no classpath do mesmo, caso eu não a coloque no
classpath, ocorre ClassNotFoundException.
É assim mesmo. O cliente precisa da classe JavaIIOPInvokerProxy no seu
classpath (Reverbel, por favor me corrija se eu estiver dizendo
bobagem).

 2) jndi:
estou utilizando o jndi.properties no cliente com o seguinte conteúdo:

java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
java.naming.provider.url=localhost

quando tento fazer um lookup em "java:/JBossCorbaORB" ocorre uma
NameNotBoundException.
Acredito que os componentes regitrados no espaco de nomes "java:" são
visíveis apenas para componentes que executam na mesma VM do servidor
de aplicacões. Não consegui encontrar essa afirmacão nas
especificacões J2EE 1.4 e Java EE 5, mas na classe
org.jboss.naming.java.javaURLContextFactory há o seguinte comentário:
"java: is a VM-local namespace". Portanto, acho que é por isso que o
lookup falha.

Entretanto, mesmo que o lookup não falhasse, acho que nesse caso você
não deseja utilizar a mesma instância de ORB do servidor de
aplicacões. Você pode chamar diretamente ORB.init() para inicializar
um novo ORB no seu cliente, ou utilizar
org.jboss.iiop.CorbaORB.getInstance(). Esse último método faz o
seguinte: quando chamado do lado servidor, ele devolve a instância de
ORB utilizada pelo servidor de aplicacões. Quando chamado fora da VM
do servidor, ele devolve um novo ORB obtido através de uma chamada
ORB.init().

Bom trabalho!


valeu!



--
Ivan Neto