-
Notifications
You must be signed in to change notification settings - Fork 375
Open
Description
I have a standalone server application using Jersey 4.0.0 as Jakarta REST implementation. The dependencies are similar to those I've described in #6041. Trying to call the login method on the server from a client also using Jersey results in the following exception logged in the server:
Dez. 09, 2025 11:01:00 AM org.glassfish.jersey.server.ServerRuntime$Responder process
WARNUNG: An exception mapping did not successfully produce and processed a response. Logging the exception propagated to the default exception mapper.
org.jboss.weld.exceptions.WeldException: WELD-001524: Unable to load proxy class for bean org.glassfish.jersey.inject.cdi.se.bean.ClassBean@5c906d08 with class class org.glassfish.jersey.server.internal.process.RequestProcessingContextReference
at [email protected]/org.jboss.weld.bean.proxy.ProxyFactory.getProxyClass(ProxyFactory.java:424)
at [email protected]/org.jboss.weld.bean.proxy.ProxyFactory.instantiateProxy(ProxyFactory.java:375)
at [email protected]/org.jboss.weld.bean.proxy.ProxyFactory.create(ProxyFactory.java:368)
at [email protected]/org.jboss.weld.bean.proxy.ClientProxyFactory.create(ClientProxyFactory.java:84)
at [email protected]/org.jboss.weld.bean.proxy.ClientProxyProvider.createClientProxy(ClientProxyProvider.java:207)
at [email protected]/org.jboss.weld.bean.proxy.ClientProxyProvider.createClientProxy(ClientProxyProvider.java:197)
at [email protected]/org.jboss.weld.bean.proxy.ClientProxyProvider$CreateClientProxy.apply(ClientProxyProvider.java:52)
at [email protected]/org.jboss.weld.bean.proxy.ClientProxyProvider$CreateClientProxy.apply(ClientProxyProvider.java:48)
at [email protected]/org.jboss.weld.util.cache.ReentrantMapBackedComputingCache.lambda$new$0(ReentrantMapBackedComputingCache.java:57)
at [email protected]/org.jboss.weld.util.LazyValueHolder$1.computeValue(LazyValueHolder.java:32)
at [email protected]/org.jboss.weld.util.LazyValueHolder.get(LazyValueHolder.java:46)
at [email protected]/org.jboss.weld.util.cache.ReentrantMapBackedComputingCache.getValue(ReentrantMapBackedComputingCache.java:74)
at [email protected]/org.jboss.weld.util.cache.ReentrantMapBackedComputingCache.getCastValue(ReentrantMapBackedComputingCache.java:80)
at [email protected]/org.jboss.weld.bean.proxy.ClientProxyProvider.getClientProxy(ClientProxyProvider.java:232)
at [email protected]/org.jboss.weld.manager.BeanManagerImpl.getReference(BeanManagerImpl.java:720)
at [email protected]/org.jboss.weld.manager.BeanManagerImpl.getReference(BeanManagerImpl.java:746)
at [email protected]/org.jboss.weld.util.ForwardingBeanManager.getReference(ForwardingBeanManager.java:65)
at [email protected]/org.jboss.weld.bean.builtin.BeanManagerProxy.getReference(BeanManagerProxy.java:89)
at [email protected]/org.glassfish.jersey.inject.cdi.se.CdiSeInjectionManager.getInstanceInternal(CdiSeInjectionManager.java:178)
at [email protected]/org.glassfish.jersey.inject.cdi.se.CdiSeInjectionManager.getInstance(CdiSeInjectionManager.java:161)
at [email protected]/org.glassfish.jersey.server.ApplicationHandler.lambda$initialize$4(ApplicationHandler.java:430)
at [email protected]/org.glassfish.jersey.server.internal.process.ReferencesInitializer.apply(ReferencesInitializer.java:57)
at [email protected]/org.glassfish.jersey.server.internal.process.ReferencesInitializer.apply(ReferencesInitializer.java:31)
at [email protected]/org.glassfish.jersey.process.internal.Stages$LinkedStage.apply(Stages.java:284)
at [email protected]/org.glassfish.jersey.process.internal.Stages.process(Stages.java:173)
at [email protected]/org.glassfish.jersey.server.ServerRuntime$1.run(ServerRuntime.java:266)
at [email protected]/org.glassfish.jersey.internal.Errors$1.call(Errors.java:248)
at [email protected]/org.glassfish.jersey.internal.Errors$1.call(Errors.java:244)
at [email protected]/org.glassfish.jersey.internal.Errors.process(Errors.java:292)
at [email protected]/org.glassfish.jersey.internal.Errors.process(Errors.java:274)
at [email protected]/org.glassfish.jersey.internal.Errors.process(Errors.java:244)
at [email protected]/org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:266)
at [email protected]/org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:253)
at [email protected]/org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:703)
at [email protected]/org.glassfish.jersey.grizzly2.httpserver.GrizzlyHttpContainer.service(GrizzlyHttpContainer.java:374)
at [email protected]/org.glassfish.grizzly.http.server.HttpHandler$1.run(HttpHandler.java:190)
at [email protected]/org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:535)
at [email protected]/org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:515)
at java.base/java.lang.Thread.run(Thread.java:1474)
Caused by: java.lang.IllegalAccessError: superinterface check failed: class org.glassfish.jersey.server.internal.process.RequestProcessingContextReference$Proxy$_$$_WeldClientProxy (in module org.glassfish.jersey.core.server) cannot access class org.jboss.weld.proxy.WeldClientProxy (in module weld.api) because module org.glassfish.jersey.core.server does not read module weld.api
at java.base/java.lang.ClassLoader.defineClass0(Native Method)
at java.base/java.lang.System$1.defineClass(System.java:2050)
at java.base/java.lang.invoke.MethodHandles$Lookup$ClassDefiner.defineClass(MethodHandles.java:2354)
at java.base/java.lang.invoke.MethodHandles$Lookup$ClassDefiner.defineClass(MethodHandles.java:2329)
at java.base/java.lang.invoke.MethodHandles$Lookup.defineClass(MethodHandles.java:1753)
at [email protected]/org.jboss.weld.bean.proxy.util.WeldDefaultProxyServices.defineWithMethodLookup(WeldDefaultProxyServices.java:153)
at [email protected]/org.jboss.weld.bean.proxy.util.WeldDefaultProxyServices.defineClass(WeldDefaultProxyServices.java:62)
at [email protected]/org.jboss.weld.bean.proxy.ProxyFactory.toClass(ProxyFactory.java:975)
at [email protected]/org.jboss.weld.bean.proxy.ProxyFactory.createProxyClass(ProxyFactory.java:509)
at [email protected]/org.jboss.weld.bean.proxy.ProxyFactory.getProxyClass(ProxyFactory.java:416)
... 38 more
With --add-reads org.glassfish.jersey.core.server=weld.api I see almost the same stacktrace, but with a slightly different cause:
(...)
Caused by: java.lang.IllegalAccessError: superinterface check failed: class org.glassfish.jersey.server.internal.process.RequestProcessingContextReference$Proxy$_$$_WeldClientProxy (in module org.glassfish.jersey.core.server) cannot access class org.jboss.weld.proxy.WeldClientProxy (in module weld.api) because module org.glassfish.jersey.core.server does not read module weld.api
at java.base/java.lang.ClassLoader.defineClass0(Native Method)
at java.base/java.lang.System$1.defineClass(System.java:2050)
at java.base/java.lang.invoke.MethodHandles$Lookup$ClassDefiner.defineClass(MethodHandles.java:2354)
at java.base/java.lang.invoke.MethodHandles$Lookup$ClassDefiner.defineClass(MethodHandles.java:2329)
at java.base/java.lang.invoke.MethodHandles$Lookup.defineClass(MethodHandles.java:1753)
at [email protected]/org.jboss.weld.bean.proxy.util.WeldDefaultProxyServices.defineWithMethodLookup(WeldDefaultProxyServices.java:153)
at [email protected]/org.jboss.weld.bean.proxy.util.WeldDefaultProxyServices.defineClass(WeldDefaultProxyServices.java:62)
at [email protected]/org.jboss.weld.bean.proxy.ProxyFactory.toClass(ProxyFactory.java:975)
at [email protected]/org.jboss.weld.bean.proxy.ProxyFactory.createProxyClass(ProxyFactory.java:509)
at [email protected]/org.jboss.weld.bean.proxy.ProxyFactory.getProxyClass(ProxyFactory.java:416)
... 38 more
To get rid of this exception I have to start the server application with --add-reads org.glassfish.jersey.core.server=weld.api,weld.core.impl
But:
Why is this necessary? As far as I can see jersey-server doesn't make use of Weld and its libraries, only jersey-cdi2-se.
Metadata
Metadata
Assignees
Labels
No labels