[jboss-jira] [JBoss JIRA] Updated: (JBAS-5272) EAR containing a MDB(listening to a topic) fails to deploy because of the order of deployment

jaikiran pai (JIRA) jira-events at lists.jboss.org
Tue Mar 4 01:52:57 EST 2008


     [ http://jira.jboss.com/jira/browse/JBAS-5272?page=all ]

jaikiran pai updated JBAS-5272:
-------------------------------

    Component/s: Deployment services

> EAR containing a MDB(listening to a topic) fails to deploy because of the order of deployment
> ---------------------------------------------------------------------------------------------
>
>                 Key: JBAS-5272
>                 URL: http://jira.jboss.com/jira/browse/JBAS-5272
>             Project: JBoss Application Server
>          Issue Type: Bug
>      Security Level: Public(Everyone can see) 
>          Components: Deployment services
>    Affects Versions: JBossAS-5.0.0.Beta4
>         Environment: JBoss-5.0 Beta 4, Sun Java 1.5, Windows 2003 Server 
>            Reporter: jaikiran pai
>
> A simple EAR containing an MDB which listens on a topic fails to deploy. The MDB is as follows:
> package org.myapp.ejb.impl;
> import javax.ejb.ActivationConfigProperty;
> import javax.ejb.MessageDriven;
> import javax.jms.Message;
> import javax.jms.MessageListener;
> import org.apache.log4j.Logger;
> @MessageDriven(activationConfig =
> {
> @ActivationConfigProperty(propertyName="destinationType",
> propertyValue="javax.jms.Topic"),
> @ActivationConfigProperty(propertyName="destination",
> propertyValue="topic/testTopic")
> })
> public class MyMDB implements MessageListener {
> 	private static Logger logger = Logger.getLogger(MyMDB.class);
> 	/**
> 	 * Default constructor
> 	 *
> 	 */
> 	public MyMDB() {
> 	}
> 	/**
> 	 *  
> 	 */
> 	public void onMessage(Message arg0) {
> 		System.out.println("onMessage of MyMDB called");
> 		logger.info("onMessage of MyMDB called");
> 	}
> }
> The sample EAR that i used for testing was named EJB3Persistence.ear and was placed in the deploy folder of JBoss. The topic was configured in destinations-service.xml which is inside deploy\messaging folder. Started JBoss. While deploying the application, JBoss threw this exception:
> 2008-03-04 11:29:51,416 INFO  [org.jboss.ejb3.EJBContainer] STARTED EJB: org.myapp.ejb.impl.MyMDB ejbName: MyMDB
> 2008-03-04 11:29:51,416 DEBUG [org.jboss.ejb3.mdb.MessagingContainer] Initializing
> 2008-03-04 11:29:51,463 DEBUG [org.jboss.ejb.txtimer.EJBTimerServiceImpl] createTimerService: org.jboss.ejb.txtimer.TimerServiceImpl at 1099c38
> 2008-03-04 11:29:51,510 ERROR [org.jboss.kernel.plugins.dependency.AbstractKernelController] Error installing to Start: name=jboss.j2ee:ear=EJB3Persistence.ear,jar=myapp_ejb3.jar,name=MyMDB,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 at aac6440e{destination}, destinationType=org.jboss.metadata.ejb.spec.ActivationConfigPropertyMetaData at 96f19068{destinationType}}
> 	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:39)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 	at java.lang.reflect.Method.invoke(Method.java:585)
> 	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:595)
> 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
> This appears to be because the topic defined in the deploy\messaging folder is created at a later stage during deployment:
> 2008-03-04 11:30:08,479 DEBUG [org.jboss.jms.server.destination.TopicService] Starting jboss.messaging.destination:service=Topic,name=testTopic
> 2008-03-04 11:30:08,494 DEBUG [org.jboss.jms.server.DestinationJNDIMapper] topic testTopic registered 
> 2008-03-04 11:30:08,494 DEBUG [org.jboss.jms.server.DestinationJNDIMapper] topic bound in JNDI as /topic/testTopic
> As a workaround, i renamed the EAR file to ZEJB3Persistence.ear (note that the filename now starts with Z), so that this file is picked up for deployment *after* deploying the topic in the messaging folder. I then restarted JBoss with came up fine without any errors and deployed the EAR and MDB.
> Please see the forum reference for more details.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        



More information about the jboss-jira mailing list