[jboss-jira] [JBoss JIRA] (AS7-4872) Linkage error when doing remote JNDI lookup from messaging subsystem

jaikiran pai (JIRA) jira-events at lists.jboss.org
Wed May 23 04:42:17 EDT 2012


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

jaikiran pai reassigned AS7-4872:
---------------------------------

    Assignee: jaikiran pai  (was: John Bailey)

    
> Linkage error when doing remote JNDI lookup from messaging subsystem
> --------------------------------------------------------------------
>
>                 Key: AS7-4872
>                 URL: https://issues.jboss.org/browse/AS7-4872
>             Project: Application Server 7
>          Issue Type: Bug
>          Components: Naming
>    Affects Versions: 7.1.2.Final (EAP)
>            Reporter: Jeff Mesnil
>            Assignee: jaikiran pai
>            Priority: Minor
>
> Working on AS7-4626 to add JMS bridge, the messaging subsystem now need to perform remote JNDI lookup on another AS7 instances.
> I added the org.jboss.remote-naming to the org.jboss.as.messaging to be able to load org.jboss.naming.remote.client.InitialContextFactory.
> However this creates a Linkage error:
> 09:45:42,100 WARN  [org.jboss.modules] (MSC service thread 1-4) Failed to define class org.jboss.naming.remote.client.ejb.RemoteNamingEjbClientContextSelector in Module "org.jboss.remote-naming:main" from local module loader @a94884d (roots: /home/jmesnil/Developer/jboss-as/build/target/jboss-as-7.2.0.Alpha1-SNAPSHOT/modules): java.lang.LinkageError: Failed to link org/jboss/naming/remote/client/ejb/RemoteNamingEjbClientContextSelector (Module "org.jboss.remote-naming:main" from local module loader @a94884d (roots: /home/jmesnil/Developer/jboss-as/build/target/jboss-as-7.2.0.Alpha1-SNAPSHOT/modules))
>         at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:396)
>         at org.jboss.modules.ModuleClassLoader.loadClassLocal(ModuleClassLoader.java:243)
>         at org.jboss.modules.ModuleClassLoader$1.loadClassLocal(ModuleClassLoader.java:73)
>         at org.jboss.modules.Module.loadModuleClass(Module.java:527)
>         at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:182)
>         at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:468)
>         at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:456)
>         at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398)
>         at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:120)
>         at org.jboss.naming.remote.client.InitialContextFactory.<clinit>(InitialContextFactory.java:118) [jboss-remote-naming-1.0.3.Final.jar:1.0.3.Final]
>         at java.lang.Class.forName0(Native Method) [rt.jar:1.6.0_24]
>         at java.lang.Class.forName(Class.java:264) [rt.jar:1.6.0_24]
>         at org.jboss.as.naming.InitialContextFactoryBuilder.createInitialContextFactory(InitialContextFactoryBuilder.java:61) [jboss-as-naming-7.2.0.Alpha1-SNAPSHOT.jar:7.2.0.Alpha1-SNAPSHOT]
>         at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:681) [rt.jar:1.6.0_24]
>         at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:305) [rt.jar:1.6.0_24]
>         at javax.naming.InitialContext.init(InitialContext.java:240) [rt.jar:1.6.0_24]
>         at javax.naming.InitialContext.<init>(InitialContext.java:214) [rt.jar:1.6.0_24]
>         at org.hornetq.jms.bridge.impl.JNDIFactorySupport.createObject(JNDIFactorySupport.java:55) [hornetq-jms-2.2.16.Final.jar:2.2.16.Final (HQ_2_2_16_FINAL, 122)]
>         at org.hornetq.jms.bridge.impl.JNDIDestinationFactory.createDestination(JNDIDestinationFactory.java:40) [hornetq-jms-2.2.16.Final.jar:2.2.16.Final (HQ_2_2_16_FINAL, 122)]
>         at org.hornetq.jms.bridge.impl.JMSBridgeImpl.setupJMSObjects(JMSBridgeImpl.java:1083) [hornetq-jms-2.2.16.Final.jar:2.2.16.Final (HQ_2_2_16_FINAL, 122)]
>         at org.hornetq.jms.bridge.impl.JMSBridgeImpl.start(JMSBridgeImpl.java:348) [hornetq-jms-2.2.16.Final.jar:2.2.16.Final (HQ_2_2_16_FINAL, 122)]
>         at org.jboss.as.messaging.jms.bridge.JMSBridgeService.start(JMSBridgeService.java:57) [jboss-as-messaging-7.2.0.Alpha1-SNAPSHOT.jar:7.2.0.Alpha1-SNAPSHOT]
>         at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811) [jboss-msc-1.0.2.GA.jar:1.0.2.GA]
>         at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746) [jboss-msc-1.0.2.GA.jar:1.0.2.GA]
>         at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) [rt.jar:1.6.0_24]
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) [rt.jar:1.6.0_24]
>         at java.lang.Thread.run(Thread.java:679) [rt.jar:1.6.0_24]
> Caused by: java.lang.NoClassDefFoundError: org/jboss/ejb/client/ContextSelector
>         at java.lang.ClassLoader.defineClass1(Native Method) [rt.jar:1.6.0_24]
>         at java.lang.ClassLoader.defineClass(ClassLoader.java:634) [rt.jar:1.6.0_24]
>         at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) [rt.jar:1.6.0_24]
>         at org.jboss.modules.ModuleClassLoader.doDefineOrLoadClass(ModuleClassLoader.java:327)
>         at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:391)
>         ... 26 more
> Caused by: java.lang.ClassNotFoundException: org.jboss.ejb.client.ContextSelector from [Module "org.jboss.remote-naming:main" from local module loader @a94884d (roots: /home/jmesnil/Developer/jboss-as/build/target/jboss-as-7.2.0.Alpha1-SNAPSHOT/modules)]
>         at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:190)
>         at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:468)
>         at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:456)
>         at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:423)
>         at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:423)
>         at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398)
>         at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:120)
>         ... 31 more
> This error does not prevent doing remote lookups but looks ugly when starting the JMS bridge...
> org.jboss.naming.remote.client.InitialContextFactory is trying to load org.jboss.naming.remote.client.ejb.RemoteNamingEjbClientContextSelector 
> in its static initialization block.
> This class depends on org.jboss.ejb.client.ContextSelector which is in the org.jboss.ejb-client module.
> I don't want to add a dependency from org.jboss.as.messaging to org.jboss.ejb-client if I can avoid it.
> The org.jboss.naming.remote.client.InitialContextFactory defines a SETUP_EJB_CONTEXT property that I could set to false but this property is checked after trying to load the ejb-client class in the static block. afaict, loading the class only after checking the property would be enough to prevent having this error being displayed

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the jboss-jira mailing list