Timeout when connecting WildFly 10 remote JMS
lao974 Jul 26, 2017 7:30 AMHi,
Please help setting up a remote connection to WildFly JMS. Everything works fine when connecting from war application running on the server, but I cannot connect to the queue either from standalone Camel application, or from JMeter. Every remote access gives "java.net.ConnectException: Operation failed with status WAITING after 5000 MILLISECONDS" error.
I get the same error when running from Docker, or installed server.
Please help, I'm desperately stuck at this point. I'm very new to both WildFly and Camel.
Thanks very much for any help!
Details follow.
WildFly 10.1.0.Final setup
create 2 users:
/opt/jboss/wildfly/bin/add-user.sh admin 12345678 --silent &&\
/opt/jboss/wildfly/bin/add-user.sh -a -g guest -u jmsuser -p 12345678 --silent
startup:
/opt/jboss/wildfly/bin/standalone.sh -b 0.0.0.0 -bmanagement 0.0.0.0 -c standalone-full.xml
(Results are the same when starting with: /opt/jboss/wildfly/bin/standalone.sh -b 127.0.0.1 -bmanagement 127.0.0.1 -c standalone-full.xml)
setup netty:
batch
/subsystem=messaging-activemq/server=default/remote-acceptor=netty:add(socket-binding=messaging)
/socket-binding-group=standard-sockets/socket-binding=messaging:add(port=5445)
run-batch
setup test queue:
batch
/subsystem=messaging-activemq/server=default/jms-queue=TestQ/:add(entries=["java:jboss/exported/TestQ"])
run-batch
:reload
client Camel app
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:camel="http://camel.apache.org/schema/spring"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd">
<bean id="jndiTemplate" class="org.springframework.jndi.JndiTemplate">
<property name="environment">
<props>
<prop key="java.naming.factory.initial">org.jboss.naming.remote.client.InitialContextFactory</prop>
<prop key="java.naming.provider.url">remote://127.0.0.1:5445</prop>
</props>
</property>
</bean>
<bean name="jms" class="org.apache.camel.component.jms.JmsComponent">
<property name="connectionFactory" ref="authenticatedConnectionFactory"/>
</bean>
<bean id="jmsQueueConnectionFactory" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiTemplate">
<ref bean="jndiTemplate"/>
</property>
<property name="jndiName">
<value>java:jms/RemoteConnectionFactory</value>
</property>
</bean>
<bean id="authenticatedConnectionFactory"
class="org.springframework.jms.connection.UserCredentialsConnectionFactoryAdapter">
<property name="targetConnectionFactory" ref="jmsQueueConnectionFactory"/>
<property name="username" value="jmsuser"/>
<property name="password" value="12345678"/>
</bean>
<camel:camelContext xmlns="http://camel.apache.org/schema/spring">
<camel:route>
<camel:from uri="timer:foo?period=1s"/>
<setBody>
<simple>${body}Message at ${date:now:yyyy-MM-dd HH:mm:ss}</simple>
</setBody>
<camel:to uri="jms:queue:ExampleQueue"/>
</camel:route>
</camel:camelContext>
</beans>
Results
[INFO] Starting Camel ...
[pache.camel.spring.Main.main()] CamelNamespaceHandler DEBUG Using org.apache.camel.spring.CamelContextFactoryBean as CamelContextBeanDefinitionParser
[pache.camel.spring.Main.main()] CamelNamespaceHandler DEBUG Registered default: org.apache.camel.spring.CamelProducerTemplateFactoryBean with id: template on camel context: camel-1
[pache.camel.spring.Main.main()] CamelNamespaceHandler DEBUG Registered default: org.apache.camel.spring.CamelFluentProducerTemplateFactoryBean with id: fluentTemplate on camel context: camel-1
[pache.camel.spring.Main.main()] CamelNamespaceHandler DEBUG Registered default: org.apache.camel.spring.CamelConsumerTemplateFactoryBean with id: consumerTemplate on camel context: camel-1
[pache.camel.spring.Main.main()] logging DEBUG Logging Provider: org.jboss.logging.Log4jLoggerProvider
[pache.camel.spring.Main.main()] InitialContextFactory DEBUG Looking for jboss-naming-client.properties using classloader java.net.URLClassLoader@5b730279
[pache.camel.spring.Main.main()] InitialContextFactory DEBUG jboss.naming.client.endpoint.create.options. has the following options {}
[pache.camel.spring.Main.main()] InitialContextFactory DEBUG jboss.naming.client.remote.connectionprovider.create.options. has the following options {}
[pache.camel.spring.Main.main()] xnio INFO XNIO version 3.4.0.Final
[pache.camel.spring.Main.main()] nio INFO XNIO NIO Implementation Version 3.4.0.Final
[-naming-client-endpoint" I/O-1] nio DEBUG Started channel thread 'Remoting "config-based-naming-client-endpoint" I/O-1', selector sun.nio.ch.KQueueSelectorImpl@5a9c6258
[naming-client-endpoint" Accept] nio DEBUG Started channel thread 'Remoting "config-based-naming-client-endpoint" Accept', selector sun.nio.ch.KQueueSelectorImpl@11991c67
[pache.camel.spring.Main.main()] remoting INFO JBoss Remoting version 4.0.21.Final
[pache.camel.spring.Main.main()] InitialContextFactory DEBUG jboss.naming.client.connect.options. has the following options {}
[pache.camel.spring.Main.main()] HaRemoteNamingStore DEBUG Failed to connect to server remote://127.0.0.1:5445
java.net.ConnectException: Operation failed with status WAITING after 5000 MILLISECONDS
at org.jboss.naming.remote.protocol.IoFutureHelper.get(IoFutureHelper.java:97)
at org.jboss.naming.remote.client.HaRemoteNamingStore.failOverSequence(HaRemoteNamingStore.java:198)
at org.jboss.naming.remote.client.HaRemoteNamingStore.namingStore(HaRemoteNamingStore.java:149)
at org.jboss.naming.remote.client.HaRemoteNamingStore.namingOperation(HaRemoteNamingStore.java:130)
at org.jboss.naming.remote.client.HaRemoteNamingStore.lookup(HaRemoteNamingStore.java:272)
at org.jboss.naming.remote.client.RemoteContext.lookupInternal(RemoteContext.java:104)
at org.jboss.naming.remote.client.RemoteContext.lookup(RemoteContext.java:93)
at org.jboss.naming.remote.client.RemoteContext.lookup(RemoteContext.java:146)
at javax.naming.InitialContext.lookup(InitialContext.java:417)
at org.springframework.jndi.JndiTemplate$1.doInContext(JndiTemplate.java:155)
at org.springframework.jndi.JndiTemplate.execute(JndiTemplate.java:87)
at org.springframework.jndi.JndiTemplate.lookup(JndiTemplate.java:152)
at org.springframework.jndi.JndiTemplate.lookup(JndiTemplate.java:179)
at org.springframework.jndi.JndiLocatorSupport.lookup(JndiLocatorSupport.java:95)
at org.springframework.jndi.JndiObjectLocator.lookup(JndiObjectLocator.java:106)
at org.springframework.jndi.JndiObjectFactoryBean.lookupWithFallback(JndiObjectFactoryBean.java:231)
at org.springframework.jndi.JndiObjectFactoryBean.afterPropertiesSet(JndiObjectFactoryBean.java:217)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1687)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1624)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:555)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:351)
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:108)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1531)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1276)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:553)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:351)
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:108)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1531)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1276)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:553)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:761)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:866)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:542)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:93)
at org.apache.camel.spring.Main.createDefaultApplicationContext(Main.java:222)
at org.apache.camel.spring.Main.doStart(Main.java:154)
at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)
at org.apache.camel.main.MainSupport.run(MainSupport.java:168)
at org.apache.camel.main.MainSupport.run(MainSupport.java:482)
at org.apache.camel.spring.Main.main(Main.java:86)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.camel.maven.RunMojo$1.run(RunMojo.java:519)
at java.lang.Thread.run(Thread.java:748)
[pache.camel.spring.Main.main()] ClassPathXmlApplicationContext WARN Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'jms' defined in file [/Users/lkp/Work/github/jaysensharma/MiddlewareMagicDemos/WildFly/JMS/Camel_With_ActiveMQ_On_WildFly10/target/classes/META-INF/spring/camel-context.xml]: Cannot resolve reference to bean 'authenticatedConnectionFactory' while setting bean property 'connectionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'authenticatedConnectionFactory' defined in file [/Users/lkp/Work/github/jaysensharma/MiddlewareMagicDemos/WildFly/JMS/Camel_With_ActiveMQ_On_WildFly10/target/classes/META-INF/spring/camel-context.xml]: Cannot resolve reference to bean 'jmsQueueConnectionFactory' while setting bean property 'targetConnectionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'jmsQueueConnectionFactory' defined in file [/Users/lkp/Work/github/jaysensharma/MiddlewareMagicDemos/WildFly/JMS/Camel_With_ActiveMQ_On_WildFly10/target/classes/META-INF/spring/camel-context.xml]: Invocation of init method failed; nested exception is javax.naming.CommunicationException: Failed to connect to any server. Servers tried: [remote://127.0.0.1:5445 (Operation failed with status WAITING after 5000 MILLISECONDS)] [Root exception is java.net.ConnectException: Operation failed with status WAITING after 5000 MILLISECONDS]
[ERROR] *************************************
[ERROR] Error occurred while running main from: org.apache.camel.spring.Main
[ERROR]
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.camel.maven.RunMojo$1.run(RunMojo.java:519)
at java.lang.Thread.run(Thread.java:748)
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'jms' defined in file [/Users/lkp/Work/github/jaysensharma/MiddlewareMagicDemos/WildFly/JMS/Camel_With_ActiveMQ_On_WildFly10/target/classes/META-INF/spring/camel-context.xml]: Cannot resolve reference to bean 'authenticatedConnectionFactory' while setting bean property 'connectionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'authenticatedConnectionFactory' defined in file [/Users/lkp/Work/github/jaysensharma/MiddlewareMagicDemos/WildFly/JMS/Camel_With_ActiveMQ_On_WildFly10/target/classes/META-INF/spring/camel-context.xml]: Cannot resolve reference to bean 'jmsQueueConnectionFactory' while setting bean property 'targetConnectionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'jmsQueueConnectionFactory' defined in file [/Users/lkp/Work/github/jaysensharma/MiddlewareMagicDemos/WildFly/JMS/Camel_With_ActiveMQ_On_WildFly10/target/classes/META-INF/spring/camel-context.xml]: Invocation of init method failed; nested exception is javax.naming.CommunicationException: Failed to connect to any server. Servers tried: [remote://127.0.0.1:5445 (Operation failed with status WAITING after 5000 MILLISECONDS)] [Root exception is java.net.ConnectException: Operation failed with status WAITING after 5000 MILLISECONDS]
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:359)
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:108)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1531)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1276)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:553)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:761)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:866)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:542)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:93)
at org.apache.camel.spring.Main.createDefaultApplicationContext(Main.java:222)
at org.apache.camel.spring.Main.doStart(Main.java:154)
at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)
at org.apache.camel.main.MainSupport.run(MainSupport.java:168)
at org.apache.camel.main.MainSupport.run(MainSupport.java:482)
at org.apache.camel.spring.Main.main(Main.java:86)
... 6 more
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'authenticatedConnectionFactory' defined in file [/Users/lkp/Work/github/jaysensharma/MiddlewareMagicDemos/WildFly/JMS/Camel_With_ActiveMQ_On_WildFly10/target/classes/META-INF/spring/camel-context.xml]: Cannot resolve reference to bean