Modulo WEB e modulo EJB separados nao funcionam?[RESOLVIDO]
7 respostas
thimor
Ola,
Gostaria de saber se ao criar um modulo EJB separado e coloca-lo no glassfish e depois criar um modulo WEB e colocado no glassfish sem construir esses modulos em uma aplicacao enterprise, funciona?
Criei dois projetos no netbeans um foi um modulo ejb e o outro um projeto web com jsf. Ao utilizar a anotacao @EJB ele nao encontra os ejbs. Depois de muitas tentativas criei um projeto enterprise e com o mesmo codigo funcionou tudo certo.
So tem como trabalhar desta forma? Pois se for assim fica muito acoplado pois eu preciso de um modulo EJB(modelo e persistencia) para utilizar com dois outros modulos WEB com controles diferentes.
Não entendo de peculiaridades do GlashhFish, mas em relação ao contexto “criar um módulo separado de EJB, e um separado WEB, com comunicação entre eles”, funciona sim.
Na verdade não sei porque não funcionaria, você apenas deve: criar os EJB’s e disponibilizar no servidor.
Ir no projeto WEB e fazer lookup deles. Context ctx = new InitialContext(); …
Dê uma pesquisada melhor que você vai achar uns 10 mil sites mostrando um exemplo simples disso.
L
lilikadias
Thimor, aqui eu uso assim:
Isso funciona no Glassfish beleza… Tenta aí e vê se dá certo.
Ah, não esquece a anotação no EJB:
Abraços!
thimor
victor.godinho:
Não entendo de peculiaridades do GlashhFish, mas em relação ao contexto “criar um módulo separado de EJB, e um separado WEB, com comunicação entre eles”, funciona sim.
Na verdade não sei porque não funcionaria, você apenas deve: criar os EJB’s e disponibilizar no servidor.
Ir no projeto WEB e fazer lookup deles. Context ctx = new InitialContext(); …
Dê uma pesquisada melhor que você vai achar uns 10 mil sites mostrando um exemplo simples disso.
Exato. Concordo com voce e ja fiz isso muitas vezes. Porem utilizando injecao de dependencias nos projetos separados nao funcionou. Ao invez de utilizar o lookup eu tente utilizar o
@EJBSessionBeanLocalsessionBeanLocal
thimor
lilikadias:
Thimor, aqui eu uso assim:
Isso funciona no Glassfish beleza… Tenta aí e vê se dá certo.
Ah, não esquece a anotação no EJB:
Abraços!
Blz eu ja suspeitava q so iria funcionar usando lookup. Blz valeu ae
[]'s
Ate mais.
thimor
lilikadias:
Thimor, aqui eu uso assim:
Isso funciona no Glassfish beleza… Tenta aí e vê se dá certo.
Ah, não esquece a anotação no EJB:
Abraços!
Voce esta usando o servicelocator ou singleton para recuperar o objeto remoto correto? voce tem o exemplo do codigo completo? pois estou usando dessa forma dentro da propria classe de controle
privateTesteRemotegetRemoteBean(){try{// TODO code application logic herePropertiesprops=newProperties();props.setProperty("java.naming.factory.initial","com.sun.enterprise.naming.SerialInitContextFactory");props.setProperty("java.naming.factory.url.pkgs","com.sun.enterprise.naming");props.setProperty("java.naming.factory.state","com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl");props.put(Context.PROVIDER_URL,"iiop://localhost:2809");//props.put(Context.PROVIDER_URL, "localhost:1099");Contextctx=newInitialContext(props);TesteRemoteremote=(TesteRemote)ctx.lookup("ejb/TesteBean");returnremote;}catch(NamingExceptionex){Logger.getLogger(ControleDepto.class.getName()).log(Level.SEVERE,null,ex);}returnnull;}