Uploaded image for project: 'RESTEasy'
  1. RESTEasy
  2. RESTEASY-3598

ClassNotFoundException for org.jboss.resteasy.client.jaxrs.internal.proxy.ProxyBuilderImpl

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Major Major
    • 6.2.14.Final, 7.0.0.Final
    • None
    • None
    • None

      I'm having a difficult time with an issue on context related to resteasy-client-api 6.2.4. For some reason I'm getting this exception.

      2025-03-12 13:40:47,863 {HH:mm:ss.SSS} [ForkJoinPool.commonPool-worker-7] ERROR c.i.c.u.p.e.l.InterceptorWorker - An error occurred while processing an event
      java.lang.RuntimeException: Invocation target error for method [search]
              at XXXX (BasePresenter.java:306)
              at XXXX (InterceptorWorker.java:502)
              at XXXX (InterceptorWorker.java:151)
              at XXXX.thread.UIFuture.lambda$run$2(UIFuture.java:153)
              at java.base/java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1804)
              at java.base/java.util.concurrent.CompletableFuture$AsyncRun.exec(CompletableFuture.java:1796)
              at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:373)
              at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1182)
              at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1655)
              at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1622)
              at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:165)
      Caused by: java.lang.reflect.InvocationTargetException: null
              at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
              at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
              at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
              at java.base/java.lang.reflect.Method.invoke(Method.java:568)
              at XXXX
              ... 10 common frames omitted
      Caused by: java.lang.RuntimeException: java.lang.ClassNotFoundException: org.jboss.resteasy.client.jaxrs.internal.proxy.ProxyBuilderImpl
              at org.jboss.resteasy.client.jaxrs.ProxyBuilder.builder(ProxyBuilder.java:36)
              at org.jboss.resteasy.client.jaxrs.internal.ClientWebTarget.createProxyBuilder(ClientWebTarget.java:99)
              at org.jboss.resteasy.client.jaxrs.internal.ClientWebTarget.proxy(ClientWebTarget.java:87)
              at org.keycloak.admin.client.spi.ResteasyClientClassicProvider.targetProxy(ResteasyClientClassicProvider.java:48)
              at org.keycloak.admin.client.Keycloak.realms(Keycloak.java:142)
              at org.keycloak.admin.client.Keycloak.realm(Keycloak.java:146)
              at XXXX (KeycloakGroupAcquirer.java:207)
              at XXXX
              at XXXX
              ... 15 common frames omitted
      Caused by: java.lang.ClassNotFoundException: org.jboss.resteasy.client.jaxrs.internal.proxy.ProxyBuilderImpl
              at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
              at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
              at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:525)
              at org.jboss.resteasy.client.jaxrs.ProxyBuilder.builder(ProxyBuilder.java:32)
              ... 23 common frames omitted
      

      In org.jboss.resteasy.client.jaxrs.ProxyBuilder, there's this line of code.

      Class clazz = loader.loadClass("org.jboss.resteasy.client.jaxrs.internal.proxy.ProxyBuilderImpl");

      This line is failing and it's unable to find the class. The class is in resteasy-client.

      Before this line of code occurs, there's loader = Thread.currentThread().getContextClassLoader(); which get's the loader to find ProxyBuilderImpl. Now if I do Thread.currentThread().setContextClassLoader(org.jboss.resteasy.client.jaxrs.ProxyBuilder.class.getClassLoader()); before that line is called, everything works fine. What I'm confused by is why the loader can't resolve the class. My build does contain resteasy-client and resteasy-client-api in my build and deployment.

      As a note, I'm using Java 17 Jakarta in Jetty 12 standalone server and I've been upgrading from resteasy 3.0.24 and from Spring Boot 2.3.4 to 3.4.3.

      I'm sure this is a dependency issue of some sort but I don't know what is causing this. If anyone have any ideas, I would appreciate it.

              jperkins-rhn James Perkins
              jperkins-rhn James Perkins
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Created:
                Updated:
                Resolved: