java如何在Jersey Restful webservice上输出JSON格式
我已经在我的应用程序中添加了一个Jersey库以及一个媒体JSON库,您可以在这里看到:
<?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>
<groupId>click-digital-backend</groupId>
<artifactId>ClickDigitalBackend</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>javax.ws.rs</groupId>
<artifactId>javax.ws.rs-api</artifactId>
<version>2.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-json-jackson</artifactId>
<scope>runtime</scope>
<version>2.22.1</version>
</dependency>
</dependencies>
</project>
这里我有一个简单的测试方法,可以将列表作为JSON返回:
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import java.util.ArrayList;
import java.util.List;
@Path("/devmanager")
public class DeviceManager implements DevManager {
@GET
@Produces({MediaType.APPLICATION_JSON})
public MyList getString(){
List<String> al = new ArrayList();
al.add ("Hello");
al.add ("World");
MyList list = new MyList (al);
return list;
}
@Path("/string")
@GET
@Produces(MediaType.APPLICATION_JSON)
public String getS(){
return "Hallo";
}
以及:
package devicemanager;
import javax.xml.bind.annotation.XmlRootElement;
import java.util.List;
@XmlRootElement(name = "MyList")
public class MyList {
List<String> userList;
public MyList (List<String> lst)
{
this.userList = lst;
}
//setters and getters goes here
}
现在我正在运行glassfish服务器v.4.1.1,但我在浏览器和日志中发现一个500错误,上面写着:
[2018-01-07T16:51:38.646+0100] [glassfish 4.1] [SEVERE] [] [org.glassfish.jersey.message.internal.WriterInterceptorExecutor] [tid: _ThreadID=34 _ThreadName=http-listener-1(4)] [timeMillis: 1515340298646] [levelValue: 1000] [[
MessageBodyWriter not found for media type=application/json, type=class devicemanager.MyList, genericType=class devicemanager.MyList.]]
我已经搜索了几个小时的解决方案,并试图包括许多不同的库,应该做这个JSON格式,但我没有找到一个解决方案。即使我请求XML格式,我也会遇到同样的错误。 如果有人能帮我找到问题那就太好了
共 (0) 个答案