line / armeria

Your go-to microservice framework for any situation, from the creator of Netty et al. You can build any type of microservice leveraging your favorite technologies, including gRPC, Thrift, Kotlin, Retrofit, Reactive Streams, Spring Boot and Dropwizard.
https://armeria.dev
Apache License 2.0
4.79k stars 908 forks source link

Compatibility with armeria and grpc 4.26.0 versions is broken. #5504

Open cj848 opened 6 months ago

cj848 commented 6 months ago

The following exception occurred during application running: When the grpc library was updated GeneratedMessageV3 has been deprecated. link [Java] The base class for generated messages will be GeneratedMessage, not GeneratedMessageV3.

please fix it

  Caused by:
             java.lang.NoClassDefFoundError: Could not initialize class com.linecorp.armeria.server.grpc.DefaultHttpJsonTranscodingOptions
                 at com.linecorp.armeria.server.grpc.HttpJsonTranscodingOptions.of(HttpJsonTranscodingOptions.java:42)
                 at com.linecorp.armeria.server.grpc.GrpcServiceBuilder.<init>(GrpcServiceBuilder.java:129)
                 at com.linecorp.armeria.server.grpc.GrpcService.builder(GrpcService.java:56)
                 at lasco.configuration.ArmeriaConfig.armeriaServerConfigurator$lambda$3(ArmeriaConfig.kt:42)
                 at com.linecorp.armeria.internal.spring.ArmeriaConfigurationUtil.lambda$configureServerWithArmeriaSettings$0(ArmeriaConfigurationUtil.java:140)
                 at com.linecorp.armeria.internal.shaded.guava.collect.ImmutableList.forEach(ImmutableList.java:423)
                 at com.linecorp.armeria.internal.spring.ArmeriaConfigurationUtil.configureServerWithArmeriaSettings(ArmeriaConfigurationUtil.java:140)
                 at com.linecorp.armeria.spring.web.reactive.ArmeriaReactiveWebServerFactory.getWebServer(ArmeriaReactiveWebServerFactory.java:161)
                 at org.springframework.boot.web.reactive.context.WebServerManager.<init>(WebServerManager.java:50)
                 at org.springframework.boot.web.reactive.context.ReactiveWebServerApplicationContext.createWebServer(ReactiveWebServerApplicationContext.java:96)
                 at org.springframework.boot.web.reactive.context.ReactiveWebServerApplicationContext.onRefresh(ReactiveWebServerApplicationContext.java:81)
                 ...98 more

                 Caused by:
                 java.lang.ExceptionInInitializerError: Exception java.lang.NoClassDefFoundError: com/google/protobuf/GeneratedMessageV3 [in thread "Test worker"]
                     at java.base/java.lang.ClassLoader.defineClass1(Native Method)
                     at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1027)
                     at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:150)
                    ... more
jrhee17 commented 5 months ago

Armeria's gRPC module depends heavily on grpc-java. We'll probably move on to protobuf 26.0 once grpc-java also moves on.

https://github.com/grpc/grpc-java/blob/34e241a60e7dd54195daaec3a16decae0dd702cc/gradle/libs.versions.toml#L8