【发布时间】:2020-04-26 20:58:32
【问题描述】:
自从我将 Hateoas 依赖项添加到我的 Spring boot 项目并部署在 weblogic server 12c 上后,我就面临这个问题
启动 ApplicationContext 时出错。显示条件报告 在启用“调试”的情况下重新运行您的应用程序。 2020-01-09 14:18:53,591 错误 org.springframework.boot.diagnostics.LoggingFailureAnalysisReporter [[待机] ExecuteThread: '3' 用于队列: 'weblogic.kernel.Default (self-tuning)']
应用程序启动失败
说明:
org.springframework.hateoas.config.HateoasConfiguration 中方法linkDiscoverers 的参数0 需要一个 单个 bean,但找到了 15 个: - modelBuilderPluginRegistry:定义为null - modelPropertyBuilderPluginRegistry:定义为null - typeNameProviderPluginRegistry:在 null 中定义 - documentationPluginRegistry: 定义为 null - apiListingBuilderPluginRegistry:定义为空 - operationBuilderPluginRegistry:定义为null - parameterBuilderPluginRegistry:定义为null -expandParameterBuilderPluginRegistry:定义为null - resourceGroupingStrategyRegistry:定义为null - operationModelsProviderPluginRegistry:在 null 中定义 - defaultsProviderPluginRegistry:在 null 中定义 - pathDecoratorRegistry:在 null 中定义 - relProviderPluginRegistry:由类路径资源中的“relProviderPluginRegistry”方法定义 [org/springframework/hateoas/config/HateoasConfiguration.class] - linkDiscovererRegistry:定义为空 - entityLinksPluginRegistry:由类路径资源中的“entityLinksPluginRegistry”方法定义 [org/springframework/hateoas/config/WebMvcEntityLinksConfiguration.class]
行动:
考虑将其中一个 bean 标记为 @Primary,更新消费者以接受多个 bean,或者使用 @Qualifier 来识别 应该吃的豆子
' 可用:预期单身 匹配 bean 但找到 15 个: modelBuilderPluginRegistry,modelPropertyBuilderPluginRegistry,typeNameProviderPluginRegistry,documentationPluginRegistry,apiListingBuilderPluginRegistry,operationBuilderPluginRegistry,parameterBuilderPluginRegistry,expandedParameterBuilderPluginRegistry,resourceGroupingStrategyRegistry,operationModelsProviderPluginRegistry,defaultsProviderPluginRegistry,pathDecoratorRegistry,relProviderPluginRegistry,linkDiscovererRegistry,entityLinksPluginRegistry 在 weblogic.application.internal.ExtensibleModuleWrapper.start(ExtensibleModuleWrapper.java:140) 在 weblogic.application.internal.flow.ModuleListenerInvoker.start(ModuleListenerInvoker.java:124) 在 weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:233) 在 weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:228) 在 weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:45) 截断。查看日志文件以获取完整的堆栈跟踪 引起:org.springframework.beans.factory.NoUniqueBeanDefinitionException:否 符合条件的 bean 类型 'org.springframework.plugin.core.PluginRegistry' 可用:预期单 匹配 bean 但找到 15 个: modelBuilderPluginRegistry,modelPropertyBuilderPluginRegistry,typeNameProviderPluginRegistry,documentationPluginRegistry,apiListingBuilderPluginRegistry,operationBuilderPluginRegistry,parameterBuilderPluginRegistry,expandedParameterBuilderPluginRegistry,resourceGroupingStrategyRegistry,operationModelsProviderPluginRegistry,defaultsProviderPluginRegistry,pathDecoratorRegistry,relProviderPluginRegistry,linkDiscovererRegistry,entityLinksPluginRegistry 在 org.springframework.beans.factory.config.DependencyDescriptor.resolveNotUnique(DependencyDescriptor.java:220) 在 org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1265) 在 org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1207) 在 org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:874) 在 org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:778) 截断。查看日志文件以获取完整的堆栈跟踪 >
POM.xml 文件:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.1.RELEASE</version>
<relativePath /> <!-- lookup parent from repository -->
</parent>
<groupId>com.bt</groupId>
<artifactId>Some project</artifactId>
<version>1.0</version>
<packaging>war</packaging>
<name>some Project</name>
<description>REST enabled adapter to communicate with tetProject database</description>
<repositories>
<repository>
<id>some Repo</id>
<name><xyz.some.name></name>
<url><xyz.some.url></url>
</repository>
</repositories>
<properties>
<java.version>1.8</java.version>
<skipTests>true</skipTests>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-websocket</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>commonlibs.com.oracle</groupId>
<artifactId>ojdbc6</artifactId>
<version>11.2.0</version>
</dependency>
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20160810</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.6.1</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.6.1</version>
</dependency>
<dependency>
<groupId>commonlibs.com.bea.core</groupId>
<artifactId>com.bea.core.datasource6_1.7.0.0</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<groupId>commonlibs.com.bea.core.utils</groupId>
<artifactId>com.bea.core.utils.wrapper_1.4.0.0</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-clients</artifactId>
<version>2.0.0</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-hateoas</artifactId>
<version>1.2.2.RELEASE</version>
</dependency>
</dependencies>
<build>
<finalName>Some project</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.12.4</version>
<configuration>
<skipTests>${skipTests}</skipTests>
</configuration>
</plugin>
</plugins>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
</build>
</project>
【问题讨论】:
-
欢迎来到 SO!请考虑查看stackoverflow.com/help/minimal-reproducible-example。当然,阅读整个 tour 页面也没有什么坏处。
-
嗨,在研究您的问题之前,我有一个问题要问您:如果 spring-boot 应用程序是创建自己的 JEE 容器的独立应用程序,为什么要在 weblogic 中部署 spring-boot 应用程序?
标签: spring-boot hateoas