Bonjour,
J'ai fais un Stateless EJB très simple, qui permet d'additionner ou de soustraire deux entiers, mais je bloque au niveau du client qui dois utiliser cet EJB (je l'ai pris à partir d'un exemple que j'ai trouvé). il m'affiche une Exception lors de l'exécution et je comprend pas pourquoi ?
J'utilise NetBeans 6.9.1 avec GlassFish Server 3.
La classe de l'EJB :
Code :
- /*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
- */
- package CoursBean;
- import javax.ejb.Stateless;
- /**
- *
- * @author Moi
- */
- @Stateless
- public class CalcBean implements CalcBeanRemote
- {
- public int add(int a , int b)
- {
- System.out.println("Addition" );
- return a+b;
- }
- public int sub(int a , int b)
- {
- System.out.println("Soustraction" );
- return a - b;
- }
-
- // Add business logic below. (Right-click in editor and choose
- // "Insert Code > Add Business Method" )
- }
|
L'interface de l'EJB:
Code :
- /*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
- */
- package CoursBean;
- import javax.ejb.Remote;
- /**
- *
- * @author Moi
- */
- @Remote //accéssible à partir d'un client distant
- public interface CalcBeanRemote {
- public int add(int a , int b);
- public int sub(int a , int b);
-
- }
|
Et un client :
Code :
- package clienbean;
- import CoursBean.CalcBeanRemote;
- import javax.naming.InitialContext;
- import javax.naming.NamingException;
- public class Main {
- public static void main(String[] args) throws NamingException {
- InitialContext ic = new InitialContext();
- CalcBeanRemote calcul = (CalcBeanRemote) ic.lookup("cours.CalcBeanRemote" );
- System.out.println(calcul.add(5, 4));
- System.out.println(calcul.sub(5, 4));
- }
- }
|
quand j'exécute le client il me sort l'exception suivante:
Code :
- run:
- 24 nov. 2010 17:02:36 com.sun.enterprise.transaction.JavaEETransactionManagerSimplified initDelegates
- INFO: Using com.sun.enterprise.transaction.jts.JavaEETransactionManagerJTSDelegate as the delegate
- Exception in thread "main" javax.naming.NamingException: Lookup failed for 'cours.CalcBeanRemote' in SerialContext ,orb'sInitialHost=localhost,orb'sInitialPort=3700 [Root exception is javax.naming.NameNotFoundException: cours.CalcBeanRemote not found]
- at com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:442)
- at javax.naming.InitialContext.lookup(InitialContext.java:392)
- at clienbean.Main.main(Main.java:12)
- Caused by: javax.naming.NameNotFoundException: cours.CalcBeanRemote not found
- at com.sun.enterprise.naming.impl.TransientContext.doLookup(TransientContext.java:197)
- at com.sun.enterprise.naming.impl.TransientContext.lookup(TransientContext.java:168)
- at com.sun.enterprise.naming.impl.SerialContextProviderImpl.lookup(SerialContextProviderImpl.java:58)
- at com.sun.enterprise.naming.impl.RemoteSerialContextProviderImpl.lookup(RemoteSerialContextProviderImpl.java:89)
- 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.dispatchToMethod(ReflectiveTie.java:146)
- at com.sun.corba.ee.impl.presentation.rmi.ReflectiveTie._invoke(ReflectiveTie.java:176)
- at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatchToServant(CorbaServerRequestDispatcherImpl.java:682)
- at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatch(CorbaServerRequestDispatcherImpl.java:216)
- at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequestRequest(CorbaMessageMediatorImpl.java:1841)
- at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:1695)
- at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleInput(CorbaMessageMediatorImpl.java:1078)
- at com.sun.corba.ee.impl.protocol.giopmsgheaders.RequestMessage_1_2.callback(RequestMessage_1_2.java:221)
- at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:797)
- at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.dispatch(CorbaMessageMediatorImpl.java:561)
- at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.doWork(CorbaMessageMediatorImpl.java:2558)
- at com.sun.corba.ee.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.performWork(ThreadPoolImpl.java:492)
- at com.sun.corba.ee.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:528)
- Java Result: 1
- BUILD SUCCESSFUL (total time: 5 seconds)
|
Merci
Message édité par man_u le 24-11-2010 à 17:12:35