googleads / googleads/googleads-java-lib

AdManagerServices problem when using with JDK17

Open
#284 3 comments 0 reactions 1 assignee View on GitHub

@christopherseeley is already working on this.

Since Aug 20, 2025.

Dominant language
Java
Stars
234
Forks
360
PR merge metrics
No merged PRs in 30d

Description

Hi all,

My team and I are migrating to JDK 17 from JDK 8 and we are currently getting this error when trying to use any of the Google AdManager services.

java.lang.NoClassDefFoundError - Could not initialize class com.google.api.ads.admanager.axis.factory.AdManagerServices

We can also see this in the stack trace:
Root Exception stack trace: java.lang.ExceptionInInitializerError: Exception com.google.inject.CreationException at com.google.inject.internal.Errors.throwCreationExceptionIfErrorsExist(Errors.java:589) at com.google.inject.internal.InternalInjectorCreator.injectDynamically(InternalInjectorCreator.java:190) at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:113) at com.google.inject.Guice.createInjector(Guice.java:87) at com.google.inject.Guice.createInjector(Guice.java:69) at com.google.inject.Guice.createInjector(Guice.java:59) at com.google.api.ads.admanager.axis.factory.AdManagerServices.<clinit>(AdManagerServices.java:42) at admanager.axis.v202408.createcreativesfromtemplates.getIdCreative(createcreativesfromtemplates.java:193) 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:569) at org.mule.extensions.java.internal.util.MethodInvoker.doInvoke(MethodInvoker.java:99) at org.mule.extensions.java.internal.util.MethodInvoker.invokeMethod(MethodInvoker.java:85) at org.mule.extensions.java.internal.util.MethodInvoker.invokeMethod(MethodInvoker.java:49) at org.mule.extensions.java.internal.operation.JavaInvokeOperations.invokeStatic(JavaInvokeOperations.java:118) at org.mule.extensions.java.internal.operation.JavaInvokeOperations$invokeStatic$MethodComponentExecutor_m4_large_account_api_uat_4_6.execute(Unknown Source) at org.mule.runtime.extensions.support@4.6.14/org.mule.runtime.module.extension.internal.runtime.execution.GeneratedMethodComponentExecutor.execute(GeneratedMethodComponentExecutor.java:94) at org.mule.runtime.extensions.support@4.6.14/org.mule.runtime.module.extension.internal.runtime.execution.CompletableMethodOperationExecutor.doExecute(CompletableMethodOperationExecutor.java:26) at org.mule.runtime.extensions.support@4.6.14/org.mule.runtime.module.extension.internal.runtime.execution.AbstractCompletableMethodOperationExecutor.execute(AbstractCompletableMethodOperationExecutor.java:61) at org.mule.runtime.extensions.support@4.6.14/org.mule.runtime.module.extension.internal.runtime.operation.DefaultExecutionMediator.executeCommand(DefaultExecutionMediator.java:254) at org.mule.runtime.extensions.support@4.6.14/org.mule.runtime.module.extension.internal.runtime.operation.DefaultExecutionMediator.executeWithInterceptors(DefaultExecutionMediator.java:237) at org.mule.runtime.extensions.support@4.6.14/org.mule.runtime.module.extension.internal.runtime.operation.DefaultExecutionMediator.lambda$execute$1(DefaultExecutionMediator.java:144) at org.mule.runtime.extensions.support@4.6.14/org.mule.runtime.module.extension.internal.runtime.operation.DefaultExecutionMediator.lambda$new$0(DefaultExecutionMediator.java:80) at org.mule.runtime.extensions.support@4.6.14/org.mule.runtime.module.extension.internal.runtime.operation.DefaultExecutionMediator.withExecutionTemplate(DefaultExecutionMediator.java:335) at org.mule.runtime.extensions.support@4.6.14/org.mule.runtime.module.extension.internal.runtime.operation.DefaultExecutionMediator.execute(DefaultExecutionMediator.java:143) at org.mule.runtime.extensions.support@4.6.14/org.mule.runtime.module.extension.internal.runtime.operation.ComponentMessageProcessor.executeOperation(ComponentMessageProcessor.java:579) at org.mule.runtime.extensions.support@4.6.14/org.mule.runtime.module.extension.internal.runtime.operation.ComponentMessageProcessor.prepareAndExecuteOperation(ComponentMessageProcessor.java:823) at org.mule.runtime.extensions.support@4.6.14/org.mule.runtime.module.extension.internal.runtime.operation.ComponentMessageProcessor.lambda$onEventSynchronous$16(ComponentMessageProcessor.java:481) at org.mule.runtime.extensions.support@4.6.14/org.mule.runtime.module.extension.internal.runtime.operation.ComponentMessageProcessor.onEventSynchronous(ComponentMessageProcessor.java:488) at org.mule.runtime.extensions.support@4.6.14/org.mule.runtime.module.extension.internal.runtime.operation.ComponentMessageProcessor.lambda$createOuterFlux$6(ComponentMessageProcessor.java:397) at reactor.core@3.4.22/reactor.core.publisher.FluxPeekFuseable$PeekFuseableConditionalSubscriber.onNext(FluxPeekFuseable.java:489) at reactor.core@3.4.22/reactor.core.publisher.FluxHandleFuseable$HandleFuseableConditionalSubscriber.onNext(FluxHandleFuseable.java:502) at reactor.core@3.4.22/reactor.core.publisher.FluxPeekFuseable$PeekFuseableConditionalSubscriber.onNext(FluxPeekFuseable.java:503) at org.mule.runtime.core@4.6.14/org.mule.runtime.core.privileged.processor.chain.AbstractMessageProcessorChain$2.onNext(AbstractMessageProcessorChain.java:630) at org.mule.runtime.core@4.6.14/org.mule.runtime.core.privileged.processor.chain.AbstractMessageProcessorChain$2.onNext(AbstractMessageProcessorChain.java:625) at reactor.core@3.4.22/reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) at reactor.core@3.4.22/reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber.onNext(FluxPeekFuseable.java:210) at reactor.core@3.4.22/reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.onNext(FluxOnAssembly.java:539) at reactor.core@3.4.22/reactor.core.publisher.FluxSubscribeOnValue$ScheduledScalar.run(FluxSubscribeOnValue.java:180) at reactor.core@3.4.22/reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:68) at reactor.core@3.4.22/reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:28) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at org.mule.service.scheduler@1.6.14/org.mule.service.scheduler.internal.AbstractRunnableFutureDecorator.doRun(AbstractRunnableFutureDecorator.java:180) at org.mule.service.scheduler@1.6.14/org.mule.service.scheduler.internal.RunnableFutureDecorator.run(RunnableFutureDecorator.java:55) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) at java.base/java.lang.Thread.run(Thread.java:840)

This seems to be an issue related to the Java JSPM introduced with JDK 9+.
Are there any resolutions being worked on?
Best regards

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.