【发布时间】:2019-02-14 20:35:20
【问题描述】:
我正在遵循教程中的 Spring Boot 示例,该示例实现了一个 Restful 服务以从数据库表中获取人员列表,但是当我调用时出现错误:IE 上的http://localhost:8080/person:没有找到返回值的转换器类型:类 java.util.ArrayList 。 到目前为止,我尝试从关于 stackoverflow 的建议中添加 Jackson 依赖项,按照我的课程,感谢任何帮助。 Springboot应用程序:
package ben;
@SpringBootApplication
@EnableAutoConfiguration
public class SpringBootWebApplication
{
public static void main (String [] args) {
SpringApplication.run(SpringBootWebApplication.class, args);
}
}
BDE4 类:
package ben.models;
@Entity
@Table(name="BDE4")
public class Bde
{
@Id
@Column
private int id;
@Column
private int numero;
public int getId()
{
return id;
}
public void setId(int id)
{
this.id = id;
}
public int getNumero()
{
return numero;
}
public void setNumero(int numero)
{
this.numero = numero;
}
}
PrsonRepository 接口:
package ben.repository;
@Repository
public interface PersonRepository extends CrudRepository<Bde, Integer> {
}
PersonService 接口:
package ben.services;
public interface PersonService
{
public List <Bde> findAll();
}
PersonServiceImpl 类:
package ben.services;
@Service
public class PersonServiceImpl implements PersonService
{
@Autowired
private PersonRepository personRepository;
@Override
public List<Bde> findAll()
{
System.out.println("PersonServiceImpl");
return (List<Bde>) personRepository.findAll();
}
}
PersonRest 类:
package ben.web;
@RestController
public class PersonRest
{
@Autowired
private PersonService personService;
@RequestMapping("/person")
public List <Bde> findAll() {
List <Bde> persons=(List<Bde>) personService.findAll();
for (Bde pers:persons)
{
System.out.println("id"+pers.getId() +" numero"+pers.getNumero());
}
return persons;
}
}
POM.XML :依赖项
<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>
<groupId>BenId</groupId>
<artifactId>SpringBoot</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<properties>
<start-class>ben.SpringBootWebApplication</start-class>
<java.version>1.8</java.version>
<oracle.driver.version>12.1.0.2</oracle.driver.version>
</properties>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<!-- <version>2.8.4.RELEASE</version> -->
<version>2.1.0.RELEASE</version>
</parent>
<dependencies>
<!-- <dependency> -->
<!-- <groupId>org.springframework.boot</groupId> -->
<!-- <artifactId>spring-boot-starter-thymeleaf</artifactId> -->
<!-- </dependency> -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<version>7.0.52</version>
<!-- <scope>provided</scope> -->
<!-- <version></version> -->
</dependency>
<dependency>
<groupId>org.eclipse.jdt.core.compiler</groupId>
<artifactId>ecj</artifactId>
<version>4.6.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>com.oracle.jdbc</groupId>
<artifactId>ojdbc7</artifactId>
<version>${oracle.driver.version}</version>
</dependency>
<!-- <dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.9.7</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.7</version>
</dependency> -->
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<executable>true</executable>
<mainClass>ben.SpringBootWebApplication</mainClass>
</configuration>
</plugin>
</plugins>
</build>
</project>
应用程序属性:
spring.mvc.view.prefix:/WEB-INF/jsp/
spring.mvc.view.suffix:.jsp
spring.datasource.url=jdbc:oracle:thin:@12.53.2.202:1521:xe
spring.datasource.username=hr
spring.datasource.password=hr
spring.datasource.driverClassName=oracle.jdbc.OracleDriver
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=none
spring.jpa.hibernate.dialect=org.hibernate.dialect.Oracle10gDialect
spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
【问题讨论】:
-
发布您的 Gradle 或 Maven 依赖项。
-
发布的依赖项
-
您不需要明确包括杰克逊。删除 jackson-core 和 jackson-databind。 Spring Boot 将提供您需要的一切。并修复空的
元素。 -
尝试将
tomcat-embed-jasper更新为9.0.16。7.*是一个相当过时的版本。application.properties文件没问题。记得检查tomcat-embed-jasper是否更新。 -
删除吧,Spring Boot 已经有嵌入式服务器了
标签: java spring spring-boot spring-mvc restful-url