2017-06-14 68 views
-1

我的Spring MVC的Web服務代碼如下。JAXB註釋@XmlElement(NAME = 「的ElementName」)不與XML元素名稱結合

模型類

@XmlRootElement(name="wrappedSecretData") 
public class VendorData { 


     private long lKeyId; 



     @XmlElement(name="keyId") 
     public long getlKeyId() { 
      return lKeyId; 
     } 


     public void setlKeyId(long lKeyId) { 
      this.lKeyId = lKeyId; 
     }  
    } 

控制器方法

@RequestMapping(value = "/vendor", method = RequestMethod.POST) 
     public String addVendor(@RequestBody VendorData vendorData) { 

      /*Checking recieved value*/ 
      System.out.println(vendorData.getlKeyId());//**Returning 0 value ** 
      return "Success"; 
     } 

XML請求體爲Web服務

<wrappedVendorSecretsMetadata> 
    <keyId>1</keyId> 
</wrappedVendorSecretsMetadata> 

我得到的lKeyId(粗體評論) 「0」 值。 我在哪裏做錯了。 請提供給xml元素結合使用@XmlElement(名稱=「KEYID」)註釋到對象構件的正確方法。

+0

解組的示例XML與你的'VendorData'類爲我工作正常(包括'lKeyId = 1')。所以,可能問題出在你沒有顯示的Java代碼部分。我的網絡service.Please的 –

+0

我加入了完整的代碼幫我在哪裏,我在做我wrong.I在解組it.How越來越問題我解組? –

回答

0

我認爲你需要的@XmlElement只在變量聲明。

+0

我在變量聲明中使用了@XmlElement,但仍然無法正常工作。 –

0

試試這個:

@XmlRootElement(name="wrappedVendorSecretsMetadata") 
@XmlAccessorType(XmlAccessType.PUBLIC_MEMBER) 
public class VendorData { 

    private long lKeyId; 

    public VendorData(){ 

    } 

    @XmlElement(name="keyId") 
    public long getlKeyId() { 
     return lKeyId; 
    } 

    public void setlKeyId(long lKeyId) { 
     this.lKeyId = lKeyId; 
    }  
} 
+0

我嘗試同樣的解決方案,但還沒有取keyid的元素名稱從XML到lKeyId類成員的名字。在lKeyId中獲得0值。請幫助... –

+0

嘗試將'long'更改爲'長' –

+0

仍然無法正常工作 –