Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
910 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  Les EJB

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Les EJB

n°2038157
man_u
Posté le 24-11-2010 à 17:10:23  profilanswer
 

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 :
  1. /*
  2. * To change this template, choose Tools | Templates
  3. * and open the template in the editor.
  4. */
  5. package CoursBean;
  6. import javax.ejb.Stateless;
  7. /**
  8. *
  9. * @author Moi
  10. */
  11. @Stateless
  12. public class CalcBean implements CalcBeanRemote
  13. {
  14.     public int add(int a , int b)
  15.     {
  16.         System.out.println("Addition" );
  17.         return a+b;
  18.     }
  19.     public int sub(int a , int b)
  20.     {
  21.         System.out.println("Soustraction" );
  22.         return a - b;
  23.     }
  24.    
  25.     // Add business logic below. (Right-click in editor and choose
  26.     // "Insert Code > Add Business Method" )
  27. }


 
L'interface de l'EJB:

Code :
  1. /*
  2. * To change this template, choose Tools | Templates
  3. * and open the template in the editor.
  4. */
  5. package CoursBean;
  6. import javax.ejb.Remote;
  7. /**
  8. *
  9. * @author Moi
  10. */
  11. @Remote //accéssible à partir d'un client distant
  12. public interface CalcBeanRemote {
  13.     public int add(int a , int b);
  14.     public int sub(int a , int b);
  15.    
  16. }


 
Et un client :

Code :
  1. package clienbean;
  2. import CoursBean.CalcBeanRemote;
  3. import javax.naming.InitialContext;
  4. import javax.naming.NamingException;
  5. public class Main {
  6.     public static void main(String[] args) throws NamingException {
  7.         InitialContext ic = new InitialContext();
  8.         CalcBeanRemote calcul = (CalcBeanRemote) ic.lookup("cours.CalcBeanRemote" );
  9.         System.out.println(calcul.add(5, 4));
  10.         System.out.println(calcul.sub(5, 4));
  11.     }
  12. }


 
quand j'exécute le client il me sort l'exception suivante:

Code :
  1. run:
  2. 24 nov. 2010 17:02:36 com.sun.enterprise.transaction.JavaEETransactionManagerSimplified initDelegates
  3. INFO: Using com.sun.enterprise.transaction.jts.JavaEETransactionManagerJTSDelegate as the delegate
  4. 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]
  5.         at com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:442)
  6.         at javax.naming.InitialContext.lookup(InitialContext.java:392)
  7.         at clienbean.Main.main(Main.java:12)
  8. Caused by: javax.naming.NameNotFoundException: cours.CalcBeanRemote not found
  9.         at com.sun.enterprise.naming.impl.TransientContext.doLookup(TransientContext.java:197)
  10.         at com.sun.enterprise.naming.impl.TransientContext.lookup(TransientContext.java:168)
  11.         at com.sun.enterprise.naming.impl.SerialContextProviderImpl.lookup(SerialContextProviderImpl.java:58)
  12.         at com.sun.enterprise.naming.impl.RemoteSerialContextProviderImpl.lookup(RemoteSerialContextProviderImpl.java:89)
  13.         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  14.         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
  15.         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  16.         at java.lang.reflect.Method.invoke(Method.java:597)
  17.         at com.sun.corba.ee.impl.presentation.rmi.ReflectiveTie.dispatchToMethod(ReflectiveTie.java:146)
  18.         at com.sun.corba.ee.impl.presentation.rmi.ReflectiveTie._invoke(ReflectiveTie.java:176)
  19.         at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatchToServant(CorbaServerRequestDispatcherImpl.java:682)
  20.         at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatch(CorbaServerRequestDispatcherImpl.java:216)
  21.         at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequestRequest(CorbaMessageMediatorImpl.java:1841)
  22.         at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:1695)
  23.         at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleInput(CorbaMessageMediatorImpl.java:1078)
  24.         at com.sun.corba.ee.impl.protocol.giopmsgheaders.RequestMessage_1_2.callback(RequestMessage_1_2.java:221)
  25.         at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:797)
  26.         at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.dispatch(CorbaMessageMediatorImpl.java:561)
  27.         at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.doWork(CorbaMessageMediatorImpl.java:2558)
  28.         at com.sun.corba.ee.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.performWork(ThreadPoolImpl.java:492)
  29.         at com.sun.corba.ee.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:528)
  30. Java Result: 1
  31. BUILD SUCCESSFUL (total time: 5 seconds)


 
Merci


Message édité par man_u le 24-11-2010 à 17:12:35
mood
Publicité
Posté le 24-11-2010 à 17:10:23  profilanswer
 

n°2038219
exhortae
Membre du Cartel des Médecins
Posté le 24-11-2010 à 23:12:23  profilanswer
 

Je doute que

 

CalcBeanRemote calcul = (CalcBeanRemote) ic.lookup("cours.CalcBeanRemote" );

 

soit le nom correct de ton ejb. Faudrait voir comment glassfish nomme par défaut les ejb dans l'annuaire jndi.

 

essaye juste  

 

CalcBeanRemote calcul = (CalcBeanRemote) ic.lookup("CalcBean" );


Message édité par exhortae le 24-11-2010 à 23:12:43

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  Les EJB

 

Sujets relatifs
Couplage faible/fort, RM, WS, EJB ...Eclipse, SVN, EJB (probleme)
EJB 3 : relation bidirectionnelle et suppressionsproblème EJB en remote
J2EE EJB3 JBOSS Ejb entityStruts + EJB
EJB - Choix pertinent pour une application Web?EJB CMP + session + servlet
EJB + eclipse : problème de contexteEAR, EJB et fichier de configuration
Plus de sujets relatifs à : Les EJB


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR