2017-06-14 115 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

仍然无法正常工作 –