在尝试找出我的问题之后,我终于决定问您如何解决我的问题。我见过不同的人有相同的问题,我尝试了所有建议他们做的事情,但没有任何帮助解决我的问题。所以基本上我有一个使用Jersey进行构建的RESTful服务。对于我的客户,我想返回JSON格式的对象。我通读了不同的教程,并决定使用jersey- json-1.8库是有意义的。我像往常一样将所有内容添加到我的项目中,并尝试运行它,但是每次调用服务时(通过get request atm。),我收到HTTP错误代码500(内部服务器错误),并且服务器响应没有消息正文作家可以找到。如果我要返回XML,它就可以正常工作,并且一切都很好。我也尝试过复制jersey- json-1.8。jar到我的Tomcat lib文件夹中,因为我必须使用我正在使用的mysql lib来执行此操作,但它也无济于事。如果您能帮助我使这些工作正常,我将非常高兴!如果您需要更多信息,请发表评论,我们将尽快为您提供:)
我的项目设置是:3个不同的包1.我的RESTfulServices 2.我在其中处理SQL连接的Java工作区等。3.一个包,其中存储了需要使用的所有我想以JSON格式返回的模型(在我的示例中为testdrive的路线)
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; } }
尝试将Genson库添加到您的类路径http://owlike.github.io/genson/中。它是一个json <> java流和数据绑定api。它与jersey集成良好,要让您运行,您需要配置0。Jersey会检测到该库在您的类路径中,并通过委派给Genson来启用json映射。