java将post请求中的字符串列表传递给jersey应用程序时出现错误500
我用grizzly服务器开发了一个jersey应用程序,它有一个rest端点,如下所示
@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中使用以下json依赖项。xml
<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对象一起工作,其中不涉及列表。请帮帮我。提前谢谢
# 1 楼答案
请确保在正文中使用postman时选择的是原始类型和application/json。我执行了你的代码,没有问题。如果您共享正在生成的日志,我可以帮助您
# 2 楼答案
首先,我建议将其删除
调用内部构造函数。您的对象不扩展其他对象,因此隐式地扩展了Java
Object
类。因此,您正在调用Object
构造函数,这是一个已经由编译器执行的操作要解决您的问题,请尝试向类中添加
set
和get
groupId
和listOfUserId
是私有的,因此不能从类外设置它们我没有测试它