2017-05-31 4 views
2

J'ai installé une instance de wildfly 10 dans un conteneur docker (Container-A). Si j'essaie de rechercher des files d'attente à partir d'autres conteneurs du même moteur (Server-B, le moteur), tout fonctionne correctement. J'ai des problèmes (voir la trace ci-dessous), au lieu de chercher des files d'attente à partir d'une machine virtuelle sur le même réseau du serveur (Server-C) en utilisant l'adresse IP du serveur B sur le port 7080 mappé sur le port 8080 du conteneur.Wildfly: AMQ214016: Impossible de créer netty connect ion java.nio.channels.UnresolvedAddressException du client sur le réseau hébergé

J'ai essayé d'ouvrir une connexion Telnet de Server-C à Container-A (en utilisant l'adresse IP Server-B et le port 7080) et la connexion semble OK.

Quelqu'un peut-il m'aider?

C:\App>java -jar my-jar.jar 
log4j:WARN No appenders could be found for logger (com.myApp.S 
etUpBowcaster). 
log4j:WARN Please initialize the log4j system properly. 
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more in 
fo. 
2017-05-30 18:44:01 INFO SetUpBowcaster:? - PROCESSORS BUSES INITIALIZATION 
2017-05-30 18:44:01 INFO xnio:93 - XNIO version 3.3.4.Final 
2017-05-30 18:44:01 INFO nio:55 - XNIO NIO Implementation Version 3.3.4.Final 
2017-05-30 18:44:01 INFO remoting:73 - JBoss Remoting version 4.0.18.Final 
2017-05-30 18:44:01 INFO remoting:103 - EJBCLIENT000017: Received server versio 
n 2 and marshalling strategies [river] 
2017-05-30 18:44:01 INFO remoting:219 - EJBCLIENT000013: Successful version han 
dshake completed for receiver context EJBReceiverContext{clientContext=org.jboss 
[email protected]5b, receiver=Remoting connection EJB receiver 
[connection=Remoting connection <56467971>,channel=jboss.ejb,nodename=my-jms-master]} on channel Channel ID b9880cf2 (outbound) of Remoting connec 
tion 71d15f18 to /10.0.0.247:7080 
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder". 
SLF4J: Defaulting to no-operation (NOP) logger implementation 
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further detail 
s. 
2017-05-30 18:44:02 INFO client:45 - JBoss EJB Client version 2.1.4.Final 
2017-05-30 18:44:03 ERROR client:686 - AMQ214016: Failed to create netty connect 
ion 
java.nio.channels.UnresolvedAddressException 
     at sun.nio.ch.Net.checkAddress(Net.java:123) 
     at sun.nio.ch.SocketChannelImpl.connect(SocketChannelImpl.java:622) 
     at io.netty.channel.socket.nio.NioSocketChannel.doConnect(NioSocketChann 
el.java:209) 
     at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.connect(Abs 
tractNioChannel.java:207) 
     at io.netty.channel.DefaultChannelPipeline$HeadContext.connect(DefaultCh 
annelPipeline.java:1097) 
     at io.netty.channel.AbstractChannelHandlerContext.invokeConnect(Abstract 
ChannelHandlerContext.java:471) 
     at io.netty.channel.AbstractChannelHandlerContext.connect(AbstractChanne 
lHandlerContext.java:456) 
     at io.netty.channel.ChannelOutboundHandlerAdapter.connect(ChannelOutboun 
dHandlerAdapter.java:47) 
     at io.netty.channel.CombinedChannelDuplexHandler.connect(CombinedChannel 
DuplexHandler.java:167) 
     at io.netty.channel.AbstractChannelHandlerContext.invokeConnect(Abstract 
ChannelHandlerContext.java:471) 
     at io.netty.channel.AbstractChannelHandlerContext.connect(AbstractChanne 
lHandlerContext.java:456) 
     at io.netty.channel.ChannelDuplexHandler.connect(ChannelDuplexHandler.ja 
va:50) 
     at io.netty.channel.AbstractChannelHandlerContext.invokeConnect(Abstract 
ChannelHandlerContext.java:471) 
     at io.netty.channel.AbstractChannelHandlerContext.connect(AbstractChanne 
lHandlerContext.java:456) 
     at io.netty.channel.AbstractChannelHandlerContext.connect(AbstractChanne 
lHandlerContext.java:438) 
     at io.netty.channel.DefaultChannelPipeline.connect(DefaultChannelPipelin 
e.java:908) 
     at io.netty.channel.AbstractChannel.connect(AbstractChannel.java:203) 
     at io.netty.bootstrap.Bootstrap$2.run(Bootstrap.java:166) 
     at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(Single 
ThreadEventExecutor.java:358) 
     at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:357) 
     at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThread 
