IIRC RestEasy needs to add a module read to that Class's module it wants to create a Proxy of.

On 07/04/16 14:05, Alan Bateman wrote:
On 07/04/2016 12:39, Dawid Weiss wrote:
I don't want to hijack the other thread, so here's a new one I'm stuck
with. I get this exception (simplified stack trace a bit):

Caused by: java.lang.IllegalAccessException: class
org.jboss.resteasy.core.ContextParameterInjector cannot access class
com.sun.proxy.jdk.proxy2.$Proxy65 (in module jdk.proxy2) because
module jdk.proxy2 does not export com.sun.proxy.jdk.proxy2 to unnamed
module @79ca92b9
at sun.reflect.Reflection.throwIllegalAccessException(java.base@9-ea/Reflection.java:411) at sun.reflect.Reflection.throwIllegalAccessException(java.base@9-ea/Reflection.java:402) at sun.reflect.Reflection.ensureMemberAccess(java.base@9-ea/Reflection.java:99) at java.lang.reflect.AccessibleObject.slowCheckMemberAccess(java.base@9-ea/AccessibleObject.java:355) at java.lang.reflect.AccessibleObject.checkAccess(java.base@9-ea/AccessibleObject.java:347) at java.lang.reflect.Constructor.newInstance(java.base@9-ea/Constructor.java:444) at org.jboss.resteasy.core.ContextParameterInjector.createProxy(ContextParameterInjector.java:94)
... 53 more

I think RestEasy attempts to do create a new instance of a proxy class
here (the complete process here eludes my understanding for now). Any
clues how this can be solved?
I assume it should be using newProxyInstance rather that trying to instantiate the proxy class directly. The reason it can't instantiate it directly is because it has been generated into a "dynamic module" (jdk.proxy2 in this case). I assume you'll find that the proxy was created with an interface that is not in an exported package.

The "Package and Module Membership of Proxy Class" and "Dynamic Modules" sections of the Proxy javadoc [1] has all the details.

-Alan.

[1] http://download.java.net/java/jdk9/docs/api/java/lang/reflect/Proxy.html



Reply via email to