google-cloud-java icon indicating copy to clipboard operation
google-cloud-java copied to clipboard

google-cloud-translate java.lang.ClassNotFoundException: com.google.cloud.translate.v3beta1.BatchTranslateDocumentResponse

Open energy2522 opened this issue 1 year ago • 3 comments

Hi, I'm trying to use google-cloud-translate library version 2.29.0. I build a client using this code:

final var settings = TranslationServiceSettings.newBuilder()
                .setCredentialsProvider(credentialsProvider).build();

        return TranslationServiceClient.create(settings);

but I got an error saying:

used by: java.lang.NoClassDefFoundError: com/google/cloud/translate/v3beta1/BatchTranslateDocumentResponse
	at com.google.cloud.translate.v3beta1.stub.TranslationServiceStubSettings$Builder.initDefaults(TranslationServiceStubSettings.java:679) ~[google-cloud-translate-2.29.0.jar:2.29.0]
	at com.google.cloud.translate.v3beta1.stub.TranslationServiceStubSettings$Builder.<init>(TranslationServiceStubSettings.java:539) ~[google-cloud-translate-2.29.0.jar:2.29.0]
	at com.google.cloud.translate.v3beta1.stub.TranslationServiceStubSettings$Builder.createDefault(TranslationServiceStubSettings.java:577) ~[google-cloud-translate-2.29.0.jar:2.29.0]
	at com.google.cloud.translate.v3beta1.stub.TranslationServiceStubSettings$Builder.access$100(TranslationServiceStubSettings.java:425) ~[google-cloud-translate-2.29.0.jar:2.29.0]
	at com.google.cloud.translate.v3beta1.stub.TranslationServiceStubSettings.newBuilder(TranslationServiceStubSettings.java:385) ~[google-cloud-translate-2.29.0.jar:2.29.0]
	at com.google.cloud.translate.v3beta1.TranslationServiceSettings$Builder.createDefault(TranslationServiceSettings.java:259) ~[google-cloud-translate-2.29.0.jar:2.29.0]
	at com.google.cloud.translate.v3beta1.TranslationServiceSettings$Builder.access$000(TranslationServiceSettings.java:240) ~[google-cloud-translate-2.29.0.jar:2.29.0]
	at com.google.cloud.translate.v3beta1.TranslationServiceSettings.newBuilder(TranslationServiceSettings.java:216) ~[google-cloud-translate-2.29.0.jar:2.29.0]
	at com.verbaa.server.translation.config.TranslationConfig.translationServiceClient(TranslationConfig.java:24) ~[main/:na]
	at com.verbaa.server.translation.config.TranslationConfig$$SpringCGLIB$$0.CGLIB$translationServiceClient$0(<generated>) ~[main/:na]
	at com.verbaa.server.translation.config.TranslationConfig$$SpringCGLIB$$2.invoke(<generated>) ~[main/:na]
	at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:258) ~[spring-core-6.0.11.jar:6.0.11]
	at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:331) ~[spring-context-6.0.11.jar:6.0.11]
	at com.verbaa.server.translation.config.TranslationConfig$$SpringCGLIB$$0.translationServiceClient(<generated>) ~[main/:na]
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na]
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
	at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[na:na]
	at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:139) ~[spring-beans-6.0.11.jar:6.0.11]
	... 53 common frames omitted
Caused by: java.lang.ClassNotFoundException: com.google.cloud.translate.v3beta1.BatchTranslateDocumentResponse
	at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641) ~[na:na]
	at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188) ~[na:na]
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520) ~[na:na]
	... 72 common frames omitted

The java version is 17, building tool is Gradle.

I tried to add a dependency with this class: 'com.google.api.grpc:proto-google-cloud-translate-v3beta1:0.111.0', but then I got this error:


An attempt was made to call a method that does not exist. The attempt was made from the following location:

    com.google.cloud.translate.v3beta1.stub.TranslationServiceStubSettings.defaultCredentialsProviderBuilder(TranslationServiceStubSettings.java:340)

The following method did not exist:

    'com.google.api.gax.core.GoogleCredentialsProvider$Builder com.google.api.gax.core.GoogleCredentialsProvider$Builder.setUseJwtAccessWithScope(boolean)'

The calling method's class, com.google.cloud.translate.v3beta1.stub.TranslationServiceStubSettings, was loaded from the following location:

    jar:file:/Users/vmaiboroda/.gradle/caches/modules-2/files-2.1/com.google.cloud/google-cloud-translate/2.29.0/a743d41ba82b8ea6c05c0094a687851a1319be20/google-cloud-translate-2.29.0.jar!/com/google/cloud/translate/v3beta1/stub/TranslationServiceStubSettings.class

The called method's class, com.google.api.gax.core.GoogleCredentialsProvider$Builder, is available from the following locations:

    jar:file:/Users/vmaiboroda/.gradle/caches/modules-2/files-2.1/com.google.api/gax/1.60.1/5f41253a28734e9921c9da205f3c9700c80e1e68/gax-1.60.1.jar!/com/google/api/gax/core/GoogleCredentialsProvider$Builder.class

The called method's class hierarchy was loaded from the following locations:

    com.google.api.gax.core.GoogleCredentialsProvider.Builder: file:/Users/vmaiboroda/.gradle/caches/modules-2/files-2.1/com.google.api/gax/1.60.1/5f41253a28734e9921c9da205f3c9700c80e1e68/gax-1.60.1.jar


Action:

Correct the classpath of your application so that it contains compatible versions of the classes com.google.cloud.translate.v3beta1.stub.TranslationServiceStubSettings and com.google.api.gax.core.GoogleCredentialsProvider$Builder

energy2522 avatar Nov 01 '23 22:11 energy2522

How did you declare the dependency? Did you follow one of the ways from the README?

blakeli0 avatar Nov 02 '23 22:11 blakeli0

@blakeli0 I'm using gradle without BOM, so I declare it as dependencies in this way:

	implementation 'com.google.cloud:google-cloud-translate:2.29.0'
	implementation 'com.google.api.grpc:proto-google-cloud-translate-v3beta1:0.111.0'

energy2522 avatar Nov 02 '23 22:11 energy2522

@energy2522 were you able to resolve this? https://cloud.google.com/java/docs/reference/google-cloud-translate/latest/overview#gradle contains Gradle-specific installation instructions that may be useful.

alicejli avatar Jan 30 '24 16:01 alicejli

I assume this is resolved with no further response in last couple of month. Feel free to reopen if this is still an issue for you.

zhumin8 avatar Apr 23 '24 20:04 zhumin8