2 Replies Latest reply on Nov 28, 2007 4:31 AM by Sushil Siddesh

    javax.ejb.EJBException: Could not instantiate bean

    Bruno Beloff Newbie

      Hi

      I'm attempting to use my first MDB. My code and deployment descriptors are based on examples 6.6 to 6.9 in The JBoss 4 Application Server Guide. I'm running jboss 4.0.2 / MySQL.

      The problem: my sender sends the message okay (confirmed by querying MySQL) but the message driven bean causes:

      15:19:40,563 ERROR [LogInterceptor] TransactionRolledbackLocalException in method: public abstract void javax.jms.MessageListener.onMessage(javax.jms.Message), causedBy:
      javax.ejb.EJBException: Could not instantiate bean
       at org.jboss.ejb.plugins.AbstractInstancePool.get(AbstractInstancePool.java:180)
       at org.jboss.ejb.plugins.MessageDrivenInstanceInterceptor.invoke(MessageDrivenInstanceInterceptor.java:67)
       at org.jboss.ejb.plugins.CallValidationInterceptor.invoke(CallValidationInterceptor.java:48)
       at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:105)
       at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:335)
       at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:166)
       at org.jboss.ejb.plugins.RunAsSecurityInterceptor.invoke(RunAsSecurityInterceptor.java:94)
       at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:192)
       at org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFactoryFinderInterceptor.java:122)
       at org.jboss.ejb.MessageDrivenContainer.internalInvoke(MessageDrivenContainer.java:389)
       at org.jboss.ejb.Container.invoke(Container.java:873)
       at org.jboss.ejb.plugins.jms.JMSContainerInvoker.invoke(JMSContainerInvoker.java:1090)
       at org.jboss.ejb.plugins.jms.JMSContainerInvoker$MessageListenerImpl.onMessage(JMSContainerInvoker.java:1392)
       at org.jboss.jms.asf.StdServerSession.onMessage(StdServerSession.java:256)
       at org.jboss.mq.SpyMessageConsumer.sessionConsumerProcessMessage(SpyMessageConsumer.java:904)
       at org.jboss.mq.SpyMessageConsumer.addMessage(SpyMessageConsumer.java:160)
       at org.jboss.mq.SpySession.run(SpySession.java:333)
       at org.jboss.jms.asf.StdServerSession.run(StdServerSession.java:180)
       at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:743)
       at java.lang.Thread.run(Thread.java:613)
      15:19:40,572 ERROR [JMSContainerInvoker] Exception in JMSCI message listener
      javax.ejb.TransactionRolledbackLocalException: Could not instantiate bean; CausedByException is:
       Could not instantiate bean
      ...
      


      The jboss.xml entry (generated by XDoclet) looks like:

       <message-driven>
       <ejb-name>DispatchAgent</ejb-name>
       <destination-jndi-name>queue/B</destination-jndi-name>
       <resource-ref>
       <res-ref-name>jms/QCF</res-ref-name>
       <jndi-name>ConnectionFactory</jndi-name>
       </resource-ref>
       </message-driven>
      


      The ejb-jar.xml entry looks like:

       <message-driven >
       <description><![CDATA[Product Dispatcher]]></description>
       <ejb-name>DispatchAgent</ejb-name>
       <ejb-class>biz.classcalendar.core.agent.dispatch.DispatchAgent</ejb-class>
       <transaction-type>Container</transaction-type>
       <acknowledge-mode>AUTO_ACKNOWLEDGE</acknowledge-mode>
       <message-driven-destination>
       <destination-type>javax.jms.Queue</destination-type>
       </message-driven-destination>
       <resource-ref >
       <res-ref-name>jms/QCF</res-ref-name>
       <res-type>javax.jms.QueueConnectionFactory</res-type>
       <res-auth>Container</res-auth>
       </resource-ref>
       </message-driven>
      


      I'm stuck, because the log contains no debugging information that's useful to me, given my (lack of) knowledge of the jboss code.

      Is this a authentication issue?

      Please help!

      Bruno.