gpt4 book ai didi

java - 使用 Jersey 时未生成 JSON

转载 作者:可可西里 更新时间:2023-11-01 16:33:17 27 4
gpt4 key购买 nike

我正在使用最新版本的 Jersey 来实现一些 REST 示例服务。
你知道为什么当我使用 Fiddler 生成以下 HTTP 请求时,我得到:
500 内部服务器错误

MessageBodyWriter not found for media type={application/json, q=1000}, type=class java.util.ArrayList, genericType=java.util.ArrayList<com.example.Todo>

HTTP 请求:

GET http://localhost:8080/RestProject/rest/todos/1 HTTP/1.1
Connection: close
Accept: application/json
User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML,like Gecko) Chrome/41.0.2272.101 Safari/537.36
Accept-Encoding: gzip, deflate, sdch
Accept-Language: it-IT,it;q=0.8,en-US;q=0.6,en;q=0.4
Host: localhost:8080

这是被调用的 Rest 方法:

 //This method is called if XML or JSON is requested  
@GET
@Path("{id}")
@Produces({MediaType.APPLICATION_XML,MediaType.APPLICATION_JSON,MediaType.TEXT_XML})
public Todo getEntityXMLOrJSON(@PathParam("id") int id)
{
Todo todo = new Todo();
todo.setSummary("This is my first todo " + id);
todo.setDescription("This is my first todo");
return todo;
}

当我请求 xml 数据时,一切正常。

编辑:

enter image description here

最佳答案

我非常熟悉 Vogella 教程。很多人都发布了它。它使用 Jersey 2。您正在尝试向项目添加一些 Jersey 1 jar 。把你自己加的都拿出来。然后找到并添加这些

enter image description here

如果您使用的是 web.xml,则像这样注册提供者

<param-name>jersey.config.server.provider.packages</param-name>
<param-value>
com.jersey.jaxb,com.fasterxml.jackson.jaxrs.json
</param-value>

向 Jersey servlet 添加一个初始化参数。否则,使用 Java 配置,在您的 ResourceConfig 中,只是

register(JacksonJaxbJsonProvider.class);

那是为了 JAXB 注释支持。如果你不需要它,那么你可以使用 JacksonJsonProvider

关于java - 使用 Jersey 时未生成 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29316018/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com