我有一个使用 Spring MVC 和 Jersey 的 Rest Api
@GET
@Path("/hello")
@Produces(MediaType.APPLICATION_JSON)
public List<AccountEntity> hello() {
return repository.findAll();
}
此方法失败,始终出现以下错误
SEVERE: A message body writer for Java class java.util.ArrayList, and Java type java.util.List<net.viralpatel.spring.controller.AccountEntity>, and MIME media type application/json was not found.
我的 Gradle 依赖项
dependencies {
testCompile group: 'junit', name: 'junit', version: '4.12'
compile group: 'org.springframework', name: 'spring-webmvc', version: '4.3.9.RELEASE'
compile group: 'org.springframework', name: 'spring-tx', version: '4.3.9.RELEASE'
compile group: 'org.springframework.data', name: 'spring-data-jpa', version: '1.11.4.RELEASE'
compile group: 'org.hibernate', name: 'hibernate-entitymanager', version: '5.2.10.Final'
compile "javax.servlet:javax.servlet-api:3.0.1"
compile "javax.servlet:jstl:1.2"
compile 'org.glassfish.grizzly:grizzly-http-servlet-server:2.3.11@jar'
compile group: 'mysql', name: 'mysql-connector-java', version: '6.0.6'
compile group: 'com.sun.jersey.contribs', name: 'jersey-spring', version: '1.19.4'
}
我尝试添加
compile group: 'org.glassfish.jersey.media', name: 'jersey-media-moxy', version: '2.26-b06'
但随后错误出现为 javax.ws.rs.core.UriBuilder.uri(Ljava/lang/String;)Ljavax/ws/rs/core/UriBuilder;
添加 Jackson 依赖后更新
caused by: com.sun.jersey.api.MessageException: A message body writer for Java class java.util.ArrayList, and Java type java.util.List<net.viralpatel.spring.controller.AccountEntity>, and MIME media type application/json was not found.
最佳答案
您必须添加 jersey-json
依赖项,而不是 moxy
或 jackson
:
compile group: 'com.sun.jersey', name: 'jersey-json', version: '1.19.4'
此依赖项已包含 jackson
以及其他所需的依赖项。
关于java - Spring 中用于 Jersey 应用程序的自定义消息正文编写器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44797520/