簡體   English   中英

發送不為空或空的列表時,RestyGWT + Jersey錯誤500

[英]RestyGWT + Jersey Error 500 when sending a not null or empty List

假設我有一個類似於以下內容的Jersey資源:

@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或為空時,資源的邏輯將執行應有的工作,並且我可以對其進行調試而沒有任何問題。

JSONRepresentation的內容似乎對這個問題並不重要。

我不知道為什么會這樣,而且我真的找不到任何類似的問題,我們將不勝感激。

如果要將字符串發送回客戶端,請將代碼更改為:

@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);
   }
}

希望能有所幫助。

好的,我以某種方式弄清楚了為什么會發生該錯誤以及如何避免該錯誤。

問題是,問題實際上出在我的json表示形式中,我已經用私有變量以及每個變量的getter和setters定義了它(我上面有一些其他json表示形式的集合和實例以及其他String和基本變量)

事實是,由於某種原因,我真的想了解更多信息,如果將具有其他json表示形式的變量設置為私有,則會發生此錯誤

因此,我只是將該變量設置為public,並且一切正常,奇怪的是,另一個json表示形式類的Collections甚至可以作為私有變量(primitive,String和Date也可以正常工作)正常工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM