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

Remoting dependency on jboss-modules must be optional

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • Blocker
    • 7.1.0.DR13
    • 7.1.0.DR10, 7.1.0.DR11
    • Remoting

    Description

      After https://github.com/jboss-remoting/jboss-remoting/commit/17e8ecf745686673eeaab46014c5f134c6d10324, JBoss Remoting depends on jboss-modules, but the scope specified is provided. However, that means when Remoting is used for standalone clients, eg. in the case of EJB client, this artifact needs to be added to the classpath explicitly, otherwise the client will fail with something like

      Exception in thread "main" java.lang.NoClassDefFoundError: org/jboss/modules/ModuleLoadException
      	at org.jboss.remoting3.EndpointBuilder.build(EndpointBuilder.java:117)
      	at org.jboss.remoting3.RemotingXmlParser.parseEndpoint(RemotingXmlParser.java:53)
      	at org.jboss.remoting3.ConfigurationEndpointSupplier.lambda$static$0(ConfigurationEndpointSupplier.java:44)
      	at java.security.AccessController.doPrivileged(Native Method)
      	at org.jboss.remoting3.ConfigurationEndpointSupplier.<clinit>(ConfigurationEndpointSupplier.java:42)
      	at org.wildfly.common.context.ContextManager.setGlobalDefaultSupplierIfNotSet(ContextManager.java:108)
      	at org.jboss.remoting3.Endpoint.lambda$static$0(Endpoint.java:58)
      	at java.security.AccessController.doPrivileged(Native Method)
      	at org.jboss.remoting3.Endpoint.<clinit>(Endpoint.java:56)
      	at org.jboss.ejb.client.remoting.EndpointPool.getEndpoint(EndpointPool.java:89)
      	at org.jboss.ejb.client.remoting.RemotingEndpointManager.getEndpoint(RemotingEndpointManager.java:49)
      	at org.jboss.ejb.client.remoting.ConfigBasedEJBClientContextSelector.setupEJBReceivers(ConfigBasedEJBClientContextSelector.java:136)
      	at org.jboss.ejb.client.remoting.ConfigBasedEJBClientContextSelector.getCurrent(ConfigBasedEJBClientContextSelector.java:118)
      	at org.jboss.ejb.client.naming.ejb.EjbNamingContext.createIdentifiableEjbClientContext(EjbNamingContext.java:258)
      	at org.jboss.ejb.client.naming.ejb.EjbNamingContext.setupScopedEjbClientContextIfNeeded(EjbNamingContext.java:123)
      	at org.jboss.ejb.client.naming.ejb.EjbNamingContext.<init>(EjbNamingContext.java:98)
      	at org.jboss.ejb.client.naming.ejb.ejbURLContextFactory.getObjectInstance(ejbURLContextFactory.java:38)
      	at javax.naming.spi.NamingManager.getURLObject(NamingManager.java:601)
      	at javax.naming.spi.NamingManager.getURLContext(NamingManager.java:550)
      	at javax.naming.InitialContext.getURLOrDefaultInitCtx(InitialContext.java:345)
      	at javax.naming.InitialContext.lookup(InitialContext.java:417)
      	at client.Client.main(Client.java:19)
      Caused by: java.lang.ClassNotFoundException: org.jboss.modules.ModuleLoadException
      	at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
      	at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
      	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
      	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
      	... 22 more
      

      The scope should be changed to compile I think so that client applications which used remoting 4 can be seamlessly migrated to remoting 5 without needing to change their pom.

      Attachments

        Issue Links

          Activity

            People

              dlloyd@redhat.com David Lloyd
              jmartisk@redhat.com Jan Martiska
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: