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

Re: Erro compilando os .java gerados a partir da IDL



Bola fora minha, Emílio. :-( 

Vocês devem estar pensando eu estou maluco... E devo estar mesmo,
pois a receita que eu dei é para um outro problema, que não tem 
nada a ver com o EP de vocês.

Por favor ignorem a minha mensagem anterior. Já deletei aqueles
arquivos IDL que eu tinha mandado vocês usarem. Desculpas ao Emílio
e a quem quer que tenha perdido tempo com a sugestão errada.

Agora a sugestão (que espero esteja!) certa: deletem os arquivos
*Factory.java gerados pelo idlj. Esses arquivos contém definições
de value factories, que são desnecessárias no caso de RMI valuetypes.
Mais detalhes em classe...

Reverbel


On Fri, 31 Oct 2003, Emilio de Camargo Francesquini wrote:

> Olá,
> 
> fiz como você havia dito. Os erros mudaram um pouco, mas ainda continuo tomando
> erros na compilação:
> 
> output\client\java\lang\StackTraceElementDefaultFactory.java [15] cannot resolve
> symbol
> symbol  : class StackTraceElementImpl 
> location: class java.lang.StackTraceElementDefaultFactory
>     return is.read_value(new StackTraceElementImpl ());
>                              ^
> output\client\java\lang\ThrowableDefaultFactory.java [15] cannot resolve symbol
> symbol  : class ThrowableImpl 
> location: class java.lang.ThrowableDefaultFactory
>     return is.read_value(new ThrowableImpl ());
>                              ^
> output\client\java\lang\_ExceptionDefaultFactory.java [15] cannot resolve symbol
> symbol  : class _ExceptionImpl 
> location: class java.lang._ExceptionDefaultFactory
>     return is.read_value(new _ExceptionImpl ());
>                              ^
> output\client\javax\ejb\CreateExceptionDefaultFactory.java [15] cannot resolve
> symbol
> symbol  : class CreateExceptionImpl 
> location: class javax.ejb.CreateExceptionDefaultFactory
>     return is.read_value(new CreateExceptionImpl ());
>                              ^
> output\client\javax\ejb\RemoveExceptionDefaultFactory.java [15] cannot resolve
> symbol
> symbol  : class RemoveExceptionImpl 
> location: class javax.ejb.RemoveExceptionDefaultFactory
>     return is.read_value(new RemoveExceptionImpl ());
>                              ^
> 5 errors
> build.xml [74] Compile failed; see the compiler error output for details.
> BUILD FAILED
> Total time: 28 seconds
> 
> 
> [ ]'s
> 
> Citando Francisco Reverbel <reverbel@ime.usp.br>:
> 
> > Oi Emílio,
> > 
> > Droga, eu tinha me esquecido desse problema! :-(
> > 
> > Você está usando o JDK 1.4.x, certo? Então a receita abaixo deve
> > funcionar. Se não estiver usando JDK 1.4.x, pare de ler por aqui
> > mesmo, que a minha sugestão não vai ajudar você em nada.
> > 
> > Primeiro delete todos os arquivos java gerados a partir dos arquivos 
> > IDL. (Não delete os arquivos IDL gerados pelo rmic.) Depois pegue os 
> > três arquivos IDL que eu deixei no diretório
> > 
> > http://www.ime.usp.br/~reverbel/SMA/trabalhos/ep2/jdk1.4-Throwable/
> > 
> > Copie o arquivo Throwable.idl desse diretório para cima do Throwable.idl
> > que o rmic gerou no seu subdiretório java/lang. Copie também para o seu 
> > subdiretório java/lang o arquivo StackTraceElement.idl. Finalmente, 
> > copie o arquivo seq1_StackTraceElement.idl para o seu subdiretório 
> > org/omg/boxedRMI/java/lang/ (crie tal subdiretório, caso você ainda não 
> > o tenha). 
> > 
> > Agora compile todos os IDLs com o idlj e compile os arquivos java.
> > Desta vez a compilação deve ser bem sucedida. (Mas se não for, é bola
> > fora minha mesmo...)
> > 
> > Depois que tudo funcionar eu explico o porquê da receita de bolo.
> > 
> > Boa sorte,
> > 
> > Reverbel
> > 
> > On Thu, 30 Oct 2003, Emilio de Camargo Francesquini wrote:
> > 
> > > Olá!
> > > 
> > > O que acontece é o seguinte: criei um EJB bem besta para testar a
> > invocação
> > > através de IIOP e tentar colocar alguns interceptadores. Criei o EJB da
> > maneira
> > > usual, compilei as suas classes e gerei as suas IDL's e usando os
> > comandos
> > > sugeridos pelo Reverbel (abaixo):
> > > 
> > > >  rmic -classpath ... -idl -noValueMethods InterfRemotaDoEJB
> > > >  rmic -classpath ... -idl -noValueMethods InterfHomeDoEJB
> > > 
> > > Como esperado foi gerado um monte de arquivos, entre eles:
> > > 
> > > java.lang
> > >    Ex.idl
> > >    Exception.idl
> > >    Throwable.idl
> > >    Object.idl
> > >    ThrowableEx.idl
> > > javax.ejb 
> > >    CreateEx.idl
> > >    CreateException.idl
> > >    ...
> > > testes.ejb (o package do meu EJB de teste)
> > >    TesteHome.idl
> > >    Teste.idl
> > > 
> > > Pois bem, mandei compilar as idls com o idlj e foram gerados os .java. Até
> > ai
> > > sem problemas. (a propósito, como faço, no ant, pra compilar um monte de
> > idls
> > > com o idlj sem escrever um monte de <exec executable="idlj"....?)
> > > 
> > > O problema ocorre quando vou compilar esses .java gerados. Eles
> > referenciam
> > > algumas classes que eu não encontrei em local algum. Vejam alguns dos
> > erros:
> > > 
> > > output\client\java\lang\ThrowableDefaultFactory.java [15] cannot resolve
> > symbol
> > > symbol  : class ThrowableImpl 
> > > location: class java.lang.ThrowableDefaultFactory
> > >     return is.read_value(new ThrowableImpl ());
> > >                              ^
> > > output\client\java\lang\_Exception.java [23] cannot resolve symbol
> > > symbol  : method _read (org.omg.CORBA.portable.InputStream)
> > > location: class java.lang.Throwable
> > >     super._read (istream);
> > >          ^
> > > output\client\java\lang\_Exception.java [28] cannot resolve symbol
> > > symbol  : method _write (org.omg.CORBA.portable.OutputStream)
> > > location: class java.lang.Throwable
> > >     super._write (ostream);
> > >          ^
> > > output\client\java\lang\_ExceptionDefaultFactory.java [15] cannot resolve
> > symbol
> > > symbol  : class _ExceptionImpl 
> > > location: class java.lang._ExceptionDefaultFactory
> > >     return is.read_value(new _ExceptionImpl ());
> > >                              ^
> > > output\client\javax\ejb\CreateExceptionDefaultFactory.java [15] cannot
> > resolve
> > > symbol
> > > symbol  : class CreateExceptionImpl 
> > > location: class javax.ejb.CreateExceptionDefaultFactory
> > >     return is.read_value(new CreateExceptionImpl ());
> > >                              ^
> > > output\client\javax\ejb\RemoveExceptionDefaultFactory.java [15] cannot
> > resolve
> > > symbol
> > > symbol  : class RemoveExceptionImpl 
> > > location: class javax.ejb.RemoveExceptionDefaultFactory
> > >     return is.read_value(new RemoveExceptionImpl ());
> > >                              ^
> > > testes\cliente\ClienteTeste.java [22] cannot resolve symbol
> > > symbol  : method getHomeInterfaceClass ()
> > > location: interface javax.ejb.EJBMetaData
> > >         Class homeInterfaceClass = ejbMetaData.getHomeInterfaceClass();
> > >                                               ^
> > > 7 errors
> > > 
> > > 
> > > Alguém tem alguma idéia do que pode estar ocorrendo? 
> > > 
> > > 
> > > [ ]'s
> > > 
> > > --
> > > Emilio de Camargo Francesquini
> > > 
> > > 
> > 
> > 
> 
> 
> --
> Emilio de Camargo Francesquini
> 
>