2015-09-30 81 views
1

您好我已經嘗試了很多,但我無法找出做錯的走樣標籤,我的XML響應是這樣的:XStream的無現場發現異常

<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> 

而且混淆類是這個

@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 

我從最近兩三天就陷入了這種狀況,無法擺脫這種困境。

回答

0

你已經宣佈你String領域static這意味着它們是有界的上課,是不是可以反序列化你的對象的成員變量:

private static String additionalRepair; 

你應該從所有這些領域中刪除static

private String additionalRepair; 
+0

我已經刪除了靜態,但現在它想出了另一個錯誤,它沒有一個無參數的構造函數.. –

+0

非常感謝,很好 –

+0

如果你有新問題喲你應該問新的問題。 –