说我的泽西资源有点类似于此:
@Path("/test")
public class TestResource{
@POST
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public Response test(List<JSONRepresentation> json){
//some logic that gives different responses, all just Strings
}
}
和RestyGWT服务一样消费它:
@Path("api/test")
public interface TestService extends RestService{
@POST
public void test(List<JSONRepresentation> json, MethodCallback<String> callback);
}
问题是,当我尝试使用服务访问资源时,如果List不为null或为空,我会收到与服务器代码无关的内部服务器错误,因为我可以'甚至调试测试方法逻辑。
但是,当List为null或为空时,Resource的逻辑会执行它应该的操作,我可以毫无问题地调试它。
对于这个问题,JSONRepresentation的内容似乎并不重要。
我不知道为什么会发生这种情况,我无法找到任何类似的问题,任何帮助都会非常感激。
答案 0 :(得分:0)
如果要将字符串发送回客户端,请将代码更改为:
@Path("/test")
public class TestResource{
@POST
@Produces(MediaType.APPLICATION_JSON)
public String test(List<JSONRepresentation> json){
//some logic that gives different responses, all just Strings
}
}
并将资源代码更改为:
@Path("api/test")
public interface TestService extends RestService{
@POST
public void test(List<JSONRepresentation> json, TextCallback callback);
}
}
希望有所帮助。
答案 1 :(得分:0)
好的,我以某种方式弄清楚错误发生的原因以及如何避免错误。
问题是,问题实际上是在我的json表示中,我已经为它们中的每一个定义了私有变量和getter以及setter(我有一些set和其他json表示的实例以及其他String和原始变量)
问题是,出于某种原因,我真的想知道更多,如果一个具有另一种json表示的变量设置为私有,则会发生此错误
所以,我只是将该变量设置为公共,一切正常,奇怪的是,即使私有变量(基元,字符串和日期工作也很好),其他json表示类的集合也能正常工作。