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

RE: ORB para o EP2



Oi Paulo, Emerson e classe,

De fato, no lado do servidor é só usar o ORB incluído no JBoss. De dentro
do JBoss, vocês podem obter uma referência para esse ORB (que é o JacORB)
fazendo uma busca por "java:/JBossCorbaORB" no JNDI. Fazendo isso vocês
obtêm uma referência Java mesmo (não é object name JMX), para uma instância
de org.omg.CORBA.ORB.

O EP também pede para vocês escreverem um cliente CORBA. Então vocês vão
precisar de um ORB no lado cliente... A recomendação é usar o também a 
biblioteca de run-time do JacORB (jacorb.jar) do lado do cliente.
No entanto o compilador IDL do JacORB não poderá ser usado para o cliente,
por que ele não trata a diretiva "#pragma ID".

É bom eu explicar isso melhor. Vocês vão escrever um cliente CORBA que
faz chamadas ao "EJB de testes". Que interfaces IDL esse cliente CORBA 
deve usar? Ele usará as interfaces IDL obtidas aplicando-se o mapeamento 
reverso de Java para IDL sobre as interfaces do EJB:

   rmic -classpath ... -idl -noValueMethods InterfRemotaDoEJB

   rmic -classpath ... -idl -noValueMethods InterfHomeDoEJB

O "rmic -idl -noValueMethods" faz o mapeamento reverso e gera arquivos
InterfRemotaDoEJB.idl e InterfHomeDoEJB.idl. (Além desses, ele vai gerar 
mais arquivos IDL, pois todo tipo Java que aparecer nas interfaces do EJB 
tem que ser mapeado para IDL.) 

Acontece que esses arquivos IDL contém diretivas como

#pragma ID InterfRemotaDoEJB "RMI:InterfRemotaDoEJB:0000000000000000"

Acontece também que o compilador IDL do JacORB tem um bug justo no 
tratamento dessas diretivas. Por isso, na hora de gerar stubs CORBA para 
o seu cliente, não usem o compilador IDL do JacORB! Em vez dele, usem o 
compilador IDL que faz parte do JDK (o idlj). Depois de gerarem os stubs
com o idlj, esqueçam o ORB do JDK e rodem o cliente com a biblioteca de
runtime do JacORB (jacorb.jar), que é melhor que a da Sun.

Reverbel


On Mon, 27 Oct 2003, Paulo Silveira wrote:

> Oi Emerson.
> 
> Posso estar errado, mas creio que a gente nao precisa (nem deva) saber
> isso, ja que esta encapsulado no MBean do CorbaORB. (afinal, eh por isso
> que o JBoss tem a trabalhera de usar o JMX). 
> Basta pega-lo por JNDI e invocar pela sua interface MBean, certo? Talvez
> tenha ateh uma dynamic proxy pronta, para a gente
> nao ter de ficar chamando os metodos a la reflection. Professor, tem
> isso?
> 
> Paulo
> 
> ------------------------
> Paulo Silveira
> http://www.ime.usp.br/~peas/
> http://www.guj.com.br/ 
>  
> 
> > -----Original Message-----
> > From: Emerson Luiz Navarro Tozette [mailto:emr@linux.ime.usp.br] 
> > Sent: segunda-feira, 27 de outubro de 2003 16:43
> > To: reverbel-sma@ime.usp.br
> > Subject: ORB para o EP2
> > 
> > 
> > 
> > 	  O enunciado do ep2 nao especifica qual orb
> >        devera ser utilizado. Imagino que seja o Jacorb (??).
> >        
> >        t+
> >        
> >        
> > 
> > -- 
> >    Emerson Luiz Navarro Tozette   <emr@linux.ime.usp.br>
> > 
> >  
> > Man will never penetrate outer space.
> > - Kehlog Albran, August 1942
> > 
> > Man will never penetrate outer space without a rocket.
> > - Kehlog Albran, August 1962
> > 
> > 
> 
> 
>