Description
Hi,
The library has been used to connect Rundeck to Gitlab in a small Java project that uses Quarkus and GraalVM. It simply returns some basic info (like tags and branches, the current user) and this all works EXCEPT when you build a native image and try to connect. Then there's an error about the InjectionManagerFactory not found.
Problem arises only when using the native image, not the fatjar, ...
2021-03-22 10:50:45,897 INFO [io.quarkus] (main) rundeck-gitlab-connector 1.6.0-SNAPSHOT native (powered by Quarkus 1.12.2.Final) started in 0.597s. Listening on: http://0.0.0.0:8080
2021-03-22 10:50:45,898 INFO [io.quarkus] (main) Profile prod activated.
2021-03-22 10:50:45,898 INFO [io.quarkus] (main) Installed features: [cdi, resteasy, resteasy-jackson]
2021-03-22 10:51:12,157 ERROR [io.qua.ver.htt.run.QuarkusErrorHandler] (executor-thread-1) HTTP Request to /user failed, error id: 510aee19-778b-4323-b991-c93d1408bbd1-1: org.jboss.resteasy.spi.UnhandledException: org.gitlab4j.api.GitLabApiException: InjectionManagerFactory not found.
at org.jboss.resteasy.core.ExceptionHandler.handleApplicationException(ExceptionHandler.java:106)
at org.jboss.resteasy.core.ExceptionHandler.handleException(ExceptionHandler.java:372)
at org.jboss.resteasy.core.SynchronousDispatcher.writeException(SynchronousDispatcher.java:218)
at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:519)
at org.jboss.resteasy.core.SynchronousDispatcher.lambda$invoke$4(SynchronousDispatcher.java:261)
at org.jboss.resteasy.core.SynchronousDispatcher.lambda$preprocess$0(SynchronousDispatcher.java:161)
at org.jboss.resteasy.core.interception.jaxrs.PreMatchContainerRequestContext.filter(PreMatchContainerRequestContext.java:364)
at org.jboss.resteasy.core.SynchronousDispatcher.preprocess(SynchronousDispatcher.java:164)
at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:247)
at io.quarkus.resteasy.runtime.standalone.RequestDispatcher.service(RequestDispatcher.java:73)
at io.quarkus.resteasy.runtime.standalone.VertxRequestHandler.dispatch(VertxRequestHandler.java:138)
at io.quarkus.resteasy.runtime.standalone.VertxRequestHandler.access$000(VertxRequestHandler.java:41)
at io.quarkus.resteasy.runtime.standalone.VertxRequestHandler$1.run(VertxRequestHandler.java:93)
at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2415)
at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1452)
at org.jboss.threads.DelegatingRunnable.run(DelegatingRunnable.java:29)
at org.jboss.threads.ThreadLocalResettingRunnable.run(ThreadLocalResettingRunnable.java:29)
at java.lang.Thread.run(Thread.java:834)
at org.jboss.threads.JBossThread.run(JBossThread.java:501)
at com.oracle.svm.core.thread.JavaThreads.threadStartRoutine(JavaThreads.java:519)
at com.oracle.svm.core.windows.WindowsJavaThreads.osThreadStartRoutine(WindowsJavaThreads.java:138)
Caused by: org.gitlab4j.api.GitLabApiException: InjectionManagerFactory not found.
at org.gitlab4j.api.AbstractApi.handle(AbstractApi.java:655)
at org.gitlab4j.api.AbstractApi.get(AbstractApi.java:215)
at org.gitlab4j.api.UserApi.getCurrentUser(UserApi.java:670)
at online.vindevoy.foss.rundeckGitlabConnector.services.UserService.getCurrentUser(UserService.java:16)
at online.vindevoy.foss.rundeckGitlabConnector.services.UserService_ClientProxy.getCurrentUser(UserService_ClientProxy.zig:188)
at online.vindevoy.foss.rundeckGitlabConnector.resources.UserResource.user(UserResource.java:22)
at java.lang.reflect.Method.invoke(Method.java:566)
at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:170)
at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:130)
at org.jboss.resteasy.core.ResourceMethodInvoker.internalInvokeOnTarget(ResourceMethodInvoker.java:643)
at org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTargetAfterFilter(ResourceMethodInvoker.java:507)
at org.jboss.resteasy.core.ResourceMethodInvoker.lambda$invokeOnTarget$2(ResourceMethodInvoker.java:457)
at org.jboss.resteasy.core.interception.jaxrs.PreMatchContainerRequestContext.filter(PreMatchContainerRequestContext.java:364)
at org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTarget(ResourceMethodInvoker.java:459)
at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:419)
at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:393)
at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:68)
at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:492)
... 17 more
Caused by: java.lang.IllegalStateException: InjectionManagerFactory not found.
at org.glassfish.jersey.internal.inject.Injections.lambda$lookupInjectionManagerFactory$0(Injections.java:74)
at java.util.Optional.orElseThrow(Optional.java:408)
at org.glassfish.jersey.internal.inject.Injections.lookupInjectionManagerFactory(Injections.java:74)
at org.glassfish.jersey.internal.inject.Injections.createInjectionManager(Injections.java:44)
at org.glassfish.jersey.client.ClientConfig$State.initRuntime(ClientConfig.java:412)
at org.glassfish.jersey.internal.util.collection.Values$LazyValueImpl.get(Values.java:317)
at org.glassfish.jersey.client.ClientConfig.getRuntime(ClientConfig.java:807)
at org.glassfish.jersey.client.ClientRequest.getClientRuntime(ClientRequest.java:219)
at org.glassfish.jersey.client.ClientRequest.getInjectionManager(ClientRequest.java:610)
at org.glassfish.jersey.client.JerseyWebTarget.onBuilder(JerseyWebTarget.java:364)
at org.glassfish.jersey.client.JerseyWebTarget.request(JerseyWebTarget.java:192)
at org.glassfish.jersey.client.JerseyWebTarget.request(JerseyWebTarget.java:36)
at org.gitlab4j.api.GitLabApiClient.invocation(GitLabApiClient.java:796)
at org.gitlab4j.api.GitLabApiClient.invocation(GitLabApiClient.java:761)
at org.gitlab4j.api.GitLabApiClient.get(GitLabApiClient.java:412)
at org.gitlab4j.api.GitLabApiClient.get(GitLabApiClient.java:400)
at org.gitlab4j.api.AbstractApi.get(AbstractApi.java:213)
... 33 more