Uploaded image for project: 'WildFly'
  1. WildFly
  2. WFLY-4769

WildFly 8 and 9. Connecting to topic using http-remoting and JNDI fails when server is behind NAT firewall

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • Major
    • 11.0.0.Final
    • 8.2.0.Final, 9.0.0.CR1, 10.0.0.Final
    • JMS
    • None

    Description

      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.

      Attachments

        Activity

          People

            jmesnil1@redhat.com Jeff Mesnil
            geturnerrh George Turner (Inactive)
            Votes:
            1 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: