2017-09-22 24 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。我执行你的代码,我没有问题。如果你分享正在生成的日志,我可以帮你。

相关问题