2012-03-26 33 views
0

我这里所描述的一个类似案例:Dynamically change RESTEasy service return typeRestEasy的响应

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

服务器遇到一个内部错误(找不到 MessageBodyWriter类型的响应对象: 媒体类型的java.util.ArrayList中:应用/ JSON)阻止其履行此 请求。

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

我不确定在哪里看。

谢谢。

回答

8

您应该使用接口而不是使用list的实现。

尝试改变返回值类型有: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(); 
+0

我使用的名单,但我猜它认为在执行错误堆栈。尝试返回响应之前,我试着返回列表,一切正常。尝试返回javax.ws.rs.Response对象时出现问题。 – Radu 2012-03-26 11:06:22

+0

什么是你的方法返回类型? – Aure77 2012-03-26 11:52:51

+0

您可以使用[ResponseBuilder](http://docs.jboss.org/resteasy/docs/2.3.1.GA/javadocs/javax/ws/rs/core/Response.ResponseBuilder.html)创建响应。 返回类型必须是javax.ws.rs.Response。例如: 例如:'Response.status(Status.BAD_REQUEST).entity(myList).build()' – Aure77 2012-03-26 12:19:52

相关问题