【问题标题】:resteasy response轻松回应
【发布时间】:2012-04-09 18:08:10
【问题描述】:

我有一个与这里描述的类似的案例:Dynamically change RESTEasy service return type

我面临的问题是我试图返回一个对象列表(用@XMLRootEntity 注释),但我得到一个 500 服务器错误代码:

服务器遇到内部错误(找不到 MessageBodyWriter 用于响应对象类型:java.util.ArrayList 的 媒体类型:应用程序/json)阻止它实现这一点 请求。

您能给一些建议如何解决这个问题吗?

我不知道该去哪里找。

谢谢。

【问题讨论】:

    标签: java web-services rest tomcat7


    【解决方案1】:

    你应该使用接口而不是使用列表的实现。

    尝试更改返回类型:java.util.List

    编辑: 尝试将列表包装成GenericEntity

    List<String> myList = new ArrayList<String>();
    // add ...
    final GenericEntity<List<String>> entity = new GenericEntity<List<String>>(myList) { };
    Response.status(Status.BAD_REQUEST).entity(entity).build();
    

    【讨论】:

    • 我正在使用列表,但我猜它在错误堆栈中看到了实现。在尝试返回 Response 之前,我尝试返回 List 并且一切正常。尝试返回 javax.ws.rs.Response 对象时出现问题。
    • 你方法的返回类型是什么?
    • 您可以使用ResponseBuilder 创建响应。返回类型必须是 javax.ws.rs.Response。例如:Response.status(Status.BAD_REQUEST).entity(myList).build()
    • 这正是我现在正在做的,但我得到了我提到的错误。
    • 您可能无法想象您的回答为我节省了多少麻烦。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2020-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多