tenho 2 EJBS criados (X e Y) e quero chamar o metodo do EJB Y apartir do EJB X. Estou com a seguinte estrutura: BussinnesDelegate, Facade (Interface), Facade Bean, Interface, Bean. Como faço para comunicar os dois EJBS? Eu poderia instanciar o ServiceLocator na classe Bean X para comunicar com o EJB Y sem quebrar a estrutura J2EE?
Estão no mesmo AS? Se estiverem, use as interfaces locais.
[]s
C
chicoria
Também não entendi o quebrar! :lol:
Neste cenário que vc colocou o EJB X é o cliente do EJB Y.
As chamadas então serão tal como em qualquer outro cliente, porém, se estiver utilizando um service locator, verfique como está a implementaçao dele, ou seja, se não tem nenhum código de sincronização.
Dê uma olhada neste blueprint da Sun http://java.sun.com/blueprints/code/adventure/1.0/src/ , eles tem dois ServiceLocators, um para web e outro para utilizar nos EJBs.
O que você deve informar no ejb-jar.xml é a referência que EJB X faz ao EJB Y:
olha aí:
Os EJBS estão no mesmo Application Server (AS).
Além da configuração que você me passou do EJB-JAR há mais alguma a ser feita ?
Obrigado desde já!
Alguem mais pode me ajudar?
Até mais!
pcalcado
Fragoso,
provavelmente existe algum problema com os métodos chamados ou com o projeto de seu Delegate.
O delegate deve chamar um método remoto e esperar a resposta, ponto final. Você consegue chamar toda a sequência de métodos se seu cliente estiver dentro do mesmo container EJB? Crie um EJB de exemplo e chame o mesmo método que o Delegate chamaria.