Eduardo, Se voc� der uma boa olhada no artigo que o Paulo mandou: http://developer.java.sun.com/developer/restricted/patterns/ServiceLocator.h tml
vai perceber que n�o existe tal coisa do tipo GenericoServiceHome.class, e na chamada do m�todo narrow � usada a pr�pria classe para a qual queremos obter a refer�ncia. Quando h� a necessidade de mais um tipo de servi�o � preciso atualizar o arquivo do ServiceLocator e recompil�-lo. Alem disso, ao fazer uso desse service locator deve-se fazer um cast para a classe correta visto que o tipo de retorno � simplesmente EJBHome. A principal diferen�a dessa estrat�gia para a que � usada no PetStore: http://java.sun.com/blueprints/code/jps11/src/com/sun/j2ee/blueprints/petsto re/util/EJBUtil.java.html � que nesse caso existe um m�todo getXXXHome para cada servi�o enquanto que no outro existe apenas um m�todo getHome (mais o cast associado). Note que em ambos os exemplos, como est� descrito no artigo, poderia ser mantida uma refer�ncia para o InitialContext para que n�o fosse necess�rio criar um a cada chamada ao getHome ou getXXXXHome... � claro tamb�m que todo esse mecanismo poderia ser automatizado se o seu Class.forName estivesse funcionando, pois ai poder�amos ler os nomes e as classes dos objetos de um arquivo de configura��o ou de um "environment entry". Constantino. -----Original Message----- From: Constantino Jose R. Cronemberger Sent: Friday, February 08, 2002 5:31 PM To: '[EMAIL PROTECTED]' Subject: RE: EJB - narrow din�mico Eduardo, A resposta exata para o seu problema mas tenha algumas pistas. Eu fa�o id�ia do que voc� quer fazer: voc� esta cansado de chamar esse m�todo e que fazer uma chamada mais simples para n�o ter que ficar escrevendo aquilo tudo. Ok, encontrei o seguinte exemplo da Sun e me parece que a id�ia deles foi colocar todas aquelas chamadas numa �nica classe de utilidades, o que n�o resolve o seu problema diretamente pois voc� ainda tem que criar esse arquivo, mas pelo menos voc� digita apenas uma chamada para cada classe. (http://java.sun.com/blueprints/code/jps11/src/com/sun/j2ee/blueprints/petst ore/util/EJBUtil.java.html) O esquema de se ter um GenericoServiceHome eu n�o acho que v� dar certo visto que voc� pode dar o narrow para essa classe, mas voc� sabe o que acontece se voc� posteriormente der um cast dessa classe para uma outra? Ser� que funciona? N�o sei exatamente como funciona esse narrow, por isso n�o posso afirmar, mas � uma suspeita. Finalmente como voc� esta querendo chamar o Class.forName eu imagino que voc� tenha uma tabela mapeando os servi�os para os respectivos nomes das classes. Por que ent�o em vez de colocar o nome, voc� n�o coloca a pr�pria classe. Tente rodar um teste com esse forName fora do servidor para ver se n�o � o caso do servidor estar substituindo o ClassLoader... Constantino. > -----Original Message----- > From: Paulo Ferreira de Moura Junior [SMTP:[EMAIL PROTECTED]] > Sent: Friday, February 15, 2002 1:59 PM > To: [EMAIL PROTECTED] > Subject: Re: [enterprise-list] EJB - narrow din�mico > > ----- Original Message ----- > From: Eduardo Fabricio Elias <mailto:[EMAIL PROTECTED]> > Subject: [enterprise-list] EJB - narrow din�mico > > > > Gente, > > Estou precisando fazer que o c�digo abaixo fique mais din�mico: > EntidadeServiceHome entidadeServiceHome = (EntidadeServiceHome) > PortableRemoteObject.narrow( > > ServiceLocator.getInstance().getService("EntidadeService"), > EntidadeServiceHome.class); > > Gostaria de fazer algo do tipo: > GenericoServiceHome serviceHome = (GenericoServiceHome) > PortableRemoteObject.narrow( > > ServiceLocator.getInstance().getService(service), > GenericoServiceHome.class); > > Minha id�ia � utilizar um m�todo gen�rico para fazer narrow de todos > meus EJB�s... > > Meu primeiro problema � com o segundo parametro do narrow, pois > tentei utilizar Class.forName, mas ele n�o encontra a classe, n�o sei que > porque est� em outro JAR, mas acho que deveria encontrar... > > Oi, > > para resolver isso, olhe a descri��o do pattern do Service Locator contida > no livro Core J2EE Patterns: > > http://www.amazon.com/exec/obidos/ASIN/0130648841/qid%3D1013785886/ref%3Ds > r%5F11%5F0%5F1/103-5898549-9894241 > <http://www.amazon.com/exec/obidos/ASIN/0130648841/qid=1013785886/ref=sr_1 > 1_0_1/103-5898549-9894241> > > Se voc� (ainda) n�o tiver o livro, compre. :^) Enquanto ele n�o chega, > olhe no seguinte endere�o: > > <http://developer.java.sun.com/developer/restricted/patterns/ServiceLocato > r.html> > > E aqui vai uma melhoria feita na implementa��o original: > > <http://swjscmail1.java.sun.com/cgi-bin/wa?A2=ind0107&L=j2eepatterns-inter > est&P=R4173> > > At� +. > > -------------------------------------- > > Paulo Ferreira de Moura Junior > e-mail: [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]> > --------------------------------------------------------------------- Para cancelar a subscri��o, envie mensagem para: [EMAIL PROTECTED] Para comandos adicionais, envie mensagem para: [EMAIL PROTECTED]
