带有 Jersey / Jackson 的 Java JAX-RS Web 服务,一个服务方法需要一个用户参数 (POJO) 作为 JSON。客户端应用程序 (Angular 6) 发送包含用户参数(序列化为 JSON)的 POST 请求。服务方法调用失败并显示错误消息:“无法识别的令牌 'jsonUser': was expected ('true', 'false' or 'null')”。这是 User 类 (POJO) - 您可以看到我尝试使用 @JsonProperty 注释所有属性,但这是不必要的,因为我没有“重命名”它们:import java.io.Serializable;import javax.ws.rs.FormParam;import com.fasterxml.jackson.annotation.JsonIgnoreProperties;import com.fasterxml.jackson.annotation.JsonProperty;//import org.glassfish.jersey.media.multipart.FormDataParam;/** * JavaBean for passing the User properties between the UI app (Angular) * and TearsWs. Implementation requires this to be serializable (JSON). */@JsonIgnoreProperties({ "DELIM" })public class User implements Serializable { private String userName; private String employeeId; private String employeeName; private String homeUnitCode; private boolean certifier; private HomeUnit[] tkHomeUnits; private boolean supervisor; private Employee[] whoISupervise; private boolean hrStaff; private boolean collector; private final static String DELIM = ", "; public User() { } // getters / setters //@JsonProperty("userName") public void setUserName(String ldapUid) { this.userName = ldapUid; } public String getUserName() { return this.userName; } //@JsonProperty("employeeId") public void setEmployeeId(String employeeId) { this.employeeId = employeeId; } public String getEmployeeId() { return this.employeeId; } //@JsonProperty("employeeName") public void setEmployeeName(String employeeName) { this.employeeName = employeeName; } public String getEmployeeName() { return this.employeeName; } //@JsonProperty("homeUnitCode") public void setHomeUnitCode(String homeUnitCode) { this.homeUnitCode = homeUnitCode; } public String getHomeUnitCode() { return this.homeUnitCode; }这是(Java)服务方法,它应该接受并处理 POST 请求:
1 回答
慕标琳琳
TA贡献1830条经验 获得超9个赞
您不需要将“用户”对象转换为字符串以传递给后端。尝试按原样传递用户对象。
this.httpClient.post<Employee[]>(postUrl, user, httpOptions);
并且还请检查传递的参数是否真正匹配暴露的其余服务。
添加回答
举报
0/150
提交
取消