EJB

supergirl -  
 douze12 -
Bonjour,
Je suis entrain de developper une application client desktop avec ejb mais toujours j'ai le meme erreur dans tous les interfaces:
voici le code:
package interfaces;
import entities.*;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.naming.*;
import javax.swing.ListModel;
import sessions.*;
import javax.naming.InitialContext;
import javax.ejb.EJB;

/**
*
* @author Administrateur
*/
@EJB
public class gestion_clients extends javax.swing.JFrame {

public static MySessionRemote objserveur;
Context ctx =new InitialContext();
/** Creates new form gestion_clients */
public gestion_clients() throws NamingException {
initComponents();

objserveur = (MySessionRemote) ctx.lookup(MySessionRemote.class.getName());
jList.setModel((ListModel)(Client) (objserveur.ListClient()));

}

voici l'erreur:
"interfaces.gestion_clients$7 run
GRAVE: null
javax.naming.NameNotFoundException: sessions.MySessionRemote not found
at com.sun.enterprise.naming.TransientContext.doLookup(TransientContext.java:216)
at com.sun.enterprise.naming.TransientContext.lookup(TransientContext.java:188)
at com.sun.enterprise.naming.SerialContextProviderImpl.lookup(SerialContextProviderImpl.java:74)
at com.sun.enterprise.naming.RemoteSerialContextProviderImpl.lookup(RemoteSerialContextProviderImpl.java:129)
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:154)
at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatchToServant(CorbaServerRequestDispatcherImpl.java:687)
at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatch(CorbaServerRequestDispatcherImpl.java:227)
at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequestRequest(CorbaMessageMediatorImpl.java:1846)
at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:1706)
at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleInput(CorbaMessageMediatorImpl.java:1088)
at com.sun.corba.ee.impl.protocol.giopmsgheaders.RequestMessage_1_2.callback(RequestMessage_1_2.java:223)
at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:806)
at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.dispatch(CorbaMessageMediatorImpl.java:563)
at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.doWork(CorbaMessageMediatorImpl.java:2567)
at com.sun.corba.ee.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:555)"

svp j'ai besoin d'aide
merci

1 réponse

douze12
 
Pour obtenir un accès distant sur une entity, tu dois effectuer le lookup sur le stateless qui implémente ton interface Remote et utiliser si besoin un mappedName pour l'identifier.

Exemple :

- ton interface Remote :
@Remote
public  interface MyEntityRemote{

//méthodes distantes

}


- ton stateless :
@Sateless(mappedName="myEntity")
public class MyEntity implements MyEntityRemote{
//méthodes
}


puis ton lookup :
objserveur = (MyEntityRemote) ctx.lookup("myEntity"); 
0