2017-09-22 20 views
2

我開發了一個帶有灰熊服務器的澤西應用程序,它有一個如下所示的休息端點。獲取錯誤500,將發送請求中的字符串列表傳遞給澤西應用程序

@Path("/testPost") 
@POST 
@Produces(MediaType.APPLICATION_JSON) 
@Consumes(MediaType.APPLICATION_JSON) 
public Response testPost(UserGroupDto ugdto) 
{ 

    System.out.println("inside testpost"); 
    return Response.accepted(ugdto).build(); 
} 

我UserGroupdto看起來像下面

public class UserGroupDto { 

    private String groupId; 
    private List<String> listOfUserId; 

    public UserGroupDto() { 
     super(); 
    } 

    public UserGroupDto(String groupId, List<String> listOfUserId) { 
     super(); 
     this.groupId = groupId; 
     this.listOfUserId = listOfUserId; 
    } 
} 

我使用郵差作爲客戶端和發送以下JSON請求

{ 

    "groupId": "G004", 
    "listOfUserId" :[ 
     "f3457g", 
     "5f3rdt", 
     "U105" 
    ] 
} 

我使用下面在我的pom.xml

依存關係JSON
<dependency> 
<groupId>org.glassfish.jersey.media</groupId> 
<artifactId>jersey-media-json-jackson</artifactId> 
<version>2.25.1</version> 
</dependency> 

<dependency> 
<groupId>com.fasterxml.jackson.core</groupId> 
<artifactId>jackson-core</artifactId> 
<version>2.8.6</version> 
</dependency> 

我得到一個內部服務器錯誤500.控制檯上沒有錯誤,並沒有打印sysout語句。它似乎與List沒有涉及的其他類型的Dto對象一起工作。請幫幫我。提前致謝。

+0

當我在本地環境中測試你的服務和請求時,它工作得很好,因爲它不會爲我產生500個異常。你也應該在這裏發佈你的異常棧跟蹤。 同樣在迴應中,它給了我一個空白對象,因爲你的模型類沒有setter和getters。 –

回答

0

首先,我建議刪除內部構造函數

super() 

電話。 Yous對象不會擴展其他對象,因此它隱含地擴展了Java類別Object。因此,您正在調用Object構造函數,這是編譯器已經執行的操作。

要解決您的問題,請嘗試將setget添加到您的班級。 groupIdlistOfUserId是私人的,那麼他們不能從你的班級以外設置。

我沒有測試它。

+0

謝謝你們的回覆。我的班上有吸氣劑和安裝劑。我只是把它們發佈在這裏,因爲它們在pojo類中是正常的。我將從我的默認構造函數中刪除super(),並且還會查看郵遞員的主體類型。如果您覺得由於其他原因可能會發生問題,請告知我。謝謝 – Avijit

0

請確保在使用郵遞員的同時選擇原始類型和應用程序/ json。我執行你的代碼,我沒有問題。如果你分享正在生成的日誌,我可以幫你。

相關問題