XStream 未发现字段异常
XStream No field found exception
您好,我已经尝试了很多,但无法找出在为标签添加别名时哪里做错了,我的 Xml 回复是这样的:
<ns1:redcustomerviewResponse SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="http://tempuri.org/weblink">
<jobcard xsi:type="ns3:Array" ns3:arrayType="ns2:RedCustViewDAO[1]" xmlns:ns3="http://schemas.xmlsoap.org/soap/encoding/">
<additionalrepair xsi:type="xsd:string">N/A</additionalrepair>
<custcomplaint xsi:type="xsd:string">SERVICE</custcomplaint>
<custname xsi:type="xsd:string">BABAN DEOKAR</custname>
<expdeliverydate xsi:type="xsd:string">17/07/2014</expdeliverydate>
<hours xsi:type="xsd:string">600</hours>
<jobCardNo xsi:type="xsd:string">sd</jobCardNo>
<jobcarddate xsi:type="xsd:string">17/07/2014</jobcarddate>
<jobcloseddate xsi:type="xsd:string">18/07/2014</jobcloseddate>
<jobsource xsi:type="xsd:string">Normal-Workshop</jobsource>
<labourdetails xsi:type="xsd:string">FREE SERVICE</labourdetails>
<phoneno xsi:type="xsd:string">8270325053</phoneno>
<serivceadvname xsi:type="xsd:string">SANDEEP</serivceadvname>
<servDealerCode xsi:type="xsd:string">ABD35926</servDealerCode>
<servicehstry xsi:type="xsd:string">ServiceHistory</servicehstry>
<servicesubtype xsi:type="xsd:string">Second</servicesubtype>
<servicetype xsi:type="xsd:string">Scheduled Services</servicetype>
<technicianname xsi:type="xsd:string">IRFAN SHAIKH</technicianname>
<tractorSrNo xsi:type="xsd:string">sd685</tractorSrNo>
</jobcard>
</ns1:redcustomerviewResponse>
别名 Class 是这个
@XStreamAlias("ns1:redcustomerviewResponse")
public class JobCardResponse {
@XStreamAlias("jobcard")
private Return _return;
public Return getReturn() {
return _return;
}
public void setReturn(Return _return) {
this._return = _return;
}
@Override
public String toString() {
return "AuthenticationResponse [strResponsecdc=" + getReturn().toString() + "]";
}
@XStreamAlias("jobcard")
public static class Return {
@XStreamAlias("additionalrepair")
private static String additionalRepair;
@XStreamAlias("custcomplaint")
private static String CustComplaint;
@XStreamAlias("custname")
private static String customerName;
@XStreamAlias("expdeliverydate")
private static String expDeliveryDate;
@XStreamAlias("hours")
private static String hours;
@XStreamAlias("jobCardNo")
private static String jobCardNo;
@XStreamAlias("jobcarddate")
private static String jobcarddate;
@XStreamAlias("jobsource")
private static String jobSource;
@XStreamAlias("jobcloseddate")
private static String jobCloseDate;
@XStreamAlias("labourdetails")
private static String labourDetails;
@XStreamAlias("phoneno")
private static String phoneNo;
@XStreamAlias("serivceadvname")
private static String serivceAdvName;
@XStreamAlias("servDealerCode")
private static String servDealerCode;
@XStreamAlias("servicehstry")
private static String serviceHistry;
@XStreamAlias("servicesubtype")
private static String serviceSubType;
@XStreamAlias("servicetype")
private static String serviceType;
@XStreamAlias("technicianname")
private static String technicianName;
@XStreamAlias("tractorSrNo")
private static String tractorSrNo;
public String getCustomerComplaint() {
return CustComplaint;
}
public void setCustomerComplaint(String customerComplaint) {
this.CustComplaint = customerComplaint;
}
public String getAdditionalRepair() {
return additionalRepair;
}
public void setAdditionalRepair(String additionalRepai) {
this.additionalRepair = additionalRepai;
}
public String getCustomerName() {
return customerName;
}
public void setCustomerName(String customerName) {
this.customerName = customerName;
}
public String getExpDeliveryDate() {
return expDeliveryDate;
}
public void setExpDeliveryDate(String expDeliveryDate) {
this.expDeliveryDate = expDeliveryDate;
}
public String getHours() {
return hours;
}
public void setHours(String hours) {
this.hours = hours;
}
public String getJobCardNo() {
return jobCardNo;
}
public void setJobCardNo(String jobCardNo) {
this.jobCardNo = jobCardNo;
}
public String getLabourDetails() {
return labourDetails;
}
public void setLabourDetails(String labourDetails) {
this.labourDetails = labourDetails;
}
public String getJobcarddate() {
return jobcarddate;
}
public void setJobcarddate(String jobcarddate) {
this.jobcarddate = jobcarddate;
}
public String getJobCloseDate() {
return jobCloseDate;
}
public void setJobCloseDate(String jobCloseDate) {
this.jobCloseDate = jobCloseDate;
}
public String getJobSource() {
return jobSource;
}
public void setJobSource(String jobSourrce) {
this.jobSource = jobSourrce;
}
public String getPhoneNo() {
return phoneNo;
}
public void setPhoneNo(String phoneNo) {
this.phoneNo = phoneNo;
}
public String getSerivceAdvName() {
return serivceAdvName;
}
public void setSerivceAdvName(String serivceAdvName) {
this.serivceAdvName = serivceAdvName;
}
public String getServDealerCode() {
return servDealerCode;
}
public void setServDealerCode(String servDealerCode) {
this.servDealerCode = servDealerCode;
}
public String getServiceHistry() {
return serviceHistry;
}
public void setServiceHistry(String serviceHistry) {
this.serviceHistry = serviceHistry;
}
public String getServiceSubType() {
return serviceSubType;
}
public void setServiceSubType(String serviceSubType) {
this.serviceSubType = serviceSubType;
}
public String getServiceType() {
return serviceType;
}
public void setServiceType(String serviceType) {
this.serviceType = serviceType;
}
public String getTechnicianName() {
return technicianName;
}
public void setTechnicianName(String technicianName) {
this.technicianName = technicianName;
}
public String getTractorSrNo() {
return tractorSrNo;
}
public void setTractorSrNo(String tractorSrNo) {
this.tractorSrNo = tractorSrNo;
}
}
}
上面的执行代码显示了这种类型的错误
Caused by: com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter$UnknownFieldException: No such field com.bcone.mahindraGreenClub.response.JobCardResponse$Return.additionalrepair
---- Debugging information ----
field : additionalrepair
class : com.bcone.mahindraGreenClub.response.JobCardResponse$Return
required-type : com.bcone.mahindraGreenClub.response.JobCardResponse$Return
converter-type : com.thoughtworks.xstream.converters.reflection.ReflectionConverter
path : /ns1:redcustomerviewResponse/jobcard/additionalrepair
line number : 8
class[1] : com.bcone.mahindraGreenClub.response.JobCardResponse
version : 0.0
过去 2 3 天我一直坚持这个问题,无法摆脱它。
您的 String
字段声明为 static
,这意味着它们绑定到 class,并且不是可以反序列化的对象的变量成员:
private static String additionalRepair;
您应该从所有这些字段中删除 static
:
private String additionalRepair;
您好,我已经尝试了很多,但无法找出在为标签添加别名时哪里做错了,我的 Xml 回复是这样的:
<ns1:redcustomerviewResponse SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="http://tempuri.org/weblink">
<jobcard xsi:type="ns3:Array" ns3:arrayType="ns2:RedCustViewDAO[1]" xmlns:ns3="http://schemas.xmlsoap.org/soap/encoding/">
<additionalrepair xsi:type="xsd:string">N/A</additionalrepair>
<custcomplaint xsi:type="xsd:string">SERVICE</custcomplaint>
<custname xsi:type="xsd:string">BABAN DEOKAR</custname>
<expdeliverydate xsi:type="xsd:string">17/07/2014</expdeliverydate>
<hours xsi:type="xsd:string">600</hours>
<jobCardNo xsi:type="xsd:string">sd</jobCardNo>
<jobcarddate xsi:type="xsd:string">17/07/2014</jobcarddate>
<jobcloseddate xsi:type="xsd:string">18/07/2014</jobcloseddate>
<jobsource xsi:type="xsd:string">Normal-Workshop</jobsource>
<labourdetails xsi:type="xsd:string">FREE SERVICE</labourdetails>
<phoneno xsi:type="xsd:string">8270325053</phoneno>
<serivceadvname xsi:type="xsd:string">SANDEEP</serivceadvname>
<servDealerCode xsi:type="xsd:string">ABD35926</servDealerCode>
<servicehstry xsi:type="xsd:string">ServiceHistory</servicehstry>
<servicesubtype xsi:type="xsd:string">Second</servicesubtype>
<servicetype xsi:type="xsd:string">Scheduled Services</servicetype>
<technicianname xsi:type="xsd:string">IRFAN SHAIKH</technicianname>
<tractorSrNo xsi:type="xsd:string">sd685</tractorSrNo>
</jobcard>
</ns1:redcustomerviewResponse>
别名 Class 是这个
@XStreamAlias("ns1:redcustomerviewResponse")
public class JobCardResponse {
@XStreamAlias("jobcard")
private Return _return;
public Return getReturn() {
return _return;
}
public void setReturn(Return _return) {
this._return = _return;
}
@Override
public String toString() {
return "AuthenticationResponse [strResponsecdc=" + getReturn().toString() + "]";
}
@XStreamAlias("jobcard")
public static class Return {
@XStreamAlias("additionalrepair")
private static String additionalRepair;
@XStreamAlias("custcomplaint")
private static String CustComplaint;
@XStreamAlias("custname")
private static String customerName;
@XStreamAlias("expdeliverydate")
private static String expDeliveryDate;
@XStreamAlias("hours")
private static String hours;
@XStreamAlias("jobCardNo")
private static String jobCardNo;
@XStreamAlias("jobcarddate")
private static String jobcarddate;
@XStreamAlias("jobsource")
private static String jobSource;
@XStreamAlias("jobcloseddate")
private static String jobCloseDate;
@XStreamAlias("labourdetails")
private static String labourDetails;
@XStreamAlias("phoneno")
private static String phoneNo;
@XStreamAlias("serivceadvname")
private static String serivceAdvName;
@XStreamAlias("servDealerCode")
private static String servDealerCode;
@XStreamAlias("servicehstry")
private static String serviceHistry;
@XStreamAlias("servicesubtype")
private static String serviceSubType;
@XStreamAlias("servicetype")
private static String serviceType;
@XStreamAlias("technicianname")
private static String technicianName;
@XStreamAlias("tractorSrNo")
private static String tractorSrNo;
public String getCustomerComplaint() {
return CustComplaint;
}
public void setCustomerComplaint(String customerComplaint) {
this.CustComplaint = customerComplaint;
}
public String getAdditionalRepair() {
return additionalRepair;
}
public void setAdditionalRepair(String additionalRepai) {
this.additionalRepair = additionalRepai;
}
public String getCustomerName() {
return customerName;
}
public void setCustomerName(String customerName) {
this.customerName = customerName;
}
public String getExpDeliveryDate() {
return expDeliveryDate;
}
public void setExpDeliveryDate(String expDeliveryDate) {
this.expDeliveryDate = expDeliveryDate;
}
public String getHours() {
return hours;
}
public void setHours(String hours) {
this.hours = hours;
}
public String getJobCardNo() {
return jobCardNo;
}
public void setJobCardNo(String jobCardNo) {
this.jobCardNo = jobCardNo;
}
public String getLabourDetails() {
return labourDetails;
}
public void setLabourDetails(String labourDetails) {
this.labourDetails = labourDetails;
}
public String getJobcarddate() {
return jobcarddate;
}
public void setJobcarddate(String jobcarddate) {
this.jobcarddate = jobcarddate;
}
public String getJobCloseDate() {
return jobCloseDate;
}
public void setJobCloseDate(String jobCloseDate) {
this.jobCloseDate = jobCloseDate;
}
public String getJobSource() {
return jobSource;
}
public void setJobSource(String jobSourrce) {
this.jobSource = jobSourrce;
}
public String getPhoneNo() {
return phoneNo;
}
public void setPhoneNo(String phoneNo) {
this.phoneNo = phoneNo;
}
public String getSerivceAdvName() {
return serivceAdvName;
}
public void setSerivceAdvName(String serivceAdvName) {
this.serivceAdvName = serivceAdvName;
}
public String getServDealerCode() {
return servDealerCode;
}
public void setServDealerCode(String servDealerCode) {
this.servDealerCode = servDealerCode;
}
public String getServiceHistry() {
return serviceHistry;
}
public void setServiceHistry(String serviceHistry) {
this.serviceHistry = serviceHistry;
}
public String getServiceSubType() {
return serviceSubType;
}
public void setServiceSubType(String serviceSubType) {
this.serviceSubType = serviceSubType;
}
public String getServiceType() {
return serviceType;
}
public void setServiceType(String serviceType) {
this.serviceType = serviceType;
}
public String getTechnicianName() {
return technicianName;
}
public void setTechnicianName(String technicianName) {
this.technicianName = technicianName;
}
public String getTractorSrNo() {
return tractorSrNo;
}
public void setTractorSrNo(String tractorSrNo) {
this.tractorSrNo = tractorSrNo;
}
}
}
上面的执行代码显示了这种类型的错误
Caused by: com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter$UnknownFieldException: No such field com.bcone.mahindraGreenClub.response.JobCardResponse$Return.additionalrepair
---- Debugging information ----
field : additionalrepair
class : com.bcone.mahindraGreenClub.response.JobCardResponse$Return
required-type : com.bcone.mahindraGreenClub.response.JobCardResponse$Return
converter-type : com.thoughtworks.xstream.converters.reflection.ReflectionConverter
path : /ns1:redcustomerviewResponse/jobcard/additionalrepair
line number : 8
class[1] : com.bcone.mahindraGreenClub.response.JobCardResponse
version : 0.0
过去 2 3 天我一直坚持这个问题,无法摆脱它。
您的 String
字段声明为 static
,这意味着它们绑定到 class,并且不是可以反序列化的对象的变量成员:
private static String additionalRepair;
您应该从所有这些字段中删除 static
:
private String additionalRepair;