【发布时间】:2017-03-15 15:26:56
【问题描述】:
我正在尝试通过 Restful Web 服务传递 Pojo 的列表(状态类)。
@POST
@Path("/saveDetails2")
@Consumes(MediaType.APPLICATION_JSON)
public String saveFormerWithLandDetails(@FormParam("name") String name, @FormParam("mobileNo") Long mobileNo,
@FormParam("address1") String address1,@FormParam("address2") String address2,@FormParam("states")List<State> states) {
// Business logic
return "SUCCESS";
}
在邮递员中,以下 json 数据添加为原始数据:
{
"name":"ABCDSSS",
"mobile":123456789,
"addressLine1":"ADDRESS3456",
"addressLine2":"ADDRESS3456",
"states":[
{
"code":"ABC",
"name":"TEST"
}
]
}
在 Header 中,Content-Type - application/json
状态表是:
@XmlRootElement(name = "State")
@XmlAccessorType(XmlAccessType.NONE)
public class State implements Serializable {
@Id
@XmlElement(name = "id")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
@XmlElement(name="code")
@ Column(name = "state_code")
private String code;
@XmlElement(name="name")
@Column(name="state_name")
private String name;
// setters and getters
}
错误是:
HTTP 状态 500 - java.lang.IllegalStateException:当请求实体的内容类型不是 application/x-www-form-urlencoded 时使用 @FormParam
那么什么是 Param 注释(@QueryParam 和 @PathParam 都没有传递数据)我可以在我的情况下使用?
在 Restful Web 服务中使用 Pojo 并通过 POSTMAN 进行测试的最佳方式是什么。
我在 SOF 中发现与此类似,但传递了字符串列表,我采用了相同的方法但没有奏效。
【问题讨论】: