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

Re: [reverbel-sod] Re: Novamente ClassCastException



Olá Daniel.

On 6/27/06, Daniel Creão <ldaugusto@xxxxxxxxx> wrote:
E era mesmo, não achava que precisaria também das classes do server
pra rodar o client, mas funcionou normalmente. Minha dúvida agora é
uma que tive logo que vi o EP:
Acredito que as classes do servidor não seriam necessárias. O que é
necessário do lado cliente são as classes geradas pelo wscompile.

Os servants são registrados no CorbaNaming enquanto que o lookup de
Context procura nos objetos que são vistos no JNDIView (ou seja, um
lookup por 'MovieHome' retorna object not bound). Por outro lado, ao
registrar os servants tb no Context JNDI, qnd o lookup por eles é
feito, diz que o objeto não é serializavel.
Isso faz sentido. Uma classe "registrável" no JNDI deve implementar
javax.naming.Referenceable ou java.io.Serializable.

Então a única forma que encontrei e usei no meu EP foi utilizando as
mesmas interfaces do EP anterior, ou seja fazendo chamadas CORBA, mas
que segundo o comando do EP não é o caso ideal, e sim fazendo chamadas
locais. Como fazer com que este EP seja capaz de encontrar e utilizar
os servants definidos sem ser pelo CorbaNaming e nem pelo JNDI?
O que eu havia pensado era em estender as classes dos serventes,
adicionando a essas métodos que trabalhassem diretamente com as
classes de implementação (e não com objetos CORBA). Sua fachada web
service apenas chamaria tais métodos. Nesse caso, vocês teriam o
trabalho adicional de escrever esses novos métodos dos serventes.

Se isso estiver complicando muito a vida de vocês, tudo bem, façam
chamadas CORBA do lado servidor mesmo. Como alguns alunos já
mencionaram, o próprio stub acaba otimizando chamadas intra-VM,
direcionando-as diretamente ao servente, e portanto evitando o
overhead de marshalling e unmarshalling dos parâmetros.

Bom trabalho!


> O problema novamente é o classpath. O diretório onde estão as classes > compiladas do seu EP deve estar no classpath do seu cliente. Por > exemplo, se suas classes estão no diretório "/meu/ep/bin", você deve > adicionar esse diretório ao seu classpath: > > export CLASSPATH=os_jars_que_eu_mencionei_em_outro_email:/meu/ep/bin > > Dentro do diretório "/meu/ep/bin" deve haver um diretório "serverWS", > e dentro desse deve haver um arquivo RentalServiceWS.class. Você pode > usar um IDE, como o Eclipse, que te permite arrumar o classpath usando > uma interface gráfica. > > Se não funcionar ou se tiver qualquer outro problema, escreva novamente. > > Bom trabalho! > > > Alguma idéia do que possa ser (na msg anterior coloquei os xml caso > > precise consultar)? > > > > Daniel >


-- []s Daniel ___________________________________



--
Ivan Neto