2015-03-28 3 views
8

मेरे आवरण वर्ग यह है:सिर्फ एक मूल्य के साथ CDATA शुरू नहीं

@XmlRootElement(name = "GETA") 
public class EfGetAResponseWrapperXmlObject { 

    private String something; 


    @XmlElement(name = "result") 
    public String getSomething() { 
     return something; 
    } 

    public void setSomething(String something) { 
     this.something = something; 
    } 

} 

इस आवरण वर्ग के लिए मैं SoapUI पर इस जवाब पाने:

<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"> 
     <S:Body> 
      <ns2:ef_getAresponse xmlns:ns2="http://service.package/"> 
      <ef_get_AReturn>&lt;GETA> 
     &lt;result>mystring&lt;/result> 
    &lt;/GETA></ef_get_AReturn> 
      </ns2:ef_get_AResponse> 
     </S:Body> 
    </S:Envelope> 

अगर मैं अपने आवरण के लिए एक और चर परिचय वर्ग:

:

@XmlRootElement(name = "GETA") 
    public class EfGetAResponseWrapperXmlObject { 

     private String something; 
     private String other; 


     @XmlElement(name = "result") 
     public String getSomething() { 
      return something; 
     } 

     public void setSomething(String something) { 
      this.something = something; 
     } 

     public String getOther() { 
      return other; 
     } 
     public void setOther(String other) { 
      this.other = other; 
     } 
    } 

मैं इस जवाब मिल 210

<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"> 
    <S:Body> 
     <ns2:ef_getAresponse xmlns:ns2="http://service.package/"> 
     <ef_get_AReturn><![CDATA[<GETA> 
    <result>fasf</result> 
    <other>fds</other> 
</GETA>]]></ef_get_AReturn> 
     </ns2:ef_getAresponse> 
    </S:Body> 
</S:Envelope> 

मैं इस व्यवहार को समझ नहीं पा रहा हूं। मैं पहले मामले पर वही जवाब देना चाहता हूं जो मेरे पास दूसरे मामले में है। मैं यह कैसे कर सकता हूँ?

+0

http://forums.asp.net/t/1624525.aspx?Prevent+XML+web+service+SOAP+from+enclosing+returned+data+in+CData+। –

+0

क्या आपने http://stackoverflow.com/a/10968561/1295364 – carcaret

+0

में '@ XmlTransient' के साथ फ़ील्ड को एनोटेट करने का प्रयास किया है क्या आपका मतलब है कि पहली प्रतिक्रिया सभी "<" से निकली है? जेएक्सबी/जेएक्सडब्ल्यूएस स्वचालित रूप से "सीडीएटीए" क्यों होगा इसका प्राथमिक कारण यह है कि यदि वहां मार्कअप या कुछ अन्य बचने योग्य सामग्री है। आपकी दूसरी प्रतिक्रिया ऐसा नहीं लगती है जो आवश्यक हो। शायद आपको अपने ऑब्जेक्ट फैक्ट्री को देखना चाहिए * क्यों * यह हो रहा है। हल करने के लिए, केवल कारकेयर – kolossus

उत्तर

संबंधित मुद्दे