]
Jeff Mesnil commented on WFLY-4769:
-----------------------------------
The http-connector will use the host that the Undertow HTTP server is bound to.
By default, the Undertow HTTP server is bound to the loopback address.
You can change it by changing the inet-address of the public interface that is used by the
http socket-binding:
{noformat}
<interface name="public">
<inet-address value="${jboss.bind.address:127.0.0.1}"/>
</interface>
{noformat}
Note that you can do that without changing the configuration by using a system property
when starting WildFly:
./bin/standalone.sh -c standalone-full.xml -Djboss.bind.address=xxxxx
where xxxx is the public address of your server
WildFly 8 and 9. Connecting to topic using http-remoting and JNDI
fails when server is behind NAT firewall
-----------------------------------------------------------------------------------------------------------
Key: WFLY-4769
URL:
https://issues.jboss.org/browse/WFLY-4769
Project: WildFly
Issue Type: Bug
Components: JMS
Affects Versions: 8.2.0.Final, 9.0.0.CR1, 10.0.0.Final
Environment: RedHat7
Reporter: George Turner
Assignee: Jeff Mesnil
Server is behind NAT firewall. Client code:
Properties topicProperties = new Properties();
topicProperties.put(Context.INITIAL_CONTEXT_FACTORY,
"org.jboss.naming.remote.client.InitialContextFactory");
topicProperties.put(Context.PROVIDER_URL, "http-remoting://" + host +
":" + port);
InitialContext ctx = new InitialContext(topicProperties);
ConnectionFactory tmp = (ConnectionFactory)
topicCtx.lookup("jms/RemoteConnectionFactory");
connection = tmp.createConnection();
Jun 11, 2015 8:26:07 AM org.xnio.Xnio <clinit>
INFO: XNIO version 3.3.1.Final
Jun 11, 2015 8:26:07 AM org.xnio.nio.NioXnio <clinit>
INFO: XNIO NIO Implementation Version 3.3.1.Final
Jun 11, 2015 8:26:07 AM org.jboss.remoting3.EndpointImpl <clinit>
INFO: JBoss Remoting version 4.0.9.Final
javax.jms.JMSException: Failed to create session factory
at
org.hornetq.jms.client.HornetQConnectionFactory.createConnectionInternal(HornetQConnectionFactory.java:673)
at
org.hornetq.jms.client.HornetQConnectionFactory.createConnection(HornetQConnectionFactory.java:112)
at
org.hornetq.jms.client.HornetQConnectionFactory.createConnection(HornetQConnectionFactory.java:107)
at
com.lmco.spacefence.netcentric.test.client.TestMessageConsumer.<init>(TestMessageConsumer.java:36)
at
com.lmco.spacefence.netcentric.test.client.TestMessageConsumer.main(TestMessageConsumer.java:24)
Caused by: HornetQNotConnectedException[errorType=NOT_CONNECTED message=HQ119007: Cannot
connect to server(s). Tried with all available servers.]
at
org.hornetq.core.client.impl.ServerLocatorImpl.createSessionFactory(ServerLocatorImpl.java:905)
at
org.hornetq.jms.client.HornetQConnectionFactory.createConnectionInternal(HornetQConnectionFactory.java:669)
... 4 more
Disconnected from the target VM, address: '127.0.0.1:54275', transport:
'socket'
Client debugger shows the ConnectionFactory instance returned:
initialConnectors = {org.hornetq.api.core.TransportConfiguration[1]@2183}
0 = {org.hornetq.api.core.TransportConfiguration@2196}
"TransportConfiguration(name=http-connector,
factory=org-hornetq-core-remoting-impl-netty-NettyConnectorFactory)
?port=8080&host=10-10-20-77&http-upgrade-enabled=true&http-upgrade-endpoint=http-acceptor"
name = {java.lang.String@2198} "http-connector"
factoryClassName = {java.lang.String@2199}
"org.hornetq.core.remoting.impl.netty.NettyConnectorFactory"
params = {java.util.HashMap@2200} size = 4
0 = {java.util.HashMap$Node@2203} "port" -> "8080"
1 = {java.util.HashMap$Node@2204} "host" -> "10.10.20.77"
2 = {java.util.HashMap$Node@2205} "http-upgrade-enabled" ->
"true"
3 = {java.util.HashMap$Node@2206} "http-upgrade-endpoint" ->
"http-acceptor"
10.10.20.77 is IP address of server behind firewall, NOT the IP address used by the
client.