IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java EE Discussion :

Erreur lors de la creation de l'ejb [EJB2]


Sujet :

Java EE

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations forums :
    Inscription : Avril 2008
    Messages : 9
    Points : 7
    Points
    7
    Par défaut Erreur lors de la creation de l'ejb
    Bonjour,

    J'ai crée un ejb EjbTestRunnerBean (type session stateless) avec deux interfaces: EjbTestRunner (remote) et EjbTestRunnerHome (home) ainsi qu'un simple client EjbTestRunnerClient. Au niveau du client j'ai mis le code suivant (au premier lieu dans main() mais après avoir le probleme que je vais l'expliqué je l'ai mis dans le constructeur de la classe client et pourtant le problem persiste):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    initialize();
    myBean = create();
    avec private EjbTestRunner myBean = null;

    initialize():
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    try
        {
          Context context = getInitialContext();
          Object ref = context.lookup("EjbTestRunner");
          ejbTestRunnerHome = (EjbTestRunnerHome) PortableRemoteObject.narrow(ref, EjbTestRunnerHome.class);
        }
        catch (Exception e)
        {
          System.out.println(e.getMessage());
        }
    getInitialContext():
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Hashtable environment = new Hashtable();
        environment.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");
        environment.put(Context.URL_PKG_PREFIXES, "org.jboss.naming:org.jnp.interfaces");
        environment.put(Context.PROVIDER_URL, "jnp://" + myIP + ":1099");
     
        return new InitialContext(environment);
    create():
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    try
        {
          ejbTestRunner = (EjbTestRunner) ejbTestRunnerHome.create();
        }
        catch (Exception e)
        {
          if (logging)
          {
            log("Failed : create()");
          }
          System.out.println(e.getMessage());
        }
    Le deploiment se fait normalement et je vois la trace dans le log de jboss, mais lors de l'exécution du client je reçois:
    Failed : create()
    javax.ejb.EJBException: Could not instantiate bean

    Qui peut m'aider SVP?

  2. #2
    Membre VIP Avatar de kalysto
    Profil pro
    Développeur
    Inscrit en
    Mars 2003
    Messages
    442
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Mars 2003
    Messages : 442
    Points : 568
    Points
    568
    Par défaut
    Je ne connais pas JBoss, mais ce dont je suis sur, c'est qu'une stacktrace complete sera nécessaire pour celui qui pourra répondre

  3. #3
    Rédacteur
    Avatar de longbeach
    Profil pro
    Architecte de système d’information
    Inscrit en
    Avril 2003
    Messages
    943
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d’information

    Informations forums :
    Inscription : Avril 2003
    Messages : 943
    Points : 2 370
    Points
    2 370
    Par défaut
    Montres-nous également les codes de EjbTestRunnerBean et les 2 interfaces.

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations forums :
    Inscription : Avril 2008
    Messages : 9
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par kalysto Voir le message
    Je ne connais pas JBoss, mais ce dont je suis sur, c'est qu'une stacktrace complete sera nécessaire pour celui qui pourra répondre
    Trace coté client:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    -- Initializing bean access.
    -- Succeeded initializing bean access through Home interface.
    -- Execution time: 20918 ms.
    -- Calling create()
    -- Failed : create()
    EJBException:; nested exception is: 
    	javax.ejb.EJBException: Could not instantiate bean
    -- Return value from create(): null.
    java.lang.NullPointerException
    	at com.alu.cnm.csa.ngsec.server.pl.junit.EjbTestRunnerClient.testBean(EjbTestRunnerClient.java:39)
    	at com.alu.cnm.csa.ngsec.server.pl.junit.EjbTestRunnerClient.main(EjbTestRunnerClient.java:174)
    Trace coté serveur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    11:29:39,839 ERROR [LogInterceptor] EJBException in method: public abstract com.alu.cnm.csa.ngsec.server.pl.junit.EjbTestRunner com.alu.cnm.csa.ngsec.server.pl.junit.EjbTestRunnerHome.create() throws java.rmi.RemoteException,javax.ejb.CreateException, causedBy:
    java.lang.InstantiationException
    	at sun.reflect.InstantiationExceptionConstructorAccessorImpl.newInstance(InstantiationExceptionConstructorAccessorImpl.java:30)
    	at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
    	at java.lang.Class.newInstance0(Class.java:355)
    	at java.lang.Class.newInstance(Class.java:308)
    	at org.jboss.ejb.Container.createBeanClassInstance(Container.java:630)
    	at org.jboss.ejb.plugins.AbstractInstancePool.get(AbstractInstancePool.java:183)
    	at org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor.invokeHome(StatelessSessionInstanceInterceptor.java:95)
    	at org.jboss.ejb.plugins.CallValidationInterceptor.invokeHome(CallValidationInterceptor.java:56)
    	at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:125)
    	at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:350)
    	at org.jboss.ejb.plugins.TxInterceptorCMT.invokeHome(TxInterceptorCMT.java:161)
    	at org.jboss.ejb.plugins.SecurityInterceptor.invokeHome(SecurityInterceptor.java:145)
    	at org.jboss.ejb.plugins.LogInterceptor.invokeHome(LogInterceptor.java:132)
    	at org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invokeHome(ProxyFactoryFinderInterceptor.java:107)
    	at org.jboss.ejb.SessionContainer.internalInvokeHome(SessionContainer.java:637)
    	at org.jboss.ejb.Container.invoke(Container.java:981)
    	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 org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
    	at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
    	at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
    	at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
    	at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
    	at org.jboss.invocation.jrmp.server.JRMPInvoker$MBeanServerAction.invoke(JRMPInvoker.java:818)
    	at org.jboss.invocation.jrmp.server.JRMPInvoker.invoke(JRMPInvoker.java:419)
    	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 sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:305)
    	at sun.rmi.transport.Transport$1.run(Transport.java:159)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at sun.rmi.transport.Transport.serviceCall(Transport.java:155)
    	at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:535)
    	at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790)
    	at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649)
    	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    	at java.lang.Thread.run(Thread.java:619)
    Citation Envoyé par longbeach Voir le message
    Montres-nous également les codes de EjbTestRunnerBean et les 2 interfaces.
    EjbTestRunner
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    package com.alu.cnm.csa.ngsec.server.pl.junit;
     
    import java.util.Map;
     
    import javax.ejb.EJBObject;
     
    public interface EjbTestRunner extends EJBObject
    {
      public TestResultCollection executeTest(String testClass, Map<String, Object> params, boolean tearDown);
    }
    EjbTestRunnerHome
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    package com.alu.cnm.csa.ngsec.server.pl.junit;
     
    import java.rmi.RemoteException;
     
    import javax.ejb.CreateException;
    import javax.ejb.EJBHome;
     
    public interface EjbTestRunnerHome extends EJBHome
    {
      public EjbTestRunner create() throws RemoteException, CreateException;
    }
    EjbTestRunnerBean
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    package com.alu.cnm.csa.ngsec.server.pl.junit;
     
    import java.rmi.RemoteException;
    import java.util.Map;
     
    import javax.ejb.CreateException;
    import javax.ejb.EJBException;
    import javax.ejb.SessionBean;
    import javax.ejb.SessionContext;
     
    /**
     * Session Bean implementation class EjbTestRunnerBean
     */
     
    public abstract class EjbTestRunnerBean implements SessionBean, EjbTestRunner
    {
     
      /**
       * 
       */
      private static final long serialVersionUID = 1L;
     
      public TestResultCollection executeTest(String testClass, Map<String, Object> params, boolean tearDown)
      {
        TestService service = new TestService();
        TestResultCollection results = service.executeTest(testClass, params);
     
        if (tearDown)
        {
          throw new TearDownException(results);
        }
        return results;
      }
     
      /* (non-Javadoc)
       * @see javax.ejb.SessionBean#ejbActivate()
       */
      @Override
      public void ejbActivate() throws EJBException, RemoteException
      {
        // TODO Auto-generated method stub
     
      }
     
      /* (non-Javadoc)
       * @see javax.ejb.SessionBean#ejbPassivate()
       */
      @Override
      public void ejbPassivate() throws EJBException, RemoteException
      {
        // TODO Auto-generated method stub
     
      }
     
      /* (non-Javadoc)
       * @see javax.ejb.SessionBean#ejbCreate()
       */
     
      public void ejbCreate() throws RemoteException, CreateException
      {
        // TODO Auto-generated method stub
     
      }
     
      /* (non-Javadoc)
       * @see javax.ejb.SessionBean#ejbRemove()
       */
      @Override
      public void ejbRemove() throws EJBException, RemoteException
      {
        // TODO Auto-generated method stub
     
      }
     
      /* (non-Javadoc)
       * @see javax.ejb.SessionBean#setSessionContext(javax.ejb.SessionContext)
       */
      @Override
      public void setSessionContext(SessionContext arg0) throws EJBException, RemoteException
      {
        // TODO Auto-generated method stub
     
      }
    }

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations forums :
    Inscription : Avril 2008
    Messages : 9
    Points : 7
    Points
    7
    Par défaut
    Salam,

    J'ai trouvé la solution: la classe EjbTestRunnerBean ne doit pas être abstraite (abstract)!
    ça marche mnt

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 20/05/2008, 19h36
  2. Erreur lors de la creation d'une base de donnees
    Par redabadache3 dans le forum Administration
    Réponses: 1
    Dernier message: 20/01/2008, 19h28
  3. Erreur lors de la creation de graphique RS
    Par caballero dans le forum MS SQL Server
    Réponses: 0
    Dernier message: 27/07/2007, 10h58
  4. Erreur lors de la creation d'un db_link qui se connect comme SYS
    Par squallJ dans le forum Administration
    Réponses: 2
    Dernier message: 25/04/2007, 15h32
  5. [SAX] erreur lors de la creation du XMLReader
    Par vir dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 19/08/2004, 01h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo