- hibernate
- 由于 io.grpc 的 netty-shaded 中的 NettyTransportFactory,在类路径资源中定义名为“entityManagerFactory”的 bean 时出错
由于 io.grpc 的 netty-shaded 中的 NettyTransportFactory,在类路径资源中定义名为“entityManagerFactory”的 bean 时出错
我正在使用 gcp spanner 和 hibernate。以下是所有依赖项的列表
我正在将 gcp spanner 与 hibernate 一起使用。
以下是所有依赖项的列表
<dependencies>
<dependency>
<artifactId>resilience4j-spring-boot3</artifactId>
<groupId>io.github.resilience4j</groupId>
</dependency>
<dependency>
<artifactId>resilience4j-reactor</artifactId>
<groupId>io.github.resilience4j</groupId>
</dependency>
<dependency>
<artifactId>wiremock-standalone</artifactId>
<groupId>org.wiremock</groupId>
<scope>test</scope>
</dependency>
<dependency>
<artifactId>spring-boot-starter-data-jpa</artifactId>
<groupId>org.springframework.boot</groupId>
</dependency>
<dependency>
<artifactId>google-cloud-spanner-hibernate-dialect</artifactId>
<groupId>com.google.cloud</groupId>
<version>3.4.0</version>
</dependency>
<dependency>
<artifactId>google-cloud-spanner-jdbc</artifactId>
<groupId>com.google.cloud</groupId>
<version>2.20.1</version>
</dependency>
</dependencies>
父依赖和依赖管理
<dependencyManagement>
<dependencies>
<dependency>
<artifactId>resilience4j-spring-boot3</artifactId>
<groupId>io.github.resilience4j</groupId>
<version>${resilience4j.spring3.version}</version>
</dependency>
<dependency>
<artifactId>resilience4j-reactor</artifactId>
<groupId>io.github.resilience4j</groupId>
<version>${resilience4j.spring3.version}</version>
</dependency>
<dependency>
<artifactId>common-library</artifactId>
<groupId>com.sams.payment</groupId>
<version>${project.version}</version>
</dependency>
<dependency>
<artifactId>common-model</artifactId>
<groupId>com.sams.payment</groupId>
<version>${project.version}</version>
</dependency>
<dependency>
<artifactId>authorizer</artifactId>
<groupId>com.sams.payment</groupId>
<version>${project.version}</version>
</dependency>
<dependency>
<artifactId>settlement-processor</artifactId>
<groupId>com.sams.payment</groupId>
<version>${project.version}</version>
</dependency>
<dependency>
<artifactId>giftcard-processor</artifactId>
<groupId>com.sams.payment</groupId>
<version>${project.version}</version>
</dependency>
<dependency>
<artifactId>wiremock-standalone</artifactId>
<groupId>org.wiremock</groupId>
<scope>test</scope>
<version>${wiremock.version}</version>
</dependency>
<dependency>
<artifactId>spring-cloud-dependencies</artifactId>
<groupId>org.springframework.cloud</groupId>
<scope>import</scope>
<type>pom</type>
<version>${spring-cloud.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<artifactId>spring-boot-starter-webflux</artifactId>
<groupId>org.springframework.boot</groupId>
</dependency>
<dependency>
<artifactId>spring-boot-starter-test</artifactId>
<groupId>org.springframework.boot</groupId>
<scope>test</scope>
</dependency>
<dependency>
<artifactId>reactor-test</artifactId>
<groupId>io.projectreactor</groupId>
<scope>test</scope>
</dependency>
<dependency>
<artifactId>lombok</artifactId>
<groupId>org.projectlombok</groupId>
<version>1.18.30</version>
</dependency>
<dependency>
<artifactId>spring-boot-starter-actuator</artifactId>
<groupId>org.springframework.boot</groupId>
</dependency>
<dependency>
<artifactId>micrometer-tracing-bridge-otel</artifactId>
<groupId>io.micrometer</groupId>
</dependency>
<dependency>
<artifactId>spring-boot-starter-aop</artifactId>
<groupId>org.springframework.boot</groupId>
</dependency>
<dependency>
<artifactId>micrometer-registry-prometheus</artifactId>
<groupId>io.micrometer</groupId>
</dependency>
<dependency>
<artifactId>springdoc-openapi-starter-webflux-ui</artifactId>
<groupId>org.springdoc</groupId>
<version>${springdoc.openapi.version}</version>
</dependency>
</dependencies>
<parent>
<artifactId>spring-boot-starter-parent</artifactId>
<groupId>org.springframework.boot</groupId>
<relativePath/>
<version>3.2.1</version> <!-- lookup parent from repository -->
</parent>
<properties>
<java.version>17</java.version>
<maven.compiler.plugin.version>3.9.0</maven.compiler.plugin.version>
<maven.dependency.plugin>3.0.1</maven.dependency.plugin>
<maven.release.plugin.version>2.5.3</maven.release.plugin.version>
<maven.resources.plugin.version>2.7</maven.resources.plugin.version>
<maven.site.plugin.version>3.4</maven.site.plugin.version>
<maven.surefire.plugin.version>3.1.0</maven.surefire.plugin.version>
<maven.war.plugin.version>2.5</maven.war.plugin.version>
<resilience4j.spring3.version>2.0.2</resilience4j.spring3.version>
<skip.unit.tests>false</skip.unit.tests>
<spring-cloud.version>2023.0.3</spring-cloud.version>
<springdoc.openapi.version>2.3.0</springdoc.openapi.version>
<version.jacoco>0.8.8</version.jacoco>
<wiremock.version>3.5.4</wiremock.version>
</properties>
启动应用程序时,我收到以下堆栈跟踪:
2024-09-12 13:11:56.970 | [main] | ERROR | traceId: | o.s.boot.SpringApplication - Application run failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Receiver class io.grpc.netty.shaded.io.grpc.netty.NettyChannelBuilder$NettyTransportFactory does not define or inherit an implementation of the resolved method 'abstract java.util.Collection getSupportedSocketAddressTypes()' of interface io.grpc.internal.ClientTransportFactory.
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1773)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:599)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:521)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:325)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:323)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1232)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:950)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:625)
at org.springframework.boot.web.reactive.context.ReactiveWebServerApplicationContext.refresh(ReactiveWebServerApplicationContext.java:66)
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:762)
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:464)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:334)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1358)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1347)
at com.sams.payment.settlement.AppInitializer.main(AppInitializer.java:15)
Caused by: java.lang.AbstractMethodError: Receiver class io.grpc.netty.shaded.io.grpc.netty.NettyChannelBuilder$NettyTransportFactory does not define or inherit an implementation of the resolved method 'abstract java.util.Collection getSupportedSocketAddressTypes()' of interface io.grpc.internal.ClientTransportFactory.
at io.grpc.internal.CallCredentialsApplyingTransportFactory.getSupportedSocketAddressTypes(CallCredentialsApplyingTransportFactory.java:80)
at io.grpc.internal.ManagedChannelImpl.<init>(ManagedChannelImpl.java:640)
at io.grpc.internal.ManagedChannelImplBuilder.build(ManagedChannelImplBuilder.java:672)
at io.grpc.ForwardingChannelBuilder2.build(ForwardingChannelBuilder2.java:260)
at com.google.api.gax.grpc.InstantiatingGrpcChannelProvider.createSingleChannel(InstantiatingGrpcChannelProvider.java:462)
at com.google.api.gax.grpc.ChannelPool.<init>(ChannelPool.java:107)
at com.google.api.gax.grpc.ChannelPool.create(ChannelPool.java:85)
at com.google.api.gax.grpc.InstantiatingGrpcChannelProvider.createChannel(InstantiatingGrpcChannelProvider.java:256)
at com.google.api.gax.grpc.InstantiatingGrpcChannelProvider.getTransportChannel(InstantiatingGrpcChannelProvider.java:250)
at com.google.api.gax.rpc.ClientContext.create(ClientContext.java:226)
at com.google.cloud.spanner.v1.stub.GrpcSpannerStub.create(GrpcSpannerStub.java:243)
at com.google.cloud.spanner.spi.v1.GapicSpannerRpc.<init>(GapicSpannerRpc.java:384)
at com.google.cloud.spanner.spi.v1.GapicSpannerRpc.<init>(GapicSpannerRpc.java:275)
at com.google.cloud.spanner.SpannerOptions$DefaultSpannerRpcFactory.create(SpannerOptions.java:508)
at com.google.cloud.spanner.SpannerOptions$DefaultSpannerRpcFactory.create(SpannerOptions.java:503)
at com.google.cloud.ServiceOptions.getRpc(ServiceOptions.java:602)
at com.google.cloud.spanner.SpannerOptions.getSpannerRpcV1(SpannerOptions.java:1742)
at com.google.cloud.spanner.SpannerImpl.<init>(SpannerImpl.java:149)
at com.google.cloud.spanner.SpannerOptions$DefaultSpannerFactory.create(SpannerOptions.java:498)
at com.google.cloud.spanner.SpannerOptions$DefaultSpannerFactory.create(SpannerOptions.java:493)
at com.google.cloud.ServiceOptions.getService(ServiceOptions.java:582)
at com.google.cloud.spanner.connection.SpannerPool.createSpanner(SpannerPool.java:392)
at com.google.cloud.spanner.connection.SpannerPool.getSpanner(SpannerPool.java:320)
at com.google.cloud.spanner.connection.ConnectionImpl.<init>(ConnectionImpl.java:292)
at com.google.cloud.spanner.connection.ConnectionOptions.getConnection(ConnectionOptions.java:1352)
at com.google.cloud.spanner.jdbc.AbstractJdbcConnection.<init>(AbstractJdbcConnection.java:64)
at com.google.cloud.spanner.jdbc.JdbcConnection.<init>(JdbcConnection.java:97)
at com.google.cloud.spanner.jdbc.JdbcDriver.connect(JdbcDriver.java:219)
at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:121)
at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:359)
at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:201)
at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:470)
at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:561)
at com.zaxxer.hikari.pool.HikariPool.<init>(HikariPool.java:100)
at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:112)
at org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.getConnection(DatasourceConnectionProviderImpl.java:122)
at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator$ConnectionProviderJdbcConnectionAccess.obtainConnection(JdbcEnvironmentInitiator.java:428)
at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcIsolationDelegate.delegateWork(JdbcIsolationDelegate.java:61)
at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.getJdbcEnvironmentUsingJdbcMetadata(JdbcEnvironmentInitiator.java:276)
at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:107)
at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:68)
at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.initiateService(StandardServiceRegistryImpl.java:129)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:263)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:238)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:215)
at org.hibernate.boot.model.relational.Database.<init>(Database.java:45)
at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.getDatabase(InFlightMetadataCollectorImpl.java:223)
at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.<init>(InFlightMetadataCollectorImpl.java:191)
at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:170)
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.metadata(EntityManagerFactoryBuilderImpl.java:1432)
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:1503)
at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:75)
at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:376)
at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:409)
at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:396)
at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet(LocalContainerEntityManagerFactoryBean.java:352)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1820)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1769)
... 16 common frames omitted
我已经尝试使用不同版本的 google-cloud-spanner-hibernate-dialect 和 google-cloud-spanner-jdbc,但在应用程序初始化期间仍然出现相同的错误。
有人可以帮忙解决这个问题吗?
下载声明: 本站所有软件和资料均为软件作者提供或网友推荐发布而来,仅供学习和研究使用,不得用于任何商业用途。如本站不慎侵犯你的版权请联系我,我将及时处理,并撤下相关内容!
-
引用 2楼
您能否也显示其他 pom 依赖项,例如 grpc-netty?我怀疑导入的版本可能存在一些问题。
-
引用 3楼
就像 @FrancescoPoli 所要求的那样,请分享您的完整 pom.xml 文件。这看起来很像依赖冲突。或者,您可以将此工作示例应用程序用作启动项目,然后逐个添加其他依赖项,直到遇到相同的问题,以找出导致冲突的原因:
-
引用 4楼
请添加父级和最终的 managedDependencies 部分,以了解您在项目中使用的 spring boot 版本。
-
工作应用程序
示例应用程序 从 Spanner Hibernate 方言 复制粘贴 https://github.com/olavloite/test-hibernate-dependency-conflict
我的观察基于此:
-
我需要为 OpenTelemetry 添加一个依赖管理部分来修复 OpenTelemetry 的依赖冲突。但这与您看到的错误无关。出于同样的原因,我也需要注释掉依赖项
micrometer-tracing-bridge-otel
,但这也应该与您的问题无关。 -
之后,应用程序就可以正常工作了。使用以下命令运行它:
mvn spring-boot:run
.
您可以使用以下命令从 GitHub 克隆上述示例应用程序:
git clone [email protected]:olavloite/test-hibernate-dependency-conflict.git
可能的原因
但是,运行
mvn dependency:tree
该应用程序会产生以下结果:[INFO] Scanning for projects... [INFO] [INFO] -------------------< org.example:dependencies-test >-------------------- [INFO] Building dependencies-test 1.0-SNAPSHOT [INFO] from pom.xml [INFO] --------------------------------[ jar ]--------------------------------- [INFO] [INFO] --- dependency:3.6.1:tree (default-cli) @ dependencies-test --- [INFO] org.example:dependencies-test:jar:1.0-SNAPSHOT [INFO] +- org.testcontainers:testcontainers:jar:1.19.3:compile [INFO] | +- junit:junit:jar:4.13.2:compile [INFO] | | \- org.hamcrest:hamcrest-core:jar:2.2:compile [INFO] | +- org.slf4j:slf4j-api:jar:2.0.9:compile [INFO] | +- org.apache.commons:commons-compress:jar:1.24.0:compile [INFO] | +- org.rnorth.duct-tape:duct-tape:jar:1.0.8:compile [INFO] | | \- org.jetbrains:annotations:jar:17.0.0:compile [INFO] | +- com.github.docker-java:docker-java-api:jar:3.3.4:compile [INFO] | | \- com.fasterxml.jackson.core:jackson-annotations:jar:2.15.3:compile [INFO] | \- com.github.docker-java:docker-java-transport-zerodep:jar:3.3.4:compile [INFO] | +- com.github.docker-java:docker-java-transport:jar:3.3.4:compile [INFO] | \- net.java.dev.jna:jna:jar:5.13.0:compile [INFO] +- org.springframework.boot:spring-boot-starter-webflux:jar:3.2.1:compile [INFO] | +- org.springframework.boot:spring-boot-starter:jar:3.2.1:compile [INFO] | | +- org.springframework.boot:spring-boot:jar:3.2.1:compile [INFO] | | +- org.springframework.boot:spring-boot-autoconfigure:jar:3.2.1:compile [INFO] | | +- org.springframework.boot:spring-boot-starter-logging:jar:3.2.1:compile [INFO] | | | +- ch.qos.logback:logback-classic:jar:1.4.14:compile [INFO] | | | | \- ch.qos.logback:logback-core:jar:1.4.14:compile [INFO] | | | +- org.apache.logging.log4j:log4j-to-slf4j:jar:2.21.1:compile [INFO] | | | | \- org.apache.logging.log4j:log4j-api:jar:2.21.1:compile [INFO] | | | \- org.slf4j:jul-to-slf4j:jar:2.0.9:compile [INFO] | | +- jakarta.annotation:jakarta.annotation-api:jar:2.1.1:compile [INFO] | | \- org.yaml:snakeyaml:jar:2.2:compile [INFO] | +- org.springframework.boot:spring-boot-starter-json:jar:3.2.1:compile [INFO] | | +- com.fasterxml.jackson.core:jackson-databind:jar:2.15.3:compile [INFO] | | | \- com.fasterxml.jackson.core:jackson-core:jar:2.15.3:compile [INFO] | | +- com.fasterxml.jackson.datatype:jackson-datatype-jdk8:jar:2.15.3:compile [INFO] | | +- com.fasterxml.jackson.datatype:jackson-datatype-jsr310:jar:2.15.3:compile [INFO] | | \- com.fasterxml.jackson.module:jackson-module-parameter-names:jar:2.15.3:compile [INFO] | +- org.springframework.boot:spring-boot-starter-reactor-netty:jar:3.2.1:compile [INFO] | | \- io.projectreactor.netty:reactor-netty-http:jar:1.1.14:compile [INFO] | | +- io.netty:netty-codec-http:jar:4.1.104.Final:compile [INFO] | | | +- io.netty:netty-common:jar:4.1.104.Final:compile [INFO] | | | +- io.netty:netty-buffer:jar:4.1.104.Final:compile [INFO] | | | +- io.netty:netty-transport:jar:4.1.104.Final:compile [INFO] | | | +- io.netty:netty-codec:jar:4.1.104.Final:compile [INFO] | | | \- io.netty:netty-handler:jar:4.1.104.Final:compile [INFO] | | +- io.netty:netty-codec-http2:jar:4.1.104.Final:compile [INFO] | | +- io.netty:netty-resolver-dns:jar:4.1.104.Final:compile [INFO] | | | +- io.netty:netty-resolver:jar:4.1.104.Final:compile [INFO] | | | \- io.netty:netty-codec-dns:jar:4.1.104.Final:compile [INFO] | | +- io.netty:netty-resolver-dns-native-macos:jar:osx-x86_64:4.1.104.Final:compile [INFO] | | | \- io.netty:netty-resolver-dns-classes-macos:jar:4.1.104.Final:compile [INFO] | | +- io.netty:netty-transport-native-epoll:jar:linux-x86_64:4.1.104.Final:compile [INFO] | | | +- io.netty:netty-transport-native-unix-common:jar:4.1.104.Final:compile [INFO] | | | \- io.netty:netty-transport-classes-epoll:jar:4.1.104.Final:compile [INFO] | | \- io.projectreactor.netty:reactor-netty-core:jar:1.1.14:compile [INFO] | | \- io.netty:netty-handler-proxy:jar:4.1.104.Final:compile [INFO] | | \- io.netty:netty-codec-socks:jar:4.1.104.Final:compile [INFO] | +- org.springframework:spring-web:jar:6.1.2:compile [INFO] | | \- org.springframework:spring-beans:jar:6.1.2:compile [INFO] | \- org.springframework:spring-webflux:jar:6.1.2:compile [INFO] +- org.springframework.boot:spring-boot-starter-test:jar:3.2.1:test [INFO] | +- org.springframework.boot:spring-boot-test:jar:3.2.1:test [INFO] | +- org.springframework.boot:spring-boot-test-autoconfigure:jar:3.2.1:test [INFO] | +- com.jayway.jsonpath:json-path:jar:2.8.0:test [INFO] | +- jakarta.xml.bind:jakarta.xml.bind-api:jar:4.0.1:compile [INFO] | | \- jakarta.activation:jakarta.activation-api:jar:2.1.2:compile [INFO] | +- net.minidev:json-smart:jar:2.5.0:test [INFO] | | \- net.minidev:accessors-smart:jar:2.5.0:test [INFO] | | \- org.ow2.asm:asm:jar:9.3:test [INFO] | +- org.assertj:assertj-core:jar:3.24.2:test [INFO] | | \- net.bytebuddy:byte-buddy:jar:1.14.10:runtime [INFO] | +- org.awaitility:awaitility:jar:4.2.0:test [INFO] | +- org.hamcrest:hamcrest:jar:2.2:compile [INFO] | +- org.junit.jupiter:junit-jupiter:jar:5.10.1:test [INFO] | | +- org.junit.jupiter:junit-jupiter-api:jar:5.10.1:test [INFO] | | | +- org.opentest4j:opentest4j:jar:1.3.0:test [INFO] | | | +- org.junit.platform:junit-platform-commons:jar:1.10.1:test [INFO] | | | \- org.apiguardian:apiguardian-api:jar:1.1.2:test [INFO] | | +- org.junit.jupiter:junit-jupiter-params:jar:5.10.1:test [INFO] | | \- org.junit.jupiter:junit-jupiter-engine:jar:5.10.1:test [INFO] | | \- org.junit.platform:junit-platform-engine:jar:1.10.1:test [INFO] | +- org.mockito:mockito-core:jar:5.7.0:test [INFO] | | +- net.bytebuddy:byte-buddy-agent:jar:1.14.10:test [INFO] | | \- org.objenesis:objenesis:jar:3.3:test [INFO] | +- org.mockito:mockito-junit-jupiter:jar:5.7.0:test [INFO] | +- org.skyscreamer:jsonassert:jar:1.5.1:test [INFO] | | \- com.vaadin.external.google:android-json:jar:0.0.20131108.vaadin1:test [INFO] | +- org.springframework:spring-core:jar:6.1.2:compile [INFO] | | \- org.springframework:spring-jcl:jar:6.1.2:compile [INFO] | +- org.springframework:spring-test:jar:6.1.2:test [INFO] | \- org.xmlunit:xmlunit-core:jar:2.9.1:test [INFO] +- io.projectreactor:reactor-test:jar:3.6.1:test [INFO] | \- io.projectreactor:reactor-core:jar:3.6.1:compile [INFO] | \- org.reactivestreams:reactive-streams:jar:1.0.4:compile [INFO] +- org.projectlombok:lombok:jar:1.18.30:compile [INFO] +- org.springframework.boot:spring-boot-starter-actuator:jar:3.2.1:compile [INFO] | +- org.springframework.boot:spring-boot-actuator-autoconfigure:jar:3.2.1:compile [INFO] | | \- org.springframework.boot:spring-boot-actuator:jar:3.2.1:compile [INFO] | +- io.micrometer:micrometer-observation:jar:1.12.1:compile [INFO] | | \- io.micrometer:micrometer-commons:jar:1.12.1:compile [INFO] | \- io.micrometer:micrometer-jakarta9:jar:1.12.1:compile [INFO] +- org.springframework.boot:spring-boot-starter-aop:jar:3.2.1:compile [INFO] | +- org.springframework:spring-aop:jar:6.1.2:compile [INFO] | \- org.aspectj:aspectjweaver:jar:1.9.21:compile [INFO] +- io.micrometer:micrometer-registry-prometheus:jar:1.12.1:compile [INFO] | +- io.micrometer:micrometer-core:jar:1.12.1:compile [INFO] | | +- org.hdrhistogram:HdrHistogram:jar:2.1.12:runtime [INFO] | | \- org.latencyutils:LatencyUtils:jar:2.0.3:runtime [INFO] | \- io.prometheus:simpleclient_common:jar:0.16.0:compile [INFO] | \- io.prometheus:simpleclient:jar:0.16.0:compile [INFO] | +- io.prometheus:simpleclient_tracer_otel:jar:0.16.0:compile [INFO] | | \- io.prometheus:simpleclient_tracer_common:jar:0.16.0:compile [INFO] | \- io.prometheus:simpleclient_tracer_otel_agent:jar:0.16.0:compile [INFO] +- org.springdoc:springdoc-openapi-starter-webflux-ui:jar:2.3.0:compile [INFO] | +- org.springdoc:springdoc-openapi-starter-webflux-api:jar:2.3.0:compile [INFO] | | \- org.springdoc:springdoc-openapi-starter-common:jar:2.3.0:compile [INFO] | | \- io.swagger.core.v3:swagger-core-jakarta:jar:2.2.19:compile [INFO] | | +- io.swagger.core.v3:swagger-annotations-jakarta:jar:2.2.19:compile [INFO] | | +- io.swagger.core.v3:swagger-models-jakarta:jar:2.2.19:compile [INFO] | | +- jakarta.validation:jakarta.validation-api:jar:3.0.2:compile [INFO] | | \- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:jar:2.15.3:compile [INFO] | \- org.webjars:swagger-ui:jar:5.10.3:compile [INFO] +- io.github.resilience4j:resilience4j-spring-boot3:jar:2.0.2:compile [INFO] | +- io.github.resilience4j:resilience4j-spring6:jar:2.1.0:compile [INFO] | | +- io.github.resilience4j:resilience4j-annotations:jar:2.1.0:compile [INFO] | | +- io.github.resilience4j:resilience4j-consumer:jar:2.1.0:compile [INFO] | | | \- io.github.resilience4j:resilience4j-circularbuffer:jar:2.1.0:runtime [INFO] | | \- io.github.resilience4j:resilience4j-framework-common:jar:2.1.0:compile [INFO] | \- io.github.resilience4j:resilience4j-micrometer:jar:2.1.0:runtime [INFO] +- io.github.resilience4j:resilience4j-reactor:jar:2.0.2:compile [INFO] | +- io.github.resilience4j:resilience4j-circuitbreaker:jar:2.1.0:compile [INFO] | | \- io.github.resilience4j:resilience4j-core:jar:2.1.0:compile [INFO] | +- io.github.resilience4j:resilience4j-ratelimiter:jar:2.1.0:compile [INFO] | +- io.github.resilience4j:resilience4j-timelimiter:jar:2.1.0:compile [INFO] | +- io.github.resilience4j:resilience4j-bulkhead:jar:2.1.0:compile [INFO] | \- io.github.resilience4j:resilience4j-retry:jar:2.1.0:compile [INFO] +- org.wiremock:wiremock-standalone:jar:3.5.4:test [INFO] +- org.springframework.boot:spring-boot-starter-data-jpa:jar:3.2.1:compile [INFO] | +- org.springframework.boot:spring-boot-starter-jdbc:jar:3.2.1:compile [INFO] | | +- com.zaxxer:HikariCP:jar:5.0.1:compile [INFO] | | \- org.springframework:spring-jdbc:jar:6.1.2:compile [INFO] | +- org.hibernate.orm:hibernate-core:jar:6.4.1.Final:compile [INFO] | | +- jakarta.persistence:jakarta.persistence-api:jar:3.1.0:compile [INFO] | | +- jakarta.transaction:jakarta.transaction-api:jar:2.0.1:compile [INFO] | | +- org.hibernate.common:hibernate-commons-annotations:jar:6.0.6.Final:runtime [INFO] | | +- io.smallrye:jandex:jar:3.1.2:runtime [INFO] | | +- com.fasterxml:classmate:jar:1.6.0:runtime [INFO] | | +- org.glassfish.jaxb:jaxb-runtime:jar:4.0.4:runtime [INFO] | | | \- org.glassfish.jaxb:jaxb-core:jar:4.0.4:runtime [INFO] | | | +- org.eclipse.angus:angus-activation:jar:2.0.1:runtime [INFO] | | | +- org.glassfish.jaxb:txw2:jar:4.0.4:runtime [INFO] | | | \- com.sun.istack:istack-commons-runtime:jar:4.1.2:runtime [INFO] | | +- jakarta.inject:jakarta.inject-api:jar:2.0.1:runtime [INFO] | | \- org.antlr:antlr4-runtime:jar:4.13.0:compile [INFO] | +- org.springframework.data:spring-data-jpa:jar:3.2.1:compile [INFO] | | +- org.springframework.data:spring-data-commons:jar:3.2.1:compile [INFO] | | +- org.springframework:spring-orm:jar:6.1.2:compile [INFO] | | +- org.springframework:spring-context:jar:6.1.2:compile [INFO] | | | \- org.springframework:spring-expression:jar:6.1.2:compile [INFO] | | \- org.springframework:spring-tx:jar:6.1.2:compile [INFO] | \- org.springframework:spring-aspects:jar:6.1.2:compile [INFO] +- com.google.cloud:google-cloud-spanner-hibernate-dialect:jar:3.4.0:compile [INFO] | +- org.jboss.logging:jboss-logging:jar:3.5.3.Final:compile [INFO] | +- com.google.cloud:google-cloud-spanner-hibernate-tools:jar:3.4.0:compile [INFO] | \- org.apache.commons:commons-lang3:jar:3.13.0:compile [INFO] \- com.google.cloud:google-cloud-spanner-jdbc:jar:2.20.1:compile [INFO] +- com.google.http-client:google-http-client:jar:1.44.2:compile [INFO] +- org.apache.httpcomponents:httpclient:jar:4.5.14:compile [INFO] +- org.apache.httpcomponents:httpcore:jar:4.4.16:compile [INFO] +- com.google.errorprone:error_prone_annotations:jar:2.28.0:compile [INFO] +- com.google.j2objc:j2objc-annotations:jar:3.0.0:compile [INFO] +- io.grpc:grpc-context:jar:1.62.2:compile [INFO] +- io.opencensus:opencensus-api:jar:0.31.1:compile [INFO] +- io.opencensus:opencensus-contrib-http-util:jar:0.31.1:compile [INFO] +- io.grpc:grpc-api:jar:1.62.2:compile [INFO] +- com.google.cloud:google-cloud-core-grpc:jar:2.40.0:compile [INFO] +- com.google.api:gax-grpc:jar:2.50.0:compile [INFO] +- com.google.api.grpc:proto-google-common-protos:jar:2.41.0:compile [INFO] +- com.google.api:gax:jar:2.50.0:runtime [INFO] +- org.threeten:threetenbp:jar:1.6.9:compile [INFO] +- com.google.cloud:google-cloud-spanner:jar:6.71.0:compile [INFO] +- com.google.cloud:grpc-gcp:jar:1.6.1:compile [INFO] +- io.grpc:grpc-auth:jar:1.62.2:compile [INFO] +- io.grpc:grpc-inprocess:jar:1.62.2:compile [INFO] +- io.grpc:grpc-core:jar:1.62.2:compile [INFO] +- com.google.android:annotations:jar:4.1.1.4:runtime [INFO] +- org.codehaus.mojo:animal-sniffer-annotations:jar:1.23:runtime [INFO] +- io.perfmark:perfmark-api:jar:0.27.0:runtime [INFO] +- io.grpc:grpc-util:jar:1.62.2:runtime [INFO] +- io.grpc:grpc-protobuf:jar:1.62.2:compile [INFO] +- io.grpc:grpc-protobuf-lite:jar:1.62.2:runtime [INFO] +- io.grpc:grpc-stub:jar:1.62.2:compile [INFO] +- com.google.auto.value:auto-value-annotations:jar:1.10.4:compile [INFO] +- com.google.protobuf:protobuf-java-util:jar:3.25.3:compile [INFO] +- com.google.api.grpc:proto-google-cloud-spanner-executor-v1:jar:6.71.0:compile [INFO] +- com.google.api.grpc:grpc-google-common-protos:jar:2.41.0:compile [INFO] +- com.google.guava:failureaccess:jar:1.0.2:compile [INFO] +- com.google.guava:listenablefuture:jar:9999.0-empty-to-avoid-conflict-with-guava:compile [INFO] +- org.checkerframework:checker-qual:jar:3.44.0:compile [INFO] +- com.google.api.grpc:proto-google-iam-v1:jar:1.36.0:compile [INFO] +- com.google.http-client:google-http-client-gson:jar:1.44.2:compile [INFO] +- io.opencensus:opencensus-contrib-grpc-util:jar:0.31.1:compile [INFO] +- io.opentelemetry:opentelemetry-context:jar:1.42.1:compile [INFO] +- io.opentelemetry:opentelemetry-sdk-common:jar:1.42.1:compile [INFO] +- io.opentelemetry:opentelemetry-sdk-metrics:jar:1.42.1:compile [INFO] +- io.opentelemetry:opentelemetry-api-incubator:jar:1.39.0-alpha:runtime [INFO] +- com.google.cloud:google-cloud-monitoring:jar:3.38.0:compile [INFO] +- io.grpc:grpc-grpclb:jar:1.62.2:compile [INFO] +- org.conscrypt:conscrypt-openjdk-uber:jar:2.5.2:compile [INFO] +- io.grpc:grpc-xds:jar:1.62.2:runtime [INFO] +- io.opencensus:opencensus-proto:jar:0.2.0:runtime [INFO] +- io.grpc:grpc-services:jar:1.62.2:runtime [INFO] +- com.google.re2j:re2j:jar:1.7:runtime [INFO] +- commons-codec:commons-codec:jar:1.16.0:compile [INFO] +- com.google.api.grpc:proto-google-cloud-monitoring-v3:jar:3.38.0:compile [INFO] +- com.google.api.grpc:proto-google-cloud-spanner-admin-instance-v1:jar:6.71.0:compile [INFO] +- com.google.api.grpc:proto-google-cloud-spanner-admin-database-v1:jar:6.71.0:compile [INFO] +- com.google.api.grpc:grpc-google-cloud-spanner-admin-instance-v1:jar:6.71.0:compile [INFO] +- com.google.api.grpc:grpc-google-cloud-spanner-v1:jar:6.71.0:compile [INFO] +- com.google.api.grpc:grpc-google-cloud-spanner-admin-database-v1:jar:6.71.0:compile [INFO] +- com.google.api:gax-httpjson:jar:2.50.0:compile [INFO] +- com.google.code.gson:gson:jar:2.10.1:compile [INFO] +- io.grpc:grpc-googleapis:jar:1.62.2:runtime [INFO] +- io.grpc:grpc-rls:jar:1.62.2:runtime [INFO] +- javax.annotation:javax.annotation-api:jar:1.3.2:compile [INFO] +- io.grpc:grpc-alts:jar:1.62.2:compile [INFO] +- com.google.protobuf:protobuf-java:jar:3.25.3:compile [INFO] +- com.google.guava:guava:jar:33.1.0-jre:compile [INFO] +- io.grpc:grpc-netty-shaded:jar:1.62.2:compile [INFO] +- com.google.api:api-common:jar:2.33.0:compile [INFO] +- com.google.code.findbugs:jsr305:jar:3.0.2:compile [INFO] +- com.google.auth:google-auth-library-oauth2-http:jar:1.23.0:compile [INFO] +- com.google.auth:google-auth-library-credentials:jar:1.23.0:compile [INFO] +- com.google.cloud:google-cloud-core:jar:2.40.0:compile [INFO] +- com.google.api.grpc:proto-google-cloud-spanner-v1:jar:6.71.0:compile [INFO] \- io.opentelemetry:opentelemetry-api:jar:1.42.1:compile
这表明
spring-boot-starter-webflux
包括spring-boot-starter-reactor-netty
,这又包括多个 Netty 依赖项。此外,Spanner JDBC 驱动程序还包括io.grpc:grpc-netty-shaded:jar:1.62.2:compile
。我猜spring-boot-starter-reactor-netty
依赖项是导致冲突的原因。可能采取的措施:
-
排除
spring-boot-starter-reactor-netty
。 -
您是否正在构建 fat-jar(jar-with-depencies / shaded jar)?如果是:不要。它们总是容易出现依赖问题,因为冲突的依赖项会相互覆盖。使用 fat-jar 运行您的应用程序,
mvn spring-boot:run
而不是构建 fat-jar 来检查它是否有效。
-
我需要为 OpenTelemetry 添加一个依赖管理部分来修复 OpenTelemetry 的依赖冲突。但这与您看到的错误无关。出于同样的原因,我也需要注释掉依赖项