【问题标题】:Error while deploying spring boot application on Weblogic server在 Weblogic 服务器上部署 Spring Boot 应用程序时出错
【发布时间】: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>

【问题讨论】:

标签: spring-boot hateoas


【解决方案1】:

春天告诉你问题

org.springframework.hateoas.config.HateoasConfiguration required a single bean,
    but 15 were found:

这意味着有 15 种方法返回适合 HateoasConfiguration 的 bean。

那些混蛋是谁?

春天在列表之后继续:

        - modelBuilderPluginRegistry: defined in null
        - modelPropertyBuilderPluginRegistry: defined in null
        - typeNameProviderPluginRegistry: defined in null
        - documentationPluginRegistry: defined in null
        - apiListingBuilderPluginRegistry: defined in null
        - operationBuilderPluginRegistry: defined in null
        - parameterBuilderPluginRegistry: defined in null
        - expandedParameterBuilderPluginRegistry: defined in null
        - resourceGroupingStrategyRegistry: defined in null
        - operationModelsProviderPluginRegistry: defined in null
        - defaultsProviderPluginRegistry: defined in null
        - pathDecoratorRegistry: defined in null
        - relProviderPluginRegistry: defined by method 'relProviderPluginRegistry' 
             in class path resource
             [org/springframework/hateoas/config/HateoasConfiguration.class]
        - linkDiscovererRegistry: defined in null
        - entityLinksPluginRegistry: defined by method 'entityLinksPluginRegistry'
             in class path resource
             [org/springframework/hateoas/config/WebMvcEntityLinksConfiguration.class]

该列表可能并不那么清晰或熟悉,因为其中一些方法可能是由框架定义的。

那么可以做些什么呢?

Spring 提出了一个解决方案:

 Action:

    Consider marking one of the beans as @Primary,
    updating the consumer to accept multiple beans,
    or using @Qualifier to identify the bean that should be consumed

是否意味着我需要重新配置我的@Beans?

不一定。先试试看if someone else faced the same problem

您可以在那里找到解决方案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-10
    • 2016-04-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多