簡體   English   中英

在將請求后的字符串列表傳遞到jersey應用程序時出現錯誤500

[英]Getting error 500 for passing a list of string in post request to jersey app

我開發了帶有grizzly服務器的jersey應用程序,該服務器具有如下所示的其余端點。

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

我正在使用POSTMAN作為客戶端並在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對象一起工作。 請幫我。 提前致謝。

首先,我建議刪除

super()

調用內部構造函數。 Yous對象不會擴展其他對象,因此,它隱式地擴展了Java Object類。 因此,您正在調用Object構造函數,該操作已被編譯器執行。

要解決您的問題,請嘗試添加setget您的班級。 groupIdlistOfUserId是私有的,因此無法從您的班級外部進行設置。

我沒有測試。

請確保在正文中使用郵遞員時選擇原始類型和application / json。 我執行了您的代碼,沒有問題。 可能是您共享正在生成的日志,我可以為您提供幫助。

暫無
暫無

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

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