8 Replies Latest reply on Mar 4, 2008 1:11 AM by jaikiran

    MDB Deployment Exception (HELP!)

    rledousa

      Hi-

      I posted this in the EJB3 forum a few days back and haven't had a reply, so I thought I'd try this forum. I have no clue what's going on and I could really, really use a helping hand.

      ----
      I've just created my first MDB in JBoss 5.0 Beta 4 using Java 1.5. When I start Jboss (or deploy the project), I see the following error:

      12:14:37,375 INFO [EJBContainer] STARTED EJB: cmpe275.ejb.SensorDataMDB ejbName: SensorDataMDB
      12:14:37,406 ERROR [AbstractKernelController] Error installing to Start: name=jboss.j2ee:jar=cmpe275-prj3-ejb.jar,name=SensorDataMDB,service=EJB3 state=Create
      org.jboss.deployment.DeploymentException: Unable to create activation spec ra=jboss.jca:service=RARDeployment,name='jms-ra.rar' messaging-type=javax.jms.MessageListener properties={destination=org.jboss.metadata.ejb.spec.ActivationConfigPropertyMetaData@aac6440e{destination}, destinationType=org.jboss.metadata.ejb.spec.ActivationConfigPropertyMetaData@96f19068{destinationType}, subscriptionDurability=org.jboss.metadata.ejb.spec.ActivationConfigPropertyMetaData@2263d106{subscriptionDurability}}
      at org.jboss.deployment.DeploymentException.rethrowAsDeploymentException(DeploymentException.java:52)
      at org.jboss.ejb3.mdb.inflow.JBossMessageEndpointFactory.createActivationSpec(JBossMessageEndpointFactory.java:299)
      at org.jboss.ejb3.mdb.inflow.JBossMessageEndpointFactory.start(JBossMessageEndpointFactory.java:192)
      at org.jboss.ejb3.mdb.MessagingContainer.startProxies(MessagingContainer.java:187)
      at org.jboss.ejb3.mdb.MessagingContainer.start(MessagingContainer.java:151)
      at org.jboss.ejb3.mdb.MDB.start(MDB.java:123)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.lang.reflect.Method.invoke(Method.java:615)
      at org.jboss.reflect.plugins.introspection.ReflectionUtils.invoke(ReflectionUtils.java:56)
      at org.jboss.reflect.plugins.introspection.ReflectMethodInfoImpl.invoke(ReflectMethodInfoImpl.java:110)
      at org.jboss.joinpoint.plugins.BasicMethodJoinPoint.dispatch(BasicMethodJoinPoint.java:66)
      at org.jboss.kernel.plugins.dependency.KernelControllerContextAction$JoinpointDispatchWrapper.execute(KernelControllerContextAction.java:214)
      at org.jboss.kernel.plugins.dependency.ExecutionWrapper.execute(ExecutionWrapper.java:45)
      at org.jboss.kernel.plugins.dependency.KernelControllerContextAction.dispatchExecutionWrapper(KernelControllerContextAction.java:108)
      at org.jboss.kernel.plugins.dependency.KernelControllerContextAction.dispatchJoinPoint(KernelControllerContextAction.java:69)
      at org.jboss.kernel.plugins.dependency.LifecycleAction.installActionInternal(LifecycleAction.java:221)
      at org.jboss.kernel.plugins.dependency.KernelControllerContextAction.installAction(KernelControllerContextAction.java:135)
      at org.jboss.kernel.plugins.dependency.KernelControllerContextAction.installAction(KernelControllerContextAction.java:46)
      at org.jboss.dependency.plugins.action.SimpleControllerContextAction.simpleInstallAction(SimpleControllerContextAction.java:62)
      at org.jboss.dependency.plugins.action.AccessControllerContextAction.install(AccessControllerContextAction.java:71)
      at org.jboss.dependency.plugins.AbstractControllerContextActions.install(AbstractControllerContextActions.java:51)
      at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:327)
      at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1309)
      at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:734)
      at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:862)
      at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:784)
      at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:622)
      at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:411)
      at org.jboss.system.ServiceController.doChange(ServiceController.java:659)
      at org.jboss.system.ServiceController.start(ServiceController.java:431)
      at org.jboss.system.deployers.ServiceDeployer.start(ServiceDeployer.java:150)
      at org.jboss.system.deployers.ServiceDeployer.deploy(ServiceDeployer.java:108)
      at org.jboss.system.deployers.ServiceDeployer.deploy(ServiceDeployer.java:46)
      at org.jboss.deployers.spi.deployer.helpers.AbstractSimpleRealDeployer.internalDeploy(AbstractSimpleRealDeployer.java:65)
      at org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer.deploy(AbstractRealDeployer.java:50)
      at org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:169)
      at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:853)
      at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:874)
      at org.jboss.deployers.plugins.deployers.DeployersImpl.install(DeployersImpl.java:794)
      at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:327)
      at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1309)
      at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:734)
      at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:862)
      at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:784)
      at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:622)
      at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:411)
      at org.jboss.deployers.plugins.deployers.DeployersImpl.process(DeployersImpl.java:498)
      at org.jboss.deployers.plugins.main.MainDeployerImpl.process(MainDeployerImpl.java:506)
      at org.jboss.system.server.profileservice.ProfileServiceBootstrap.loadProfile(ProfileServiceBootstrap.java:246)
      at org.jboss.system.server.profileservice.ProfileServiceBootstrap.start(ProfileServiceBootstrap.java:131)
      at org.jboss.bootstrap.AbstractServerImpl.start(AbstractServerImpl.java:408)
      at org.jboss.Main.boot(Main.java:208)
      at org.jboss.Main$1.run(Main.java:534)
      at java.lang.Thread.run(Thread.java:803)
      Caused by:
      javax.management.InstanceNotFoundException: jboss.jca:service=RARDeployment,name='jms-ra.rar' is not registered.
      at org.jboss.mx.server.registry.BasicMBeanRegistry.get(BasicMBeanRegistry.java:529)
      at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:662)
      at org.jboss.ejb3.JmxClientKernelAbstraction.invoke(JmxClientKernelAbstraction.java:44)
      at org.jboss.ejb3.mdb.inflow.JBossMessageEndpointFactory.createActivationSpec(JBossMessageEndpointFactory.java:294)
      ... 54 more


      Here's the class definition:

      import javax.jms.Message;
      import javax.jms.MessageListener;
      import org.jboss.logging.Logger;
      import javax.ejb.MessageDriven;
      import javax.ejb.ActivationConfigProperty;
      
      @MessageDriven(activationConfig =
      {
      @ActivationConfigProperty(propertyName="destinationType",
      propertyValue="javax.jms.Topic"),
      @ActivationConfigProperty(propertyName="destination",
      propertyValue="topic/SensorData")
      })
      
      // topic is under java:comp/env/
      
      public class SensorDataMDB implements MessageListener {
      private static Logger logger = Logger.getLogger(SensorDataMDB.class);
      
      public SensorDataMDB() {
      
      }
      
      public void onMessage(Message arg0) {
      // TODO Auto-generated method stub
      
      }
      
      }


      Any help would be greatly appreciated!!

        • 1. Re: MDB Deployment Exception (HELP!)
          jaikiran

          Looks like the order in which your application and the topic is being deployed is incorrect. I tried this on my local 5.0 Beta4 setup and i see a similar exception. I have a similar MDB in an ear named EJB3Persistence.ear (which is placed in the deploy folder). I have my topic configured in destinations-service.xml which is inside deploy\messaging folder. When JBoss starts up it first deploys EJB3Persistence.ear and then deploys the topic in the messaging folder (because of the names of these files). I then renamed my ear to ZEJB3Persistence.ear so that it gets deployed after the topic in the messaging folder. Restarted the server. Everything went off fine - topic deployed and MDB deployed too. Maybe you too are seeing the same issue.

          • 2. Re: MDB Deployment Exception (HELP!)
            peterj

            I also have the experienced same problem. My solution is to bring the server up and then deploy the mdb. Hopefully this will be fixed by CR1.

            • 3. Re: MDB Deployment Exception (HELP!)
              rledousa

              thanks for the replies all.! I'll give the naming order a try.

              A related question -- I've only been able to find examples for queue definition for jboss 4.

              Is something like this still correct for jboss5 and should it go in a -service.xml file in \deploy?

              <?xml version="1.0" encoding="UTF-8"?>
              
              <server>
               <!--My queue, named: testQueue-->
               <mbean code="org.jboss.mq.server.jmx.Queue"
               name="jboss.mq.destination:service=Queue,name=testQueue">
               <depends optional-attribute-name="DestinationManager">jboss.mq:service=DestinationManager</depends>
               </mbean>
               </server>


              • 4. Re: MDB Deployment Exception (HELP!)
                peterj

                jbossas 5.0 beta4 uses JBoss Messaging 1.4.1.beta1. If you download the source for that version of JBoss Messaging, and look in the src/etc/server/default/deploy directory you will see an example destinations-service.xml file. It would be nice if that file was provided as part of jbossas, perhaps in the docs/example/messaging directory. (hint, hint)

                Your queue definition would look like:

                <mbean code="org.jboss.jms.server.destination.QueueService"
                 name="jboss.messaging.destination:service=Queue,name=testQueue"
                 xmbean-dd="xmdesc/Queue-xmbean.xml">
                 <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
                 <depends>jboss.messaging:service=PostOffice</depends>
                 <attribute name="SecurityConfig">
                 <security>
                 <role name="guest" read="true" write="true"/>
                 </security>
                 </attribute>
                 </mbean>


                • 5. Re: MDB Deployment Exception (HELP!)
                  rledousa


                  changing the name of the ejb jar to Z..jar worked! Thanks for the idea and thanks for the clarification on defining queues.

                  Anyone know if this has been filed as a bug and/or is there anything I can do to help get it fixed?

                  roy

                  • 6. Re: MDB Deployment Exception (HELP!)
                    jaikiran

                    For configuring a queue/topic in JBoss 5, i looked up the JBoss Messaging document at http://labs.jboss.com/file-access/default/members/jbossmessaging/freezone/docs/userguide-1.4.1.Beta1/html/index.html

                    Section 6.7 (Configuring Destinations) has some examples. But yes, it would definitely be nice if there were some example files shipped as part of JBossAS.

                    • 7. Re: MDB Deployment Exception (HELP!)
                      jaikiran

                       

                      "rledousa" wrote:

                      Anyone know if this has been filed as a bug and/or is there anything I can do to help get it fixed?

                      roy


                      I searched the JIRA and could not find a related issue. You can report this one in the JIRA which is available at http://jira.jboss.com/jira/browse/JBAS



                      • 8. Re: MDB Deployment Exception (HELP!)
                        jaikiran