Uploaded image for project: 'WildFly Elytron'
  1. WildFly Elytron
  2. ELY-872

JBoss Modules is not an optional dependency

    XMLWordPrintable

Details

    Description

      WFLY-7864 is an issue hit by the helloworld-jms quickstart example. It is a standalone Java app using plain classpath (JBoss Modules is not present).

      I have found an issue in JBoss Remoting that was causing an issue when JBoss Modules was not present (REM3-244). After patching JBoss Remoting, I see a similar issue with Elytron:

      [WARNING]
      java.lang.reflect.InvocationTargetException
              at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
              at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
              at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
              at java.lang.reflect.Method.invoke(Method.java:498)
              at org.codehaus.mojo.exec.ExecJavaMojo$1.run(ExecJavaMojo.java:297)
              at java.lang.Thread.run(Thread.java:745)
      Caused by: java.lang.ExceptionInInitializerError
              at org.wildfly.security.auth.client.AuthenticationContext.lambda$static$0(AuthenticationContext.java:49)
              at org.wildfly.common.context.ContextManager.getPrivileged(ContextManager.java:205)
              at org.wildfly.security.auth.client.AuthenticationContext.captureCurrent(AuthenticationContext.java:81)
              at org.jboss.remoting3.EndpointImpl.construct(EndpointImpl.java:211)
              at org.jboss.remoting3.EndpointBuilder.build(EndpointBuilder.java:117)
              at org.jboss.remoting3.RemotingXmlParser.parseEndpoint(RemotingXmlParser.java:52)
              at org.jboss.remoting3.ConfigurationEndpointSupplier.lambda$static$0(ConfigurationEndpointSupplier.java:51)
              at java.security.AccessController.doPrivileged(Native Method)
              at org.jboss.remoting3.ConfigurationEndpointSupplier.<clinit>(ConfigurationEndpointSupplier.java:48)
              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.wildfly.naming.client.remote.RemoteNamingProviderFactory.supportsUriScheme(RemoteNamingProviderFactory.java:70)
              at org.wildfly.naming.client.WildFlyRootContext.getProviderContext(WildFlyRootContext.java:318)
              at org.wildfly.naming.client.WildFlyRootContext.lookup(WildFlyRootContext.java:123)
              at org.wildfly.naming.client.WildFlyRootContext.lookup(WildFlyRootContext.java:113)
              at javax.naming.InitialContext.lookup(InitialContext.java:417)
              at org.jboss.as.quickstarts.jms.HelloWorldJMSClient.main(HelloWorldJMSClient.java:62)
              ... 6 more
      Caused by: org.wildfly.security.auth.client.InvalidAuthenticationConfigurationException: java.lang.NoClassDefFoundError: org/jboss/modules/ModuleClassLoader
              at org.wildfly.security.auth.client.DefaultAuthenticationContextProvider.lambda$static$0(DefaultAuthenticationContextProvider.java:44)
              at java.security.AccessController.doPrivileged(Native Method)
              at org.wildfly.security.auth.client.DefaultAuthenticationContextProvider.<clinit>(DefaultAuthenticationContextProvider.java:36)
              ... 25 more
      Caused by: java.lang.NoClassDefFoundError: org/jboss/modules/ModuleClassLoader
              at org.wildfly.security.auth.client.DefaultAuthenticationContextProvider.lambda$static$0(DefaultAuthenticationContextProvider.java:42)
              ... 27 more
      Caused by: java.lang.ClassNotFoundException: org.jboss.modules.ModuleClassLoader
              at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
              at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
              at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
      

      According to Elytron's POM, JBoss Modules should be be optional and a standalone Java app should not require it to be able to use Elytron's client authentication.

      Attachments

        Issue Links

          Activity

            People

              jmesnil1@redhat.com Jeff Mesnil
              jmesnil1@redhat.com Jeff Mesnil
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: