Erro autenticação utilizando EJB

tenho meu Stateless autenticaUsuario:

[code] @Stateless
public class AutenticarUsuarioBean implements AutenticarUsuarioRemote, AutenticarUsuarioLocal {

@PersistenceContext(unitName="BalancedScoreCard-ejbPU")
private EntityManager manager;

/** Creates a new instance of AutenticarUsuarioBean */
public AutenticarUsuarioBean() {
}

public Usuarios autenticaUsuario(String login, char[] senha) {
        Query query = manager.createNamedQuery("findUsuarioByLoginSenha");
        query.setParameter("login", login)
             .setParameter("senha", senha);
        return (Usuarios)query.getSingleResult();
}       

}
[/code]

meu cliente para autenticação:

[code]
public class FormLogin extends javax.swing.JFrame {

@EJB
private static AutenticarUsuarioRemote autenticacao;

// ao clicar no botao Autenticar
private void btAutenticarActionPerformed(java.awt.event.ActionEvent evt) {
startAutenticaLogin(txtLogin.getText(), txtSenha.getPassword());
}

// metodo
private void startAutenticaLogin(String login, char[] senha) {

    try {
        Usuarios user = autenticacao.autenticaUsuario(login, senha);
        if (user == null)
            JOptionPane.showMessageDialog(null, "Usuário inválido !","Informação",JOptionPane.INFORMATION_MESSAGE);
        else
            JOptionPane.showMessageDialog(null, "Usuário autenticado !","Informação",JOptionPane.INFORMATION_MESSAGE);
    } catch (Exception ex) {
        JOptionPane.showMessageDialog(null, "Não foi possível realizar a autenticação !","Erro",JOptionPane.ERROR_MESSAGE);
        ex.printStackTrace();
    }          
          
}

}[/code]

e esta ocorrendo este erro:

[quote]javax.ejb.EJBException: nested exception is: java.rmi.ServerException: RemoteException occurred in server thread; nested exception is:
java.rmi.RemoteException
java.rmi.ServerException: RemoteException occurred in server thread; nested exception is:
java.rmi.RemoteException
at com.sun.corba.ee.impl.javax.rmi.CORBA.Util.mapSystemException(Util.java:188)
at com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.privateInvoke(StubInvocationHandlerImpl.java:172)
at com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.invoke(StubInvocationHandlerImpl.java:119)
at com.sun.corba.ee.impl.presentation.rmi.bcel.BCELStubBase.invoke(BCELStubBase.java:197)
at com.uemg.bsc.business.__AutenticarUsuarioRemote_Remote_DynamicStub.autenticaUsuario(__AutenticarUsuarioRemote_Remote_DynamicStub.java)
at com.uemg.bsc.business._AutenticarUsuarioRemote_Wrapper.autenticaUsuario(com.uemg.bsc.business._AutenticarUsuarioRemote_Wrapper.java)
at com.uemg.bsc.client.FormLogin.startAutenticaLogin(FormLogin.java:127)
at com.uemg.bsc.client.FormLogin.btAutenticarActionPerformed(FormLogin.java:110)
at com.uemg.bsc.client.FormLogin.access$000(FormLogin.java:18)
at com.uemg.bsc.client.FormLogin$1.actionPerformed(FormLogin.java:52)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.java:6038)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3260)
at java.awt.Component.processEvent(Component.java:5803)
at java.awt.Container.processEvent(Container.java:2058)
at java.awt.Component.dispatchEventImpl(Component.java:4410)
at java.awt.Container.dispatchEventImpl(Container.java:2116)
at java.awt.Component.dispatchEvent(Component.java:4240)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916)
at java.awt.Container.dispatchEventImpl(Container.java:2102)
at java.awt.Window.dispatchEventImpl(Window.java:2429)
at java.awt.Component.dispatchEvent(Component.java:4240)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
Caused by: java.rmi.RemoteException
at com.sun.enterprise.iiop.POAProtocolMgr.mapException(POAProtocolMgr.java:234)
at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1280)
at com.sun.ejb.containers.EJBObjectInvocationHandler.invoke(EJBObjectInvocationHandler.java:197)
at com.sun.ejb.containers.EJBObjectInvocationHandlerDelegate.invoke(EJBObjectInvocationHandlerDelegate.java:110)
at $Proxy77.autenticaUsuario(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.sun.corba.ee.impl.presentation.rmi.ReflectiveTie._invoke(ReflectiveTie.java:121)
at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatchToServant(CorbaServerRequestDispatcherImpl.java:650)
at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatch(CorbaServerRequestDispatcherImpl.java:193)
at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequestRequest(CorbaMessageMediatorImpl.java:1705)
at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:1565)
at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleInput(CorbaMessageMediatorImpl.java:947)
at com.sun.corba.ee.impl.protocol.giopmsgheaders.RequestMessage_1_2.callback(RequestMessage_1_2.java:178)
at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:717)
at com.sun.corba.ee.impl.transport.SocketOrChannelConnectionImpl.dispatch(SocketOrChannelConnectionImpl.java:473)
at com.sun.corba.ee.impl.transport.SocketOrChannelConnectionImpl.doWork(SocketOrChannelConnectionImpl.java:1270)
at com.sun.corba.ee.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:479)
javax.ejb.EJBException: nested exception is: java.rmi.ServerException: RemoteException occurred in server thread; nested exception is:
java.rmi.RemoteException
at com.uemg.bsc.business._AutenticarUsuarioRemote_Wrapper.autenticaUsuario(com.uemg.bsc.business._AutenticarUsuarioRemote_Wrapper.java)
at com.uemg.bsc.client.FormLogin.startAutenticaLogin(FormLogin.java:127)
at com.uemg.bsc.client.FormLogin.btAutenticarActionPerformed(FormLogin.java:110)
at com.uemg.bsc.client.FormLogin.access$000(FormLogin.java:18)
at com.uemg.bsc.client.FormLogin$1.actionPerformed(FormLogin.java:52)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.java:6038)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3260)
at java.awt.Component.processEvent(Component.java:5803)
at java.awt.Container.processEvent(Container.java:2058)
at java.awt.Component.dispatchEventImpl(Component.java:4410)
at java.awt.Container.dispatchEventImpl(Container.java:2116)
at java.awt.Component.dispatchEvent(Component.java:4240)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916)
at java.awt.Container.dispatchEventImpl(Container.java:2102)
at java.awt.Window.dispatchEventImpl(Window.java:2429)
at java.awt.Component.dispatchEvent(Component.java:4240)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
[/quote]

