1 Reply Latest reply on Apr 8, 2014 11:48 PM by Vijay Balasubramanian

    How to connect to a remote JMS Queue using WildFly 8 Final?

    Sundar Venkataraman Newbie

      This is my JMS client code:

      String DEFAULT_CONNECTION_FACTORY = "java:jboss/exported/jms/RemoteConnectionFactory";

      String DEFAULT_DESTINATION = "java:/jms//queue/FileExtractQueue";

      String DEFAULT_USERNAME = "testuser";

      String DEFAULT_PASSWORD = "testpassword1!";

      String INITIAL_CONTEXT_FACTORY = "org.jboss.naming.remote.client.InitialContextFactory";

      String PROVIDER_URL = "http-remoting://10.105.16.40:8080";

      Properties env = new Properties();

      env.put(Context.INITIAL_CONTEXT_FACTORY, INITIAL_CONTEXT_FACTORY);

      env.put(Context.PROVIDER_URL, System.getProperty(Context.PROVIDER_URL, PROVIDER_URL));

      env.put(Context.SECURITY_PRINCIPAL, System.getProperty("username", DEFAULT_USERNAME));

      env.put(Context.SECURITY_CREDENTIALS, System.getProperty("password", DEFAULT_PASSWORD));

      InitialContext context = new InitialContext(env);

      ConnectionFactory connectionFactory = (ConnectionFactory) context.lookup(DEFAULT_CONNECTION_FACTORY);

      Destination destination = (Destination) context.lookup(DEFAULT_DESTINATION);

       

      I have WildFly 8 Final running on 10.105.16.40:8080 with standalone-full.xml and I have this line in server.log: "Bound messaging object to jndi name /queue/FileExtractDLQ"

       

      In Standalone-full.xml, I have these relevant lines:

      <subsystem xmlns="urn:jboss:domain:security:1.2">

                  <security-domains>

                      <security-domain name="other" cache-type="default">

                          <authentication>

                              <login-module code="Remoting" flag="optional">

                                  <module-option name="password-stacking" value="useFirstPass"/>

                              </login-module>

                              <login-module code="RealmDirect" flag="required">

                                  <module-option name="password-stacking" value="useFirstPass"/>

                              </login-module>

        <login-module code="RealmUsersRoles" flag="required">

                                  <module-option name="usersProperties" value="${jboss.server.config.dir}/application-users.properties"/>

        <module-option name="rolesProperties" value="${jboss.server.config.dir}/application-roles.properties"/>

        <module-option name="realm" value="ApplicationRealm"/>

        <module-option name="password-stacking" value="useFirstPass"/>

       

                              </login-module>

                          </authentication>

                      </security-domain>

       

      But I am getting this error when I run the JMS Client on this line: ConnectionFactory connectionFactory = (ConnectionFactory) context.lookup(DEFAULT_CONNECTION_FACTORY);

       

      ERROR: JBREM000200: Remote connection failed: javax.security.sasl.SaslException: Authentication failed: the server presented no authentication mechanisms

      Exception in thread "main" javax.naming.AuthenticationException: Failed to connect to any server. Servers tried: [http-remoting://10.105.16.40:8080 (Authentication failed: the server presented no authentication mechanisms)] [Root exception is javax.security.sasl.SaslException: Authentication failed: the server presented no authentication mechanisms]

        at org.jboss.naming.remote.client.HaRemoteNamingStore.failOverSequence(HaRemoteNamingStore.java:238)

        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.lookup(RemoteContext.java:79)

        at org.jboss.naming.remote.client.RemoteContext.lookup(RemoteContext.java:83)

        at javax.naming.InitialContext.lookup(InitialContext.java:411)

        at JmsTest.main(JmsTest.java:47)

      Caused by: javax.security.sasl.SaslException: Authentication failed: the server presented no authentication mechanisms

        at org.jboss.remoting3.remote.ClientConnectionOpenListener$Capabilities.handleEvent(ClientConnectionOpenListener.java:378)

        at org.jboss.remoting3.remote.ClientConnectionOpenListener$Capabilities.handleEvent(ClientConnectionOpenListener.java:240)

        at org.xnio.ChannelListeners.invokeChannelListener(ChannelListeners.java:92)

        at org.xnio.channels.TranslatingSuspendableChannel.handleReadable(TranslatingSuspendableChannel.java:196)

       

       

      Any idea what am I doing wrong?

       

      Thanks

      Sundar