Erro em aplicativo usando EJB3

Assim:



import java.rmi.RemoteException;

import javax.ejb.EJB;
import javax.ejb.Stateless;


import com.service.Usuario;
import com.service.UsuarioService;

@Stateless(mappedName="UsuarioServiceBean/remote")
public class UsuarioServiceBean implements UsuarioService {

   @EJB
   private Usuario usuario;
   
   //Override
   public String getUserName() throws RemoteException {
      return usuario.getName();
   }
} 

Certo mais como o EJB UsuarioServiceBean vai saber qual a instancia do Objeto Usuario ele vai estar referenciando quano o meu cliente executar o metodo getUserName???

Não ficou claro para mim… Deve ser pq eu tambêm não conheco o spring, já que ele tambêm usa a injeção de dependencia…

retirado desse tutorial

http://docs.jboss.org/ejb3/app-server/tutorial/injection/injection.html

E muito obrigado Carneiro… você está ajudando de montão…

[/quote]

Nesse caso irá ser injetado uma instância de CalculatorBean.

Mas se você fizer:

@EJB
SeuObjeto

O servidor irá ficar encarregado de injetar uma instância de SeuObjeto.

É como se fosse isso:


SeuObjeto seuObjeto = new SeuObjeto();

Mas fazendo isso você estaria criando um forte acoplamento entre essas classes.

Ainda não ficou claro para mim qual instancia será carregada pelo servidor!!!

como o servidor vai ficar sabendo qual a instancia do MeuObjeto ele deve usar???

Leia a página 205 do ebook grátis Mastering Enterprise JavaBeans, no fórum de Ferramentas e Livros tem o link para baixar o livro.

Demora tanto assim para receber o e-mail de validação do site para baixar o ebook? ou eu fiz coisa errada???

Demora só um pouco, é quase que instantâneo, espera só mais um pouquinho. :wink:

Pelo que estou vendo, nos exemplos e na documentação, oque eu quero fazer não e tão simples assim…

Bem eu tenho um aplicativo java rodando J2SE puro, só que o aplicativo roda em 2 maquinas distintas.

O processamento só pode se feito em um das maquinas, e se por algum motivo a maquina que estiver processando desligar ou o aplicativo parar, a outra maquina vai ter que assumir.

Então pensei em usar ejb, mas ta osso. Não da para usar injeção de dependencia com as classes beans. Pois a instancia desses classes não estão ligadas ao servidor de aplicação. Para usar ejbs teria que mudar o meu sistema um pouco…

Usando apenas rmi eu fiz um prototipo que tinha dado certo, porem quando eu starto o JBOSS, o rmi não funciona mais.

Eu achei que com ejb eu poderia dar um new MeuEjb(MeuObjeto objeto). como se eu estivesse estive chamando uma classe de dentro da minha VM.