Alguem tem idéia do que possa estar errado ?

desde ja agradeço.

O que você mostrou é o stack trace da IDE. Quando quiser entender qual a causa de um erro, é mais eficaz procurar no log do servidor.

Mas pelas suas classes e pelo tipo de erro, o problema deve estar com o seu componente AutenticarUsuarioRemote autenticação. Só seria possível injetar a referência à implementação de AutenticarUsuarioRemote se autenticacao fosse utilizada no método main.

Acontece que você não tem um container “de verdade” para injetar dependências num application client. Nos demais lugares do cliente desktop - longe da main - é preciso usar o método lookup da API JNDI.

Felizmente isso está bem mais fácil do que antes. Basta utilizar: Context context = new InitialContext(); AutenticarUsuarioRemote autenticar = (AutenticarUsuarioRemote) context.lookup(AutenticarUsuarioRemote.class.getName());

Não se esqueça de adicionar os .JAR javaee.jar e appserv-rt.jar no classpath (no caso de um cliente stand alone). Esse último contém o arquivo jndi.properites, cuja configuração é específica de cada “fabricante” do application server. E é por isso que você pode instanciar InitialContext sem argumentos no construtor.

Caused by: Exception [TOPLINK-8006] (Oracle TopLink Essentials - 2006.8 (Build 060830)): oracle.toplink.essentials.exceptions.EJBQLException
Exception Description: A problem was encountered resolving the class name - The descriptor for [usuarios] was not found.

eu inclui a classe modelo Usuarios no persistence.xml, mas mesmo assim esta com este erro acima…

quero acessar fora de uma classe que contenha o metodo MAIN.

Veja se te ajuda


http://www.guj.com.br/posts/list/56581.java

Ué, é a mesma coisa, o cliente pode ser o que vc quizer, Servlet, JSP; não importa, a maneira é a mesma.