Spring boot 以下方法不存在:';org.springframework.plugin.core.PluginRegistry org.springframework.plugin.core.PluginRegistry.of(java.util.List)和#x27;

Spring boot 以下方法不存在:';org.springframework.plugin.core.PluginRegistry org.springframework.plugin.core.PluginRegistry.of(java.util.List)和#x27;,spring-boot,spring-data-rest,swagger-2.0,spring-hateoas,Spring Boot,Spring Data Rest,Swagger 2.0,Spring Hateoas,pom.xml <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependen

pom.xml

<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-tomcat</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jetty</artifactId>
        </dependency>

        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.9.2</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>com.h2database</groupId>
            <artifactId>h2</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.12</version>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-hateoas</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
            <version>2.2.5.RELEASE</version>
        </dependency>

        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.9.2</version>
        </dependency>

        <!-- The Bad Boy -->
        <dependency>
            <groupId>org.springframework.data</groupId>
            <artifactId>spring-data-rest-hal-browser</artifactId>
            <version>3.2.5.RELEASE</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.plugin</groupId>
            <artifactId>spring-plugin-core</artifactId>
            <version>1.2.0.RELEASE</version>
        </dependency>
    </dependencies>
我也查一下

我认为
spring插件核心上存在冲突
如何解决此问题?

原因 显示此错误时:

The following method did not exist:

'org.springframework.plugin.core.PluginRegistry org.springframework.plugin.core.PluginRegistry.of(java.util.List)'
The following method did not exist:

'org.springframework.plugin.core.Plugin org.springframework.plugin.core.PluginRegistry.getPluginFor(java.lang.Object, org.springframework.plugin.core.Plugin)'
这意味着spring插件核心1.2.0已经生效。这对于springfox-Swagger2v2.9.2是很好的,但是,其他一些组件在SpringPluginCore中找不到PluginRegistry.of(java.util.List),因为它是在更高版本中定义的

显示此错误时:

The following method did not exist:

'org.springframework.plugin.core.PluginRegistry org.springframework.plugin.core.PluginRegistry.of(java.util.List)'
The following method did not exist:

'org.springframework.plugin.core.Plugin org.springframework.plugin.core.PluginRegistry.getPluginFor(java.lang.Object, org.springframework.plugin.core.Plugin)'
这意味着spring插件核心2.0.0已经生效。这一次,springfox-Swagger 2 v2.9.2遇到了问题,因为PluginRegistry.getPluginFor(java.lang.Object,org.springframework.plugin.core.plugin)已从此版本中删除

解决方案 您可以使用springfox库的快照版本来解决此问题。它已升级为使用较新版本的spring插件核心

<dependency>
  <groupId>io.springfox</groupId>
  <artifactId>springfox-swagger2</artifactId>
  <version>3.0.0-SNAPSHOT</version>
</dependency>

伊奥·斯普林福克斯
springfox-Swagger 2
3.0.0-SNAPSHOT
请添加存储库定义以使用此快照版本:

<repositories>
  <repository>
    <id>jcenter-snapshots</id>
    <name>jcenter</name>
    <url>http://oss.jfrog.org/artifactory/oss-snapshot-local/</url>
  </repository>
</repositories>

jcenter快照
jcenter
http://oss.jfrog.org/artifactory/oss-snapshot-local/

还请将@EnableSwagger2替换为@EnableSwagger2WebMvc。

或者运行maven dependency tree命令查看包含哪两个jar并删除其中一个jar,或者更简单的方法是删除.m2文件夹并重新导入它将解决问题的依赖项。

Spring插件版本较低,请将其添加到pom.xml

<dependency>
        <groupId>org.springframework.plugin</groupId>
        <artifactId>spring-plugin-core</artifactId>
        <version>2.0.0.RELEASE</version>
 </dependency>

org.springframework.plugin

我也面临着同样的问题,这正是对我有效的方法-

1.使用HAL浏览器而不是HAL浏览器

2.更新springfox依赖版本

    <dependency>
        <groupId>org.springframework.data</groupId>
        <artifactId>spring-data-rest-hal-explorer</artifactId>
    </dependency>
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger2</artifactId>
        <version>3.0.0</version>
    </dependency>
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger-ui</artifactId>
        <version>2.9.2</version>
    </dependency>

org.springframework.data
spring数据资源管理器
伊奥·斯普林福克斯
springfox-Swagger 2
3.0.0
伊奥·斯普林福克斯
springfox招摇过市用户界面
2.9.2

在我的例子中,我只是升级了我的招摇过市的版本,它成功了

<dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>3.0.0</version>
</dependency>

伊奥·斯普林福克斯
springfox-Swagger 2
3.0.0

我也面临着这个问题。你设法解决了吗?谢谢你的评论,我在不同版本的spring hateoas和swagger上尝试了几十种组合,但都没用。谢谢,我正在做一个我的课程,我已经在那里问过了。如果他们回复我,我会发布解决方案。
@EnableSwagger2WebMvc
现在不推荐使用。找不到原因。此外,springfox的v3+已经过时:不再需要
快照了。(对不起,我迟到了一点:无法编辑我的最后一条消息。)你真了不起,兄弟!
<dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>3.0.0</version>
</dependency>