![](/img/trans.png)
[英]java.lang.ClassNotFoundException: org.springframework.core.io.Resource
[英]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.