一尘不染

泽西岛:找不到Java类和MIME媒体类型application / json的消息正文编写器

json

在尝试找出我的问题之后,我终于决定问您如何解决我的问题。我见过不同的人有相同的问题,我尝试了所有建议他们做的事情,但没有任何帮助解决我的问题。所以基本上我有一个使用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;


    }
}

阅读 264

收藏
2020-07-27

共1个答案

一尘不染

尝试将Genson库添加到您的类路径http://owlike.github.io/genson/中。它是一个json
<>
java流和数据绑定api。它与jersey集成良好,要让您运行,您需要配置0。Jersey会检测到该库在您的类路径中,并通过委派给Genson来启用json映射。

2020-07-27