As per this thread:
Currently RestEasy creates proxy classes and attempts to create their instances – this will fail in jigsaw.
RestEasy creates this proxy cache in InjectorFactoryImpl.createContextProxy, but its only reason to exist is (presumably) to keep a cache of proxy classes for the same set of
interfaces (it later calls ContextParameterInjector with a cached proxy class). This doesn't look correct to me as Proxy.newProxyInstance will reuse proxy classes internally anyway. This entire caching can be deleted and Proxy.newProxyInstance can be called in ContextParameterInjector.