[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
- Subject: Re: [reverbel-sma] 1) carga dinâmica de classes; 2) jndi
- From: "Ivan Neto" <ivanneto@xxxxxxxxx>
- Date: Fri, 13 Oct 2006 22:02:53 -0300
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