Java 解组后Rest Easy客户端框架值丢失
昨天我尝试使用RestEasy框架的客户端。该接口有一个方法:Java 解组后Rest Easy客户端框架值丢失,java,resteasy,Java,Resteasy,昨天我尝试使用RestEasy框架的客户端。该接口有一个方法: @PUT @Path("document/autoincrement") @Consumes("application/xml") BaseClientResponse<String> insertPointOfInterest(PoiDocument poiDocument); …及其超类: @XmlRootElement(name = "result") public abstract class Response
@PUT
@Path("document/autoincrement")
@Consumes("application/xml")
BaseClientResponse<String> insertPointOfInterest(PoiDocument poiDocument);
…及其超类:
@XmlRootElement(name = "result")
public abstract class ResponseResult {
protected String getClearString(String string) {
if (string != null) {
return Constants.removeInvalidXMLCharacters(string);
}
return "";
}
}
现在,当我将客户端调用也更改为:
BaseClientResponse<InsertedResponse> response = client.insertPointOfInterest(poiDocument);
logger.info("Returned: " + response.getEntity().getInsertedRecords());
BaseClientResponse-response=client.insertPointOfInterest(poiDocument);
info(“返回:”+response.getEntity().getInsertedRecords());
我得到一个空字符串,而不是一些值
所以,问题是——价值到哪里去了?它应该打印一个数字,如上面示例中的14。缺少一个JAXB注释(@xmlseealway) 和添加的setter方法
@XmlRootElement(name="insertedRecord")
public class InsertedResponse extends ResponseResult{
...
public void setInsertedRecords(String insertedRecord) {
this.insertedRecord = insertedRecord;
}
解决了这个问题
@XmlRootElement(name = "result")
public abstract class ResponseResult {
protected String getClearString(String string) {
if (string != null) {
return Constants.removeInvalidXMLCharacters(string);
}
return "";
}
}
BaseClientResponse<InsertedResponse> response = client.insertPointOfInterest(poiDocument);
logger.info("Returned: " + response.getEntity().getInsertedRecords());
@XmlRootElement(name = "result")
@XmlSeeAlso( { InsertedResponse.class, OtherChild.class, SomeOtherChild.class })
public abstract class ResponseResult {
...
}
@XmlRootElement(name="insertedRecord")
public class InsertedResponse extends ResponseResult{
...
public void setInsertedRecords(String insertedRecord) {
this.insertedRecord = insertedRecord;
}