Uploaded image for project: 'JBoss Enterprise Application Platform'
  1. JBoss Enterprise Application Platform
  2. JBEAP-13794

[GSS](7.1.z) javax.naming.InvalidNameException: WFNAM00007: Invalid URL scheme name "null" when jms bridge is trying to do remote lookup on EAP6

XMLWordPrintable

    • Hide

      Create jms queue on EAP6

      /subsystem=messaging/horentq-server=default/jms-queue=TargetQueue:add(durable=true, entries=\["java:jboss/exported/jms/queue/TargetQueue"])
      

      Create source queue on EAP7 and then try to create the bridge

      /subsystem=messaging-activemq/server=default/jms-queue=SourceQueue:add(durable=true, entries=["java:/jms/queue/SourceQueue"])
      
      /subsytem=messaging-activemq/jms-bridge=testBridge:add( \
        module="org.hornetq.client", \
        quality-of-service=AT_MOST_ONCE, \
        failure-retry-interval=2500, \
        max-retries=10, \
        max-batch-size=200, \
        max-batch-time=60, \
        source-connection-factory="ConnectionFactory", \
        source-destination="/jms/queue/SourceQueue", \
        target-connection-factory="jms/RemoteConnectionFactory", \
        target-destination="jms/queue/TargetQueue", \
        target-context={"java.naming.factory.initial" => "org.jboss.naming.remote.client.InitialContextFactory", \
          "java.naming.provider.url" => "remote://localhost:5447" })
      

      Note that you need to add dependency on org.wildfly.naming-client to org.hornetq.client module

      Show
      Create jms queue on EAP6 /subsystem=messaging/horentq-server= default /jms-queue=TargetQueue:add(durable= true , entries=\[ "java:jboss/exported/jms/queue/TargetQueue" ]) Create source queue on EAP7 and then try to create the bridge /subsystem=messaging-activemq/server= default /jms-queue=SourceQueue:add(durable= true , entries=[ "java:/jms/queue/SourceQueue" ]) /subsytem=messaging-activemq/jms-bridge=testBridge:add( \ module= "org.hornetq.client" , \ quality-of-service=AT_MOST_ONCE, \ failure-retry-interval=2500, \ max-retries=10, \ max-batch-size=200, \ max-batch-time=60, \ source-connection-factory= "ConnectionFactory" , \ source-destination= "/jms/queue/SourceQueue" , \ target-connection-factory= "jms/RemoteConnectionFactory" , \ target-destination= "jms/queue/TargetQueue" , \ target-context={ "java.naming.factory.initial" => "org.jboss.naming.remote.client.InitialContextFactory" , \ "java.naming.provider.url" => "remote: //localhost:5447" }) Note that you need to add dependency on org.wildfly.naming-client to org.hornetq.client module
    • EAP 7.1.1

      When I create jms bridge on EAP7 that tries to connect to EAP6, it throws following issue when trying to do remote lookup for connection factory or destination on EAP6.

      2017-10-31 09:44:18,769 WARN  [org.apache.activemq.artemis.jms.bridge] (Thread-102) AMQ342010: Failed to connect JMS Bridge N/A: javax.naming.InvalidNameException: WFNAM00007: Invalid URL scheme name "null"
      	at org.wildfly.naming.client.WildFlyRootContext.getProviderContext(WildFlyRootContext.java:808)
      	at org.wildfly.naming.client.WildFlyRootContext.lookup(WildFlyRootContext.java:140)
      	at javax.naming.InitialContext.lookup(InitialContext.java:417)
      	at javax.naming.InitialContext.lookup(InitialContext.java:417)
      	at org.apache.activemq.artemis.jms.bridge.impl.JNDIFactorySupport.createObject(JNDIFactorySupport.java:46)
      	at org.apache.activemq.artemis.jms.bridge.impl.JNDIDestinationFactory.createDestination(JNDIDestinationFactory.java:32)
      	at org.apache.activemq.artemis.jms.bridge.impl.JMSBridgeImpl.setupJMSObjects(JMSBridgeImpl.java:1072)
      	at org.apache.activemq.artemis.jms.bridge.impl.JMSBridgeImpl.setupJMSObjectsWithRetry(JMSBridgeImpl.java:1247)
      	at org.apache.activemq.artemis.jms.bridge.impl.JMSBridgeImpl.access$2600(JMSBridgeImpl.java:75)
      	at org.apache.activemq.artemis.jms.bridge.impl.JMSBridgeImpl$FailureHandler.run(JMSBridgeImpl.java:1747)
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
      	at java.lang.Thread.run(Thread.java:748)
      

      When debugging I noticed that WildFlyRootContext.getProviderContext there's no NamingProviderFactory available to resolve the name, so I think the error message is just a consequence of that.

              rhn-engineering-lgao Lin Gao
              rhn-support-bmaxwell Brad Maxwell
              David Lloyd
              Martin Svehla Martin Svehla
              Martin Svehla Martin Svehla
              Votes:
              0 Vote for this issue
              Watchers:
              6 Start watching this issue

                Created:
                Updated:
                Resolved:

                  Estimated:
                  Original Estimate - 3 days
                  3d
                  Remaining:
                  Remaining Estimate - 3 days
                  3d
                  Logged:
                  Time Spent - Not Specified
                  Not Specified