繁体   English   中英

java.lang.ClassNotFoundException: org.springframework.core.annotation.MergedAnnotations

[英]java.lang.ClassNotFoundException: org.springframework.core.annotation.MergedAnnotations

我在使用 ControllerLinkBuilder 时遇到问题,当我提供方法名称时,它会在我不运行并显示结果时抛出错误。

错误似乎是 jar 问题,但我也尝试过使用其他版本仍然相同的“spring-boot-starter-hateoas”,它无法识别 RepresentationModel 和 ControllerLinkBuilderlinkTo 的包

@GetMapping("/{businessclass}/lists/_generic")
public  ResponseEntity<POLineResponse>  businessClass(@PathVariable final String businessclass,
        @RequestParam String _fields, @RequestParam("company") String company) {
     logger.info("Entering into businessClass {} params{} ",businessclass, _fields);

     Page<PurchaseOrderLineDTO> page= mockFsmService.generateMockPurchaseOrderLines();

     POLineResponse polR = new POLineResponse (page.getContent(),page.getTotalElements());
     //polR.add(linkTo(LoadTestController.class).businessClass(businessclass,_fields,company)).withSelfRel();
    //polR.add(ControllerLinkBuilderlinkTo(LoadTestController.class).withSelfRel());

      Link selfLink = ControllerLinkBuilder.linkTo(methodOn(LoadTestController.class).businessClass(businessclass, _fields, company))
      .withSelfRel();

    polR.add(selfLink);
     return new ResponseEntity<>(polR, HttpStatus.OK);
}

参考

依赖

<dependency>
            <groupId>org.springframework.data</groupId>
            <artifactId>spring-data-commons</artifactId>
            <version>2.2.0.RELEASE</version>
        </dependency>


        <!-- https://mvnrepository.com/artifact/org.springframework.hateoas/spring-hateoas -->
        <dependency>
            <groupId>org.springframework.hateoas</groupId>
            <artifactId>spring-hateoas</artifactId>
            <version>1.0.3.RELEASE</version>
        </dependency>

Maven pom

    <?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 http://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.1.4.RELEASE</version>
            <relativePath /> <!-- lookup parent from repository -->
        </parent>
        <groupId>com.demo.cloudproj</groupId>
        <artifactId>cloudproj-loadtest</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <name>cloudprojloadtest</name>
        <description>cloudprojLoadTest</description>

        <properties>
            <java.version>12</java.version>
        </properties>

        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
            <dependency>
                <groupId>com.opencsv</groupId>
                <artifactId>opencsv</artifactId>
                <version>4.1</version>
            </dependency>

            <dependency>
                <groupId>com.googlecode.json-simple</groupId>
                <artifactId> json-simple</artifactId>
                <version>1.1</version>
            </dependency>

            <dependency>
                <groupId>org.apache.poi</groupId>
                <artifactId>poi-ooxml</artifactId>
                <version>3.9</version>
            </dependency>

            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-databind</artifactId>
            </dependency>

            <dependency>
                <groupId>com.google.code.gson</groupId>
                <artifactId>gson</artifactId>
            </dependency>

            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-databind</artifactId>
            </dependency>
            <dependency>
                <groupId>io.codearte.jfairy</groupId>
                <artifactId>jfairy</artifactId>
                <version>0.5.0</version>
            </dependency>
  <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-hateoas</artifactId>
    <version>1.2.2.RELEASE</version>
</dependency>

    </dependencies>

    <build>
        <!--resources> <resource> <directory>src/main/resources</directory> <filtering>true</filtering> 
            <excludes> <exclude>**/*.properties</exclude> </excludes> </resource> </resources -->
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <addResources>false</addResources>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-resources-plugin</artifactId>
                <executions>

                </executions>
            </plugin>
        </plugins>
        <pluginManagement>
            <plugins>
                <!--This plugin's configuration is used to store Eclipse m2e settings 
                    only. It has no influence on the Maven build itself. -->
                <plugin>
                    <groupId>org.eclipse.m2e</groupId>
                    <artifactId>lifecycle-mapping</artifactId>
                    <version>1.0.0</version>
                    <configuration>
                        <lifecycleMappingMetadata>
                            <pluginExecutions>
                                <pluginExecution>
                                    <pluginExecutionFilter>
                                        <groupId>
                                            org.apache.maven.plugins
                                        </groupId>
                                        <artifactId>
                                            maven-antrun-plugin
                                        </artifactId>
                                        <versionRange>
                                            [1.8,)
                                        </versionRange>
                                        <goals>
                                            <goal>run</goal>
                                        </goals>
                                    </pluginExecutionFilter>
                                    <action>
                                        <ignore></ignore>
                                    </action>
                                </pluginExecution>
                            </pluginExecutions>
                        </lifecycleMappingMetadata>
                    </configuration>
                </plugin>
            </plugins>
        </pluginManagement>
    </build>
</project>

您应该至少使用 Spring Boot 2.2。 有了它,您可以使用spring-boot-starter-hateoas Spring HATEOAS 1.0,具有RepresentationModel等的版本。

该版本还依赖于需要利用MergedAnnotations Spring Framework 5.2。 使用 Boot 2.1 会使您使用旧版本的 Framework,从而导致各种问题。

您能否再次添加以下依赖项并运行该应用程序

<dependency>
    <groupId>org.springframework.hateoas</groupId>
    <artifactId>spring-hateoas</artifactId>
    <version>0.25.1.RELEASE</version> //you can add latest version or down 
</dependency>
<dependency>
    <groupId>org.springframework.plugin</groupId>
    <artifactId>spring-plugin-core</artifactId>
  <version>1.0.3.RELEASE</version> //you can add latest version or down 
</dependency>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM