经过尝试后,我最终决定向您求助以解决我的问题。我看到了不同的人有着相同的问题,并尝试了他们被建议要做的所有事情,但仍然无法解决我的问题。基本上,我正在使用Jersey构建一个RESTful服务。对于我的客户端,我想返回一个JSON格式的对象。我阅读了不同的教程,并决定使用jersey-json-1.8库是有意义的。我像往常一样将所有东西都添加到了我的项目中并尝试运行它,但每次我调用服务(目前通过get请求)时,我都会收到HTTP错误代码500(内部服务器错误),而我的服务器则会回复找不到消息体编写器。 如果我返回XML,它就可以正常工作,一切都很好。我还尝试将jersey-json-1.8.jar复制到我的Tomcat lib文件夹中,因为我必须这样做才能使用我正在使用的mysql lib,但也没有帮助。 如果您需要更多信息,请留下评论,我会尽快提供。
我的项目设置如下: 3个不同的包 1. 我的RESTful服务 2. 我的Java工作,在那里我处理SQL连接等等。 3. 一个包,我在其中存储我需要处理并且希望以JSON格式返回的所有模型(例如测试驱动的路由)
一个Tomcat Web服务器 IDE:Eclipse 我正在使用Maven
无论我如何尝试返回这个对象,它都无法工作,并且我不断收到错误消息:
Mapped exception to response: 500 (Internal Server Error)
javax.ws.rs.WebApplicationException: com.sun.jersey.api.MessageException: A message body writer for Java class com.mykong.models.Teststrecke, and Java type class com.mykong.models.Teststrecke, and MIME media type application/json was not found
编辑: 这是我的JSON服务方法
@Path("/hellojson")
public class JSONService {
@GET
@Produces(MediaType.APPLICATION_JSON)
public ArrayList<Route> getJSONMsg()
{
Route ts = new Route();
ts.setId(1);
ts.setName("HelloWorld");
Route ts2 = new Route();
ts2.setId(2);
ts2.setName("HelloWorld");
ArrayList<Route> availRoutes = new ArrayList<Route>();
availRoutes.add(ts);
availRoutes.add(ts2);
return availRoutes;
}
}