I have a queue - TestQueue created on JBOSS EAP 8 and my application (EAR) has a MDB which publishes messages to this queue.
standalone.xml
Below is the class where I am trying to lookup all queues created on JBOSS EAP 8
ApplicationStartup.java
@Singleton
@Startup
public class ApplicationStartup {
@PostConstruct
public void init() {
try {
Logger.info("ApplicationStartup: LOOOK UP JMS QUEUES/TOPICS");
// 1. Set up JNDI properties for connecting to JBoss/WildFly
Properties props = new Properties();
props.put(Context.INITIAL_CONTEXT_FACTORY, "org.wildfly.naming.client.WildFlyInitialContextFactory");
props.put(Context.PROVIDER_URL, "http-remoting://localhost:8080");
// 2. Create InitialContext
Context initialContext = new InitialContext(props);
Context destinationsContext = (Context) initialContext.lookup("jms");
Enumeration list = destinationsContext.list("");
while (list.hasMoreElements()) {
NameClassPair nc = list.nextElement();
Object obj = destinationsContext.lookup(nc.getName());
if (obj instanceof Queue) {
System.out.println("Queue Found: " + nc.getName());
} else if (obj instanceof Topic) {
System.out.println("Topic Found: " + nc.getName());
}
}
} catch (Exception e) {
Logger.error("ApplicationStartup: Error during JMS startup", e);
e.printStackTrace();
}
}
}
jboss-deployment-descriptor.xml
I have a EJB and Web module in a EAR deployed to JBOSS 8. I have added jboss-deployment-descriptor.xml in META-INF folders of EJB and EAR modules and WEB-INF folder of Web module but I am getting below error
Caused by: java.lang.RuntimeException: javax.naming.NamingException: Failed to lookup [Root exception is java.lang.ClassNotFoundException: org.apache.activemq.artemis.jms.client.ActiveMQJMSConnectionFactory from [Module "deployment.deploy.ear.testweb-1.0.0.war" from Service Module Loader]]
at deployment.deploy.ear.testweb-1.0.0.war//com.Karthik.test.jms.startup.ApplicationStartup.init(ApplicationStartup.java:88)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at org.jboss.as.ee@8.0.7.GA-redhat-00002//org.jboss.as.ee.component.ManagedReferenceLifecycleMethodInterceptor.processInvocation(ManagedReferenceLifecycleMethodInterceptor.java:96)
at org.jboss.invocation@2.0.0.Final-redhat-00001//org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422)
at org.jboss.invocation@2.0.0.Final-redhat-00001//org.jboss.invocation.InterceptorContext$Invocation.proceed(InterceptorContext.java:509)
at org.jboss.as.weld.common@8.0.7.GA-redhat-00002//org.jboss.as.weld.interceptors.Jsr299BindingsInterceptor.delegateInterception(Jsr299BindingsInterceptor.java:79)
at org.jboss.as.weld.common@8.0.7.GA-redhat-00002//org.jboss.as.weld.interceptors.Jsr299BindingsInterceptor.doLifecycleInterception(Jsr299BindingsInterceptor.java:126)
at org.jboss.as.weld.common@8.0.7.GA-redhat-00002//org.jboss.as.weld.interceptors.Jsr299BindingsInterceptor.processInvocation(Jsr299BindingsInterceptor.java:112)
at org.jboss.invocation@2.0.0.Final-redhat-00001//org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422)
at org.jboss.invocation@2.0.0.Final-redhat-00001//org.jboss.invocation.InterceptorContext$Invocation.proceed(InterceptorContext.java:509)
at org.jboss.weld.core@5.1.2.Final-redhat-00001//org.jboss.weld.module.ejb.AbstractEJBRequestScopeActivationInterceptor.aroundInvoke(AbstractEJBRequestScopeActivationInterceptor.java:87)
at org.jboss.as.weld.common@8.0.7.GA-redhat-00002//org.jboss.as.weld.ejb.EjbRequestScopeActivationInterceptor.processInvocation(EjbRequestScopeActivationInterceptor.java:89)
at org.jboss.invocation@2.0.0.Final-redhat-00001//org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422)
at org.jboss.as.weld@8.0.7.GA-redhat-00002//org.jboss.as.weld.injection.WeldInjectionInterceptor.processInvocation(WeldInjectionInterceptor.java:53)
at org.jboss.invocation@2.0.0.Final-redhat-00001//org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422)
at org.jboss.as.ee@8.0.7.GA-redhat-00002//org.jboss.as.ee.component.ManagedReferenceFieldInjectionInterceptorFactory$ManagedReferenceFieldInjectionInterceptor.processInvocation(ManagedReferenceFieldInjectionInterceptorFactory.java:112)
at org.jboss.invocation@2.0.0.Final-redhat-00001//org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422)
at org.jboss.as.ee@8.0.7.GA-redhat-00002//org.jboss.as.ee.component.AroundConstructInterceptorFactory$1.processInvocation(AroundConstructInterceptorFactory.java:28)
at org.jboss.invocation@2.0.0.Final-redhat-00001//org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422)
at org.jboss.as.weld@8.0.7.GA-redhat-00002//org.jboss.as.weld.injection.WeldInterceptorInjectionInterceptor.processInvocation(WeldInterceptorInjectionInterceptor.java:56)
at org.jboss.invocation@2.0.0.Final-redhat-00001//org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422)
at org.jboss.as.weld@8.0.7.GA-redhat-00002//org.jboss.as.weld.interceptors.Jsr299BindingsCreateInterceptor.processInvocation(Jsr299BindingsCreateInterceptor.java:111)
at org.jboss.invocation@2.0.0.Final-redhat-00001//org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422)
at org.jboss.as.ee@8.0.7.GA-redhat-00002//org.jboss.as.ee.component.NamespaceContextInterceptor.processInvocation(NamespaceContextInterceptor.java:50)
at org.jboss.invocation@2.0.0.Final-redhat-00001//org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422)
at org.jboss.as.ejb3@8.0.7.GA-redhat-00002//org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInOurTx(CMTTxInterceptor.java:254)
... 28 more
Caused by: javax.naming.NamingException: Failed to lookup [Root exception is java.lang.ClassNotFoundException: org.apache.activemq.artemis.jms.client.ActiveMQJMSConnectionFactory from [Module "deployment.deploy.ear.testweb-1.0.0.war" from Service Module Loader]]
at org.wildfly.naming-client@2.0.1.Final-redhat-00001//org.wildfly.naming.client.util.NamingUtils.namingException(NamingUtils.java:171)
at org.wildfly.naming-client@2.0.1.Final-redhat-00001//org.wildfly.naming.client.remote.RemoteClientTransport.lookup(RemoteClientTransport.java:291)
at org.wildfly.naming-client@2.0.1.Final-redhat-00001//org.wildfly.naming.client.remote.RemoteContext.lambda$lookupNative$0(RemoteContext.java:190)
at org.wildfly.naming-client@2.0.1.Final-redhat-00001//org.wildfly.naming.client.NamingProvider.performExceptionAction(NamingProvider.java:222)
at org.wildfly.naming-client@2.0.1.Final-redhat-00001//org.wildfly.naming.client.remote.RemoteContext.performWithRetry(RemoteContext.java:100)
at org.wildfly.naming-client@2.0.1.Final-redhat-00001//org.wildfly.naming.client.remote.RemoteContext.lookupNative(RemoteContext.java:188)
at org.wildfly.naming-client@2.0.1.Final-redhat-00001//org.wildfly.naming.client.AbstractFederatingContext.lookup(AbstractFederatingContext.java:74)
at org.wildfly.naming-client@2.0.1.Final-redhat-00001//org.wildfly.naming.client.store.RelativeFederatingContext.lookupNative(RelativeFederatingContext.java:58)
at org.wildfly.naming-client@2.0.1.Final-redhat-00001//org.wildfly.naming.client.AbstractFederatingContext.lookup(AbstractFederatingContext.java:74)
at org.wildfly.naming-client@2.0.1.Final-redhat-00001//org.wildfly.naming.client.AbstractFederatingContext.lookup(AbstractFederatingContext.java:60)
at org.wildfly.naming-client@2.0.1.Final-redhat-00001//org.wildfly.naming.client.AbstractFederatingContext.lookup(AbstractFederatingContext.java:50)
at deployment.deploy.ear.testweb-1.0.0.war//com.Karthik.test.jms.startup.ApplicationStartup.init(ApplicationStartup.java:70)
... 54 more
Caused by: java.lang.ClassNotFoundException: org.apache.activemq.artemis.jms.client.ActiveMQJMSConnectionFactory from [Module "deployment.deploy.ear.testweb-1.0.0.war" from Service Module Loader]
at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:200)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:408)
at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:396)
at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:115)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:534)
at java.base/java.lang.Class.forName(Class.java:513)
at org.jboss.marshalling@2.1.6.Final-redhat-00001//org.jboss.marshalling.AbstractClassResolver.loadClass(AbstractClassResolver.java:129)
at org.jboss.marshalling@2.1.6.Final-redhat-00001//org.jboss.marshalling.AbstractClassResolver.resolveClass(AbstractClassResolver.java:110)
at org.jboss.marshalling.river@2.1.6.Final-redhat-00001//org.jboss.marshalling.river.RiverUnmarshaller.doReadClassDescriptor(RiverUnmarshaller.java:1284)
at org.jboss.marshalling.river@2.1.6.Final-redhat-00001//org.jboss.marshalling.river.RiverUnmarshaller.doReadNewObject(RiverUnmarshaller.java:1560)
at org.jboss.marshalling.river@2.1.6.Final-redhat-00001//org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:441)
at org.jboss.marshalling.river@2.1.6.Final-redhat-00001//org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:373)
at org.jboss.marshalling@2.1.6.Final-redhat-00001//org.jboss.marshalling.AbstractObjectInput.readObject(AbstractObjectInput.java:41)
at org.wildfly.naming-client@2.0.1.Final-redhat-00001//org.wildfly.naming.client.remote.RemoteClientTransport.lookup(RemoteClientTransport.java:275)
... 64 more