Hello everyone, We develop our application for Glassfish v3 and have been running our testcases with OpenEJB for a while now. We decided to switch from OpenMQ to ActiveMQ for Glassfish because if offers some features in redelivery that we need. However after setting up the MDB's to use ActiveMQ (by using the sun-ejb-jar.xml to setup the resource adapter, and the necessary ActivationConfig) now one of our testcases fails to run. I don't really know how to resolve it. I hope someone can help with this. Below is the stacktrace:
Apache OpenEJB 3.1.4 build: 20101112-03:32 http://openejb.apache.org/ INFO - openejb.home = C:\CatDev\ht\ht-connector\target INFO - openejb.base = C:\CatDev\ht\ht-connector\target INFO - Configuring Service(id=securityService, type=SecurityService, provider-id=Default Security Service) INFO - Configuring Service(id=Default Transaction Manager, type=TransactionManager, provider-id=Default Transaction Manager) INFO - Configuring Service(id=jdbc/ht, type=Resource, provider-id=Default JDBC Database) INFO - Configuring Service(id=statelessContainer, type=Container, provider-id=Default Stateless Container) INFO - Configuring Service(id=stateful, type=Container, provider-id=Default Stateful Container) INFO - Found EjbModule in classpath: C:\CatDev\ht\ht-connector\target\classes INFO - Found EjbModule in classpath: C:\CatDev\ht\ht-connector\target\test-classes INFO - Found EjbModule in classpath: C:\CatDev\m2\com\greencat-it\ht\ht-testing\1.8.0-SNAPSHOT\ht-testing-1.8.0-SNAPSHOT.jar INFO - Found EjbModule in classpath: C:\CatDev\m2\com\greencat-it\ht\ht-outbound\1.8.0-SNAPSHOT\ht-outbound-1.8.0-SNAPSHOT.jar INFO - Found EjbModule in classpath: C:\CatDev\m2\com\greencat-it\ht\ht-system\1.8.0-SNAPSHOT\ht-system-1.8.0-SNAPSHOT.jar INFO - Found EjbModule in classpath: C:\CatDev\m2\com\greencat-it\ht\ht-printing\1.8.0-SNAPSHOT\ht-printing-1.8.0-SNAPSHOT.jar INFO - Found PersistenceModule in classpath: C:\CatDev\m2\com\greencat-it\ht\ht-model\1.8.0-SNAPSHOT\ht-model-1.8.0-SNAPSHOT.jar INFO - Found EjbModule in classpath: C:\CatDev\m2\com\greencat-it\ht\ht-message\1.8.0-SNAPSHOT\ht-message-1.8.0-SNAPSHOT.jar INFO - Beginning load: C:\CatDev\ht\ht-connector\target\classes INFO - Beginning load: C:\CatDev\ht\ht-connector\target\test-classes INFO - Beginning load: C:\CatDev\m2\com\greencat-it\ht\ht-testing\1.8.0-SNAPSHOT\ht-testing-1.8.0-SNAPSHOT.jar INFO - Beginning load: C:\CatDev\m2\com\greencat-it\ht\ht-outbound\1.8.0-SNAPSHOT\ht-outbound-1.8.0-SNAPSHOT.jar INFO - Beginning load: C:\CatDev\m2\com\greencat-it\ht\ht-system\1.8.0-SNAPSHOT\ht-system-1.8.0-SNAPSHOT.jar INFO - Beginning load: C:\CatDev\m2\com\greencat-it\ht\ht-printing\1.8.0-SNAPSHOT\ht-printing-1.8.0-SNAPSHOT.jar INFO - Beginning load: C:\CatDev\m2\com\greencat-it\ht\ht-model\1.8.0-SNAPSHOT\ht-model-1.8.0-SNAPSHOT.jar INFO - Beginning load: C:\CatDev\m2\com\greencat-it\ht\ht-message\1.8.0-SNAPSHOT\ht-message-1.8.0-SNAPSHOT.jar INFO - Configuring enterprise application: classpath.ear FOO moduleName = C:\CatDev\m2\com\greencat-it\ht\ht-model\1.8.0-SNAPSHOT\ht-model-1.8.0-SNAPSHOT.jar INFO - Configuring Service(id=Default Singleton Container, type=Container, provider-id=Default Singleton Container) INFO - Auto-creating a container for bean MessageReceiverBean: Container(type=SINGLETON, id=Default Singleton Container) INFO - Configuring Service(id=Default JMS Connection Factory, type=Resource, provider-id=Default JMS Connection Factory) INFO - Auto-creating a Resource with id 'Default JMS Connection Factory' of type 'javax.jms.ConnectionFactory for 'ObdConnector'. INFO - Configuring Service(id=Default JMS Resource Adapter, type=Resource, provider-id=Default JMS Resource Adapter) INFO - Auto-linking resource-ref 'com.greencat.ht.outbound.obd.ObdConnector/connectionFactory' in bean ObdConnector to Resource(id=Default JMS Connection Factory) INFO - Configuring Service(id=jms/HtObdOutgoing, type=Resource, provider-id=Default Topic) INFO - Auto-creating a Resource with id 'jms/HtObdOutgoing' of type 'javax.jms.Topic for 'ObdConnector'. INFO - Auto-linking resource-env-ref 'com.greencat.ht.outbound.obd.ObdConnector/obdOutgoingTopic' in bean ObdConnector to Resource(id=jms/HtObdOutgoing) INFO - Configuring Service(id=Default MDB Container, type=Container, provider-id=Default MDB Container) INFO - Auto-creating a container for bean OutboundChangeTopicHandler: Container(type=MESSAGE, id=Default MDB Container) INFO - Configuring Service(id=HtChangeNotification, type=Resource, provider-id=Default Topic) INFO - Auto-creating a Resource with id 'HtChangeNotification' of type 'javax.jms.Topic for 'OutboundChangeTopicHandler'. INFO - Auto-linking resource-ref 'com.greencat.ht.logic.message.MessageLogicBean/connectionFactory' in bean MessageLogicBean to Resource(id=Default JMS Connection Factory) INFO - Configuring Service(id=jms/HtMessageProcessingQueue, type=Resource, provider-id=Default Queue) INFO - Auto-creating a Resource with id 'jms/HtMessageProcessingQueue' of type 'javax.jms.Queue for 'MessageLogicBean'. INFO - Auto-linking resource-env-ref 'com.greencat.ht.logic.message.MessageLogicBean/processingQueue' in bean MessageLogicBean to Resource(id=jms/HtMessageProcessingQueue) INFO - Configuring Service(id=Default MDB Container, type=Container, provider-id=Default MDB Container) INFO - Auto-creating a container for bean MessageProcessorMDB: Container(type=MESSAGE, id=Default MDB Container) INFO - Configuring Service(id=HtMessageProcessingQueue, type=Resource, provider-id=Default Queue) INFO - Auto-creating a Resource with id 'HtMessageProcessingQueue' of type 'javax.jms.Queue for 'MessageProcessorMDB'. INFO - Configuring PersistenceUnit(name=ht, provider=org.eclipse.persistence.jpa.PersistenceProvider) INFO - Auto-creating a Resource with id 'jdbc/htNonJta' of type 'DataSource for 'ht'. INFO - Configuring Service(id=jdbc/htNonJta, type=Resource, provider-id=jdbc/ht) INFO - Adjusting PersistenceUnit ht <non-jta-data-source> to Resource ID 'jdbc/htNonJta' from 'null' FATAL - Cannot find container "activemq-rar" for bean "OutboundChangeTopicHandler". WARN - Jar not loaded. C:\CatDev\m2\com\greencat-it\ht\ht-outbound\1.8.0-SNAPSHOT\ht-outbound-1.8.0-SNAPSHOT.jar. Cannot find container "activemq-rar" for bean "OutboundChangeTopicHandler". WARN - Jar not loaded. classpath.ear. Cannot find container "activemq-rar" for bean "OutboundChangeTopicHandler". org.apache.openejb.OpenEJBException: Cannot find container "activemq-rar" for bean "OutboundChangeTopicHandler". at org.apache.openejb.config.AppInfoBuilder.build(AppInfoBuilder.java:141) at org.apache.openejb.config.ConfigurationFactory.configureApplication(ConfigurationFactory.java:629) at org.apache.openejb.config.ConfigurationFactory.configureApplication(ConfigurationFactory.java:576) at org.apache.openejb.config.ConfigurationFactory.getOpenEjbConfiguration(ConfigurationFactory.java:391) at org.apache.openejb.assembler.classic.Assembler.getOpenEjbConfiguration(Assembler.java:300) at org.apache.openejb.assembler.classic.Assembler.build(Assembler.java:279) at org.apache.openejb.OpenEJB$Instance.<init>(OpenEJB.java:125) at org.apache.openejb.OpenEJB$Instance.<init>(OpenEJB.java:60) at org.apache.openejb.OpenEJB.init(OpenEJB.java:271) at org.apache.openejb.OpenEJB.init(OpenEJB.java:250) 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.apache.openejb.loader.OpenEJBInstance.init(OpenEJBInstance.java:36) at org.apache.openejb.client.LocalInitialContextFactory.init(LocalInitialContextFactory.java:71) at org.apache.openejb.client.LocalInitialContextFactory.init(LocalInitialContextFactory.java:53) at org.apache.openejb.client.LocalInitialContextFactory.getInitialContext(LocalInitialContextFactory.java:42) at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:667) at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288) at javax.naming.InitialContext.init(InitialContext.java:223) at javax.naming.InitialContext.<init>(InitialContext.java:197) at com.greencat.util.test.BaseEjbTestCase.setUpBeforeClass(BaseEjbTestCase.java:117) 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.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:27) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31) at org.junit.runners.ParentRunner.run(ParentRunner.java:220) at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:35) at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:146) at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:97) 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.apache.maven.surefire.booter.ProviderFactory$ClassLoaderProxy.invoke(ProviderFactory.java:103) at $Proxy0.invoke(Unknown Source) at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:145) at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcess(SurefireStarter.java:70) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:69) [DEBUG]ActiveMQResourceAdapter - setting [serverUrl] to: vm://localhost?async=true [DEBUG]ActiveMQResourceAdapter - original thread context classLoader: sun.misc.Launcher$AppClassLoader@fabe9 [DEBUG]ActiveMQResourceAdapter - current (from getClass()) thread context classLoader: sun.misc.Launcher$AppClassLoader@fabe9 [DEBUG]ManagementContext - Probably not using JRE 1.4: mx4j.tools.naming.NamingService [DEBUG]ManagementContext - Starting JMXConnectorServer... BrokerService - Using Persistence Adapter: MemoryPersistenceAdapter BrokerService - ActiveMQ 5.3.1 JMS Message Broker (localhost) is starting BrokerService - For help or more information please see: http://activemq.apache.org/ ManagementContext - JMX consoles can connect to service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi BrokerService - ActiveMQ JMS Message Broker (localhost, ID:N0539-53909-1299759061540-0:0) started [DEBUG]ActiveMQManagedConnectionFactory - copying standard ResourceAdapter configuration properties [DEBUG]ActiveMQManagedConnectionFactory - setting [clientid] to: null [DEBUG]ActiveMQManagedConnectionFactory - setting [password] property [DEBUG]ActiveMQManagedConnectionFactory - setting [serverUrl] to: vm://localhost?async=true [DEBUG]ActiveMQManagedConnectionFactory - setting [useInboundSession] to: null [DEBUG]ActiveMQManagedConnectionFactory - setting [userName] to: null [TRACE] AbstractSinglePoolConnectionInterceptor - Connection Manager Default JMS Connection Factory installed pool org.apache.geronimo.connector.outbound.SinglePoolConnectionInterceptor@383244 FATAL - OpenEJB has encountered a fatal error and cannot be started: Assembler failed to build the container system. org.apache.openejb.OpenEJBException: Cannot bind Container with id Default MDB Container : ParsedName{path=openejb/Container/Default MDB Container, component=Default MDB Container} at org.apache.openejb.assembler.classic.Assembler.bindService(Assembler.java:1027) at org.apache.openejb.assembler.classic.Assembler.createContainer(Assembler.java:1007) at org.apache.openejb.assembler.classic.Assembler.buildContainerSystem(Assembler.java:362) at org.apache.openejb.assembler.classic.Assembler.build(Assembler.java:280) at org.apache.openejb.OpenEJB$Instance.<init>(OpenEJB.java:125) at org.apache.openejb.OpenEJB$Instance.<init>(OpenEJB.java:60) at org.apache.openejb.OpenEJB.init(OpenEJB.java:271) at org.apache.openejb.OpenEJB.init(OpenEJB.java:250) 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.apache.openejb.loader.OpenEJBInstance.init(OpenEJBInstance.java:36) at org.apache.openejb.client.LocalInitialContextFactory.init(LocalInitialContextFactory.java:71) at org.apache.openejb.client.LocalInitialContextFactory.init(LocalInitialContextFactory.java:53) at org.apache.openejb.client.LocalInitialContextFactory.getInitialContext(LocalInitialContextFactory.java:42) at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:667) at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288) at javax.naming.InitialContext.init(InitialContext.java:223) at javax.naming.InitialContext.<init>(InitialContext.java:197) at com.greencat.util.test.BaseEjbTestCase.setUpBeforeClass(BaseEjbTestCase.java:117) 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.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:27) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31) at org.junit.runners.ParentRunner.run(ParentRunner.java:220) at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:35) at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:146) at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:97) 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.apache.maven.surefire.booter.ProviderFactory$ClassLoaderProxy.invoke(ProviderFactory.java:103) at $Proxy0.invoke(Unknown Source) at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:145) at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcess(SurefireStarter.java:70) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:69) Caused by: javax.naming.NameAlreadyBoundException: ParsedName{path=openejb/Container/Default MDB Container, component=Default MDB Container} at org.apache.openejb.core.ivm.naming.NameNode.bind(NameNode.java:96) at org.apache.openejb.core.ivm.naming.NameNode.bind(NameNode.java:105) at org.apache.openejb.core.ivm.naming.NameNode.bind(NameNode.java:111) at org.apache.openejb.core.ivm.naming.NameNode.bind(NameNode.java:90) at org.apache.openejb.core.ivm.naming.NameNode.bind(NameNode.java:105) at org.apache.openejb.core.ivm.naming.NameNode.bind(NameNode.java:111) at org.apache.openejb.core.ivm.naming.NameNode.bind(NameNode.java:90) at org.apache.openejb.core.ivm.naming.NameNode.bind(NameNode.java:105) at org.apache.openejb.core.ivm.naming.IvmContext.bind(IvmContext.java:295) at org.apache.openejb.assembler.classic.Assembler.bindService(Assembler.java:1025) ... 42 more