EventExecutor.java:112) 
     at java.lang.Thread.run(Thread.java:745) 
Exception in thread "main" com.myApp.exceptions.ProcessorStart 
upException: javax.jms.JMSException: Failed to create session factory 
     at com.myApp.SetUpBowcaster.main(Unknown Source) 
Caused by: javax.jms.JMSException: Failed to create session factory 
     at org.apache.activemq.artemis.jms.client.ActiveMQConnectionFactory.crea 
teConnectionInternal(ActiveMQConnectionFactory.java:727) 
     at org.apache.activemq.artemis.jms.client.ActiveMQConnectionFactory.crea 
teQueueConnection(ActiveMQConnectionFactory.java:284) 
     at com.myApp.applicationLayer.jms.BowcasterProcessorsH 
andlersManager.setUpJmsConnection(Unknown Source) 
     at com.myApp.applicationLayer.jms.BowcasterProcessorsH 
andlersManager.<init>(Unknown Source) 
     at com.myApp.applicationLayer.jms.BowcasterProcessorsH 
andlersManager.getInstance(Unknown Source) 
     ... 1 more 
Caused by: ActiveMQNotConnectedException[errorType=NOT_CONNECTED message=AMQ1190 
07: Cannot connect to server(s). Tried with all available servers.] 
     at org.apache.activemq.artemis.core.client.impl.ServerLocatorImpl.create 
SessionFactory(ServerLocatorImpl.java:777) 
     at org.apache.activemq.artemis.jms.client.ActiveMQConnectionFactory.crea 
teConnectionInternal(ActiveMQConnectionFactory.java:724) 
     ... 5 more 
2017-05-30 18:44:03 INFO remoting:482 - EJBCLIENT000016: Channel Channel ID b98 
80cf2 (outbound) of Remoting connection 71d15f18 to /10.0.0.247:7080 can no long 
er process messages 

Répondre

1

Je résolu en créant la connexion de cette façon:

Map<String, Object> connectionParams = new HashMap<String, Object>(); 
connectionParams.put(org.apache.activemq.artemis.core.remoting.impl.netty.TransportConstants.HOST_PROP_NAME, nattedIp); // <-- PUT THE NATTED IP HERE! 
connectionParams.put(org.apache.activemq.artemis.core.remoting.impl.netty.TransportConstants.PORT_PROP_NAME, nattedPort); 
connectionParams.put(org.apache.activemq.artemis.core.remoting.impl.netty.TransportConstants.HTTP_UPGRADE_ENABLED_PROP_NAME, "true"); 
connectionParams.put(org.apache.activemq.artemis.core.remoting.impl.netty.TransportConstants.HTTP_UPGRADE_ENDPOINT_PROP_NAME, "http-acceptor"); 

TransportConfiguration transportConfiguration = new org.apache.activemq.artemis.api.core.TransportConfiguration(JMS_NETTY_CONNECTOR_FACTORY_PROPERTY_NAME, connectionParams); 

ActiveMQConnectionFactory jmsConnnectionFactory =  ActiveMQJMSClient.createConnectionFactoryWithoutHA(JMSFactoryType.TOPIC_CF, transportConfiguration); 

if (jmsConnnectionFactory != null) {  
    jmsConnnection = jmsConnnectionFactory.createConnection(); 
} 
0

L'adresse: port peut nécessiter une qualification complète. Je fixe en changeant la propriété suivante dans mon code:

artemis.nodes=machine-artemis-01:port 

à:

artemis.nodes=machine-artemis-01.place.company.com:port