Comments (5)
According to this dependency graph the old version is added via io.grpc.grpc-protobuf.
However if I look at the related pom it mentions a newer version of guava.
See: http://central.maven.org/maven2/io/grpc/grpc-protobuf/1.17.1/grpc-protobuf-1.17.1.pom
Please check
- whether the dependency tree output remains the same if you update the related maven plugin (see warning)
- whether the official pom matches your local copy
- whether you have any dependency management or parent pom entries that might overrule that dependency version
from grpc-spring.
@magg dependencies conflict.
grpc-java 1.1.2 version requires guava 20.0 version.
I fix it. #23
from grpc-spring.
I've found the same issue while using the latest Eureka client (2.1.0.RELEASE) and net.devh:grpc-spring-boot-starter (2.2.1.RELEASE) server+client version.
adding the latest guava version (27.0.1-jre) seems resolve the issue
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'nettyGrpcChannelFactory' defined in class path resource [net/devh/boot/grpc/client/autoconfigure/GrpcClientAutoConfiguration.class]: Unsatisfied dependency expressed through method 'nettyGrpcChannelFactory' parameter 1; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'grpcLoadBalancerFactory' defined in class path resource [net/devh/boot/grpc/client/autoconfigure/GrpcClientAutoConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [io.grpc.LoadBalancer$Factory]: Factory method 'grpcLoadBalancerFactory' threw exception; nested exception is java.lang.NoClassDefFoundError: com/google/common/base/MoreObjects
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:769) ~[spring-beans-5.1.5.RELEASE.jar:5.1.5.RELEASE]
at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:509) ~[spring-beans-5.1.5.RELEASE.jar:5.1.5.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1305) ~[spring-beans-5.1.5.RELEASE.jar:5.1.5.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1144) ~[spring-beans-5.1.5.RELEASE.jar:5.1.5.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:555) ~[spring-beans-5.1.5.RELEASE.jar:5.1.5.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:515) ~[spring-beans-5.1.5.RELEASE.jar:5.1.5.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:320) ~[spring-beans-5.1.5.RELEASE.jar:5.1.5.RELEASE]
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) ~[spring-beans-5.1.5.RELEASE.jar:5.1.5.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:318) ~[spring-beans-5.1.5.RELEASE.jar:5.1.5.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:224) ~[spring-beans-5.1.5.RELEASE.jar:5.1.5.RELEASE]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveNamedBean(DefaultListableBeanFactory.java:1115) ~[spring-beans-5.1.5.RELEASE.jar:5.1.5.RELEASE]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveBean(DefaultListableBeanFactory.java:407) ~[spring-beans-5.1.5.RELEASE.jar:5.1.5.RELEASE]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java:341) ~[spring-beans-5.1.5.RELEASE.jar:5.1.5.RELEASE]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java:335) ~[spring-beans-5.1.5.RELEASE.jar:5.1.5.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1123) ~[spring-context-5.1.5.RELEASE.jar:5.1.5.RELEASE]
at net.devh.boot.grpc.client.inject.GrpcClientBeanPostProcessor.getChannelFactory(GrpcClientBeanPostProcessor.java:130) ~[grpc-client-spring-boot-autoconfigure-2.2.1.RELEASE.jar:2.2.1.RELEASE]
at net.devh.boot.grpc.client.inject.GrpcClientBeanPostProcessor.processInjectionPoint(GrpcClientBeanPostProcessor.java:110) ~[grpc-client-spring-boot-autoconfigure-2.2.1.RELEASE.jar:2.2.1.RELEASE]
at net.devh.boot.grpc.client.inject.GrpcClientBeanPostProcessor.postProcessBeforeInitialization(GrpcClientBeanPostProcessor.java:77) ~[grpc-client-spring-boot-autoconfigure-2.2.1.RELEASE.jar:2.2.1.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapableBeanFactory.java:414) ~[spring-beans-5.1.5.RELEASE.jar:5.1.5.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1754) ~[spring-beans-5.1.5.RELEASE.jar:5.1.5.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:593) ~[spring-beans-5.1.5.RELEASE.jar:5.1.5.RELEASE]
... 15 common frames omitted
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'grpcLoadBalancerFactory' defined in class path resource [net/devh/boot/grpc/client/autoconfigure/GrpcClientAutoConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [io.grpc.LoadBalancer$Factory]: Factory method 'grpcLoadBalancerFactory' threw exception; nested exception is java.lang.NoClassDefFoundError: com/google/common/base/MoreObjects
at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:627) ~[spring-beans-5.1.5.RELEASE.jar:5.1.5.RELEASE]
at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:456) ~[spring-beans-5.1.5.RELEASE.jar:5.1.5.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1305) ~[spring-beans-5.1.5.RELEASE.jar:5.1.5.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1144) ~[spring-beans-5.1.5.RELEASE.jar:5.1.5.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:555) ~[spring-beans-5.1.5.RELEASE.jar:5.1.5.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:515) ~[spring-beans-5.1.5.RELEASE.jar:5.1.5.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:320) ~[spring-beans-5.1.5.RELEASE.jar:5.1.5.RELEASE]
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) ~[spring-beans-5.1.5.RELEASE.jar:5.1.5.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:318) ~[spring-beans-5.1.5.RELEASE.jar:5.1.5.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) ~[spring-beans-5.1.5.RELEASE.jar:5.1.5.RELEASE]
at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:277) ~[spring-beans-5.1.5.RELEASE.jar:5.1.5.RELEASE]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1247) ~[spring-beans-5.1.5.RELEASE.jar:5.1.5.RELEASE]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1167) ~[spring-beans-5.1.5.RELEASE.jar:5.1.5.RELEASE]
at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:857) ~[spring-beans-5.1.5.RELEASE.jar:5.1.5.RELEASE]
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:760) ~[spring-beans-5.1.5.RELEASE.jar:5.1.5.RELEASE]
... 35 common frames omitted
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [io.grpc.LoadBalancer$Factory]: Factory method 'grpcLoadBalancerFactory' threw exception; nested exception is java.lang.NoClassDefFoundError: com/google/common/base/MoreObjects
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:185) ~[spring-beans-5.1.5.RELEASE.jar:5.1.5.RELEASE]
at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:622) ~[spring-beans-5.1.5.RELEASE.jar:5.1.5.RELEASE]
... 49 common frames omitted
Caused by: java.lang.NoClassDefFoundError: com/google/common/base/MoreObjects
at io.grpc.LoadBalancerProvider.toString(LoadBalancerProvider.java:54) ~[grpc-core-1.17.1.jar:1.17.1]
at java.lang.String.valueOf(String.java:2994) ~[na:1.8.0_192]
at java.lang.StringBuilder.append(StringBuilder.java:131) ~[na:1.8.0_192]
at io.grpc.LoadBalancerRegistry.<init>(LoadBalancerRegistry.java:57) ~[grpc-core-1.17.1.jar:1.17.1]
at io.grpc.LoadBalancerRegistry.getDefaultRegistry(LoadBalancerRegistry.java:92) ~[grpc-core-1.17.1.jar:1.17.1]
at io.grpc.util.RoundRobinLoadBalancerFactory.<init>(RoundRobinLoadBalancerFactory.java:43) ~[grpc-core-1.17.1.jar:1.17.1]
at io.grpc.util.RoundRobinLoadBalancerFactory.getInstance(RoundRobinLoadBalancerFactory.java:52) ~[grpc-core-1.17.1.jar:1.17.1]
at net.devh.boot.grpc.client.autoconfigure.GrpcClientAutoConfiguration.grpcLoadBalancerFactory(GrpcClientAutoConfiguration.java:97) ~[grpc-client-spring-boot-autoconfigure-2.2.1.RELEASE.jar:2.2.1.RELEASE]
at net.devh.boot.grpc.client.autoconfigure.GrpcClientAutoConfiguration$$EnhancerBySpringCGLIB$$f9b04b6f.CGLIB$grpcLoadBalancerFactory$9(<generated>) ~[grpc-client-spring-boot-autoconfigure-2.2.1.RELEASE.jar:2.2.1.RELEASE]
at net.devh.boot.grpc.client.autoconfigure.GrpcClientAutoConfiguration$$EnhancerBySpringCGLIB$$f9b04b6f$$FastClassBySpringCGLIB$$93cfe576.invoke(<generated>) ~[grpc-client-spring-boot-autoconfigure-2.2.1.RELEASE.jar:2.2.1.RELEASE]
at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:244) ~[spring-core-5.1.5.RELEASE.jar:5.1.5.RELEASE]
at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:363) ~[spring-context-5.1.5.RELEASE.jar:5.1.5.RELEASE]
at net.devh.boot.grpc.client.autoconfigure.GrpcClientAutoConfiguration$$EnhancerBySpringCGLIB$$f9b04b6f.grpcLoadBalancerFactory(<generated>) ~[grpc-client-spring-boot-autoconfigure-2.2.1.RELEASE.jar:2.2.1.RELEASE]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_192]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_192]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_192]
at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_192]
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154) ~[spring-beans-5.1.5.RELEASE.jar:5.1.5.RELEASE]
... 50 common frames omitted
Caused by: java.lang.ClassNotFoundException: com.google.common.base.MoreObjects
at java.net.URLClassLoader.findClass(URLClassLoader.java:382) ~[na:1.8.0_192]
at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[na:1.8.0_192]
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349) ~[na:1.8.0_192]
at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[na:1.8.0_192]
... 68 common frames omitted
Process finished with exit code 1
from grpc-spring.
@nicelord Can you check your dependency tree where the old version is referenced? Is there anything we could do to mitigate the problem?
from grpc-spring.
@ST-DDT I'm not sure which one
Here is my dep tree for com.google.guava
mvn org.apache.maven.plugins:maven-dependency-plugin:2.10:tree -Dverbose=true -Dincludes=com.google.guava
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Detecting the operating system and CPU architecture
[INFO] ------------------------------------------------------------------------
[INFO] os.detected.name: windows
[INFO] os.detected.arch: x86_64
[INFO] os.detected.version: 10.0
[INFO] os.detected.version.major: 10
[INFO] os.detected.version.minor: 0
[INFO] os.detected.classifier: windows-x86_64
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building grpc-server 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-dependency-plugin:2.10:tree (default-cli) @ grpc-server ---
[WARNING] Using Maven 2 dependency tree to get verbose output, which may be inconsistent with actual Maven 3 resolution
[INFO] com.example:grpc-server:jar:0.0.1-SNAPSHOT
[INFO] +- net.devh:grpc-spring-boot-starter:jar:2.2.1.RELEASE:compile
[INFO] | \- net.devh:grpc-server-spring-boot-starter:jar:2.2.1.RELEASE:compile
[INFO] | \- net.devh:grpc-server-spring-boot-autoconfigure:jar:2.2.1.RELEASE:compile
[INFO] | +- net.devh:grpc-common-spring-boot:jar:2.2.1.RELEASE:compile
[INFO] | | \- io.grpc:grpc-core:jar:1.17.1:compile
[INFO] | | \- (com.google.guava:guava:jar:26.0-android:compile - omitted for duplicate)
[INFO] | \- io.grpc:grpc-protobuf:jar:1.17.1:compile
[INFO] | +- com.google.guava:guava:jar:16.0.1:compile
[INFO] | \- io.grpc:grpc-protobuf-lite:jar:1.17.1:compile
[INFO] | \- (com.google.guava:guava:jar:26.0-android:compile - omitted for duplicate)
[INFO] \- org.springframework.cloud:spring-cloud-starter-netflix-eureka-client:jar:2.1.0.RELEASE:compile
[INFO] +- com.netflix.eureka:eureka-client:jar:1.9.8:compile
[INFO] | +- com.netflix.netflix-commons:netflix-eventbus:jar:0.3.0:runtime
[INFO] | | \- com.netflix.netflix-commons:netflix-infix:jar:0.3.0:runtime
[INFO] | | \- (com.google.guava:guava:jar:14.0.1:runtime - omitted for conflict with 16.0.1)
[INFO] | +- com.netflix.servo:servo-core:jar:0.12.21:runtime
[INFO] | | \- (com.google.guava:guava:jar:19.0:compile - scope updated from runtime; omitted for duplicate)
[INFO] | \- com.google.inject:guice:jar:4.1.0:runtime
[INFO] | \- (com.google.guava:guava:jar:19.0:compile - scope updated from runtime; omitted for duplicate)
[INFO] +- org.springframework.cloud:spring-cloud-starter-netflix-archaius:jar:2.1.0.RELEASE:compile
[INFO] | \- com.netflix.archaius:archaius-core:jar:0.7.6:compile
[INFO] | \- (com.google.guava:guava:jar:16.0:compile - scope updated from runtime; omitted for duplicate)
[INFO] \- org.springframework.cloud:spring-cloud-starter-netflix-ribbon:jar:2.1.0.RELEASE:compile
[INFO] +- com.netflix.ribbon:ribbon:jar:2.3.0:compile
[INFO] | +- com.netflix.ribbon:ribbon-transport:jar:2.3.0:runtime
[INFO] | | \- (com.google.guava:guava:jar:16.0.1:runtime - omitted for conflict with 16.0.1)
[INFO] | \- (com.google.guava:guava:jar:16.0.1:compile - scope updated from runtime; omitted for duplicate)
[INFO] +- com.netflix.ribbon:ribbon-core:jar:2.3.0:compile
[INFO] | \- (com.google.guava:guava:jar:16.0:compile - scope updated from runtime; omitted for duplicate)
[INFO] +- com.netflix.ribbon:ribbon-httpclient:jar:2.3.0:compile
[INFO] | \- (com.google.guava:guava:jar:16.0.1:compile - scope updated from runtime; omitted for duplicate)
[INFO] \- com.netflix.ribbon:ribbon-loadbalancer:jar:2.3.0:compile
[INFO] \- (com.google.guava:guava:jar:16.0.1:compile - scope updated from runtime; omitted for duplicate)
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 6.104 s
[INFO] Finished at: 2019-03-06T20:45:47+00:00
[INFO] Final Memory: 47M/1014M
[INFO] ------------------------------------------------------------------------
from grpc-spring.
Related Issues (20)
- Is there a time line for v3.0.0 release HOT 1
- A service registers multiple instances on consul through coding. Why can grpc only call the service configured in the configuration file. HOT 1
- Russian translation of docs HOT 6
- manen repository home page HOT 1
- When grpc client is deployed in Kubernetes, what is the usecase of HealthIndicator (actuator/health) that reports the service as OUT_OF_SERVICE if any client has the TRANSIENT_FAILURE status?
- Docs in GrpcChannelProperties not clear about `dns` scheme and have minor other problems HOT 6
- GRPC client fails to start in Spring Cloud environment HOT 13
- A question about Grpc load balancing and long connections HOT 3
- Micrometer throws ArrayIndexOutOfBoundsException exception when the grpc client cannot access a backend with metrics enabled. HOT 2
- Documentation off-line HOT 2
- If an application uses both rest & grpc, How can I opt not to start gRPC server which currently starts automatically with no flag available to stop this.
- Constructor injects bean "array out of bounds exception" use @Qualifier HOT 2
- Support the gRPC metrics defined in gRFC A66.
- How to cancel server request execution as soon as a client cancels a request due to a timeout for example? HOT 2
- How to active create stubs without explicit declarations @GrpcClient("clientName") HOT 3
- Allow creation of meta annotation with @GrpcClient HOT 3
- `GrpcClientMetricAutoConfiguration` breaks system metrics HOT 1
- Error creating bean with name 'grpcHealthService' HOT 5
- Connection closed by server after 20s vs. keep-alive
- Add userAgent property to GrpcChannelProperties HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from grpc-spring.