Uploaded image for project: 'WildFly'
  1. WildFly
  2. WFLY-14734

Remote EJB client fails under Java 16

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • Major
    • None
    • 18.0.1.Final, 23.0.1.Final
    • EJB
    • None
    • Hide

      Lookup a remote EJB from a client running on Java 16:

      lookup = (T) initialContext.lookup(jndiBinding);
      Show
      Lookup a remote EJB from a client running on Java 16: lookup = (T) initialContext.lookup(jndiBinding);
    • Undefined

    Description

       

      Upgrading a client application from Java 15 to Java 16 connecting to remote EJB on a WildFly server fails with this error:

       

       

      2021-04-23 09:53:07,371 [THREAD ID=main] INFO org.wildfly.naming.client.Version:57 - WildFly Naming version 1.0.14.Final
      2021-04-23 09:53:07,418 [THREAD ID=main] INFO org.wildfly.security.Version:55 - ELY00001: WildFly Elytron version 1.15.3.Final
      2021-04-23 09:53:07,475 [THREAD ID=main] INFO org.xnio.Xnio:95 - XNIO version 3.8.4.Final
      2021-04-23 09:53:07,488 [THREAD ID=main] INFO org.xnio.nio.NioXnio:58 - XNIO NIO Implementation Version 3.8.4.Final
      2021-04-23 09:53:07,603 [THREAD ID=main] INFO org.jboss.threads.Version:52 - JBoss Threads version 2.4.0.Final
      2021-04-23 09:53:07,628 [THREAD ID=main] INFO org.jboss.remoting3.EndpointImpl:99 - JBoss Remoting version 5.0.20.Final
      2021-04-23 09:53:07,662 [THREAD ID=main] INFO org.jboss.ejb.client.EJBClient:51 - JBoss EJB Client version 4.0.39.Final
      java.lang.reflect.InaccessibleObjectException: Unable to make field private static final java.lang.reflect.Method jdk.proxy2.$Proxy5.m0 accessible: module jdk.proxy2 does not "opens jdk.proxy2" to unnamed module @24c22fe
       at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:357)
       at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:297)
       at java.base/java.lang.reflect.Field.checkCanSetAccessible(Field.java:177)
       at java.base/java.lang.reflect.Field.setAccessible(Field.java:171)
       at org.jboss.ejb.client.EJBProxyInformation$1.doCompute(EJBProxyInformation.java:101)
       at org.jboss.ejb.client.EJBProxyInformation$1.computeValue(EJBProxyInformation.java:72)
       at org.jboss.ejb.client.EJBProxyInformation$1.computeValue(EJBProxyInformation.java:66)
       at java.base/java.lang.ClassValue.getFromHashMap(ClassValue.java:228)
       at java.base/java.lang.ClassValue.getFromBackup(ClassValue.java:210)
       at java.base/java.lang.ClassValue.get(ClassValue.java:116)
       at org.jboss.ejb.client.EJBProxyInformation.forViewType(EJBProxyInformation.java:242)
       at org.jboss.ejb.client.EJBLocator.getProxyInformation(EJBLocator.java:375)
       at org.jboss.ejb.client.EJBLocator.getProxyConstructor(EJBLocator.java:370)
       at org.jboss.ejb.client.EJBLocator.createProxyInstance(EJBLocator.java:387)
       at org.jboss.ejb.client.EJBClient.createProxy(EJBClient.java:161)
       at org.jboss.ejb.client.EJBRootContext.lookupNative(EJBRootContext.java:166)
       at org.wildfly.naming.client.AbstractContext.lookup(AbstractContext.java:84)
       at org.wildfly.naming.client.WildFlyRootContext.lookup(WildFlyRootContext.java:144)
       at java.naming/javax.naming.InitialContext.lookup(InitialContext.java:409)

      This seems related to JEP-396

      • Code that uses reflection to access private fields of exported java.* APIs will no longer work by default. For example,
         {{var ks = java.security.KeyStore.getInstance("jceks");
        var f = ks.getClass().getDeclaredField("keyStoreSpi");
        f.setAccessible(true);}}
        will fail with an exception of the form
         {{Exception in thread "main" java.lang.reflect.InaccessibleObjectException:
        Unable to make field private java.security.KeyStoreSpi
        java.security.KeyStore.keyStoreSpi accessible: module java.base does
        not "opens java.security" to unnamed module @6e2c634b}}

      I realize that WildFly does not support Java 16 yet

       

      Attachments

        Activity

          People

            cfang@redhat.com Cheng Fang
            guillaume.toison@tobam.fr Guillaume Toison (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: