JAXB Unmarshalling失败

时间:2012-08-03 20:54:52

标签: jaxb unmarshalling

解组响应时出现以下错误字符串(xml格式)。最初它是抱怨和,所以我从响应中删除了肥皂部分。现在它出现了这个错误。

使用JAXB 2

从提供的WSDL创建类
**javax.xml.bind.UnmarshalException: unexpected element (uri:"http://ws.taxwareenterprise.com", local:"calculateDocumentResponse"). Expected elements are (none)
    at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext.handleEvent(UnmarshallingContext.java:662)
    at com.sun.xml.bind.v2.runtime.unmarshaller.Loader.reportError(Loader.java:258)
    at com.sun.xml.bind.v2.runtime.unmarshaller.Loader.reportError(Loader.java:253)**

这是我的回复字符串(部分内容)

**<calculateDocumentResponse xmlns="http://ws.taxwareenterprise.com">
            <txDocRslt>
                <jurSumRslts>
                    <jurSumRslt>
                        <xmptAmt>5.0</xmptAmt>
                        <txableAmt>15.0</txableAmt>
                        <txAmt>0.04</txAmt>
                        <txJurUID>...**

这是我的xsd for“CalculationResponse”(部分内容)

<xs:complexType name="CalculationResponse">
        <xs:sequence>
            <xs:element name="txDocRslt" type="tns:TxDocRslt"/>
        </xs:sequence>
    </xs:complexType>

这是我的解组代码:

**final JAXBContext context = JAXBContext.newInstance(CalculationResponse.class);
            final Unmarshaller unmarshaller = context.createUnmarshaller();
            response = processResponse(response);//for removing soap headers
            responseObj = (CalculationResponse) unmarshaller.unmarshal(new StringReader(response));//Fails here...
            final TxDocRslt txDocRslt = responseObj.getTxDocRslt();**

0 个答案:

没有答案