获取错误500以将帖子请求中的字符串列表传递给jersey app

时间:2017-09-22 12:28:56

标签: java json rest 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语句。它似乎与其他类型的Dto对象一起工作,其中不涉及List。请帮我。提前致谢。

2 个答案:

答案 0 :(得分:0)

首先,我建议删除

super()

调用内部构造函数。 Yous对象不会扩展其他对象,因此,它隐式地扩展了Java Object类。因此,您正在调用Object构造函数,这是一个已由编译器执行的操作。

要解决您的问题,请尝试将setget添加到您的班级。 groupIdlistOfUserId是私密的,因此无法在课堂外设置。

我没有测试过。

答案 1 :(得分:0)

请确保在身体中使用邮递员时选择原始类型和应用程序/ json。我执行了你的代码,我没有遇到任何问题。如果您共享生成的日志,我可以帮助您。