[jboss-jira] [JBoss JIRA] (WFLY-9502) javax.naming.InvalidNameException: WFNAM00007: Invalid URL scheme name "null" when jms bridge is trying to do remote lookup on EAP6/HornetQ

Lin Gao (JIRA) issues at jboss.org
Mon Jan 15 00:25:00 EST 2018


     [ https://issues.jboss.org/browse/WFLY-9502?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Lin Gao updated WFLY-9502:
--------------------------
    Steps to Reproduce: 
Start EAP 6 with port offset to 1000

{code}
jboss-eap-6.4/bin/standalone.sh -c standalone-full.xml -Djboss.socket.binding.port-offset=1000
{\code}

Create jms queue on EAP6

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

Start EAP7/WildFly using standalone-full.xml:

{code}
wildfly-12.0.0.Alpha1-SNAPSHOT/bin/standalone.sh -c standalone-full.xml
{\code}

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

{code}
/subsystem=messaging-activemq/server=default/jms-queue=SourceQueue:add(durable=true, entries=["java:/jms/queue/sourceQueue"])


/subsystem=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"})

{\code}

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

  was:
Create jms queue on EAP6

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

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

{code}
/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.as.naming.IntialContextFactory", \
    "java.naming.provider.url" => "remote://localhost:5447" })
{\code}

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



> javax.naming.InvalidNameException: WFNAM00007: Invalid URL scheme name "null" when jms bridge is trying to do remote lookup on EAP6/HornetQ
> -------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: WFLY-9502
>                 URL: https://issues.jboss.org/browse/WFLY-9502
>             Project: WildFly
>          Issue Type: Bug
>          Components: JMS, Naming
>    Affects Versions: 11.0.0.Final
>            Reporter: Martin Švehla
>            Assignee: Lin Gao
>            Priority: Critical
>              Labels: downstream_dependency
>
> 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.
> {code}
> 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)
> {\code}
> 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.



--
This message was sent by Atlassian JIRA
(v7.5.0#75005)



More information about the jboss-jira mailing list