2017-06-23 67 views
0

我在做Rest java中的webservice。我需要通过一个XML与发布请求。我的XML如下:如何在REST中的XML元素中添加属性

<Case><Version>1.0</Version><Code>457123</Code><Id>TRD</Id><Meta uc=\"Sample\" pip=\"116.0.1.1\" lot=\"P\"/><Case> 

我通过定义适当注释的类变换这个XML到Java对象。

但如何为XMLElement <Meta>添加属性。如果我添加@XmlAttribute然后为根xml元素添加属性

请建议一种方法来做同样的事情。我正在使用Eclipse IDE

回答

0

这应该会让你走。

DefaultHttpClient httpClient = new DefaultHttpClient(); 
HttpPost postRequest = new HttpPost("http://localhost:8080/TESTINGrestful/rest/polls/comment"); 
StringEntity input = new StringEntity("<Comment>...</Comment>"); 
input.setContentType("text/xml"); 
postRequest.setEntity(input); 
HttpResponse response = httpClient.execute(postRequest); 

尝试用这个实验。它从这个 http://svn.apache.org/viewvc/httpcomponents/oac.hc3x/trunk/src/examples/PostXML.java?view=markup

更新采取什么 如果您正在寻找你的XML映射到Java那就试试这个

@XmlRootElement(name = "Case") 
public class CaseClass { 
    @XmlElement 
    private int Version; 

    @XmlElement 
    private int Code; 

    @XmlElement 
    private int Id; 

    private meta Meta; 
} 

@XmlElement(name = "Meta") 
public class meta { 

    @XmlAttribute 
    private String uc; 

    @XmlAttribute 
    private String pip; 

    @XmlAttribute 
    private String lot; 
} 
+0

没有做客户端..在做web服务 – Leeza

+0

答案已经更新,包括XML的映射,如果你正在寻找。 – zapping

0

尝试这种方式

@XmlRootElement(name = "Meta") 
public class Meta{ 

private UC uc; 

} 

@XmlElement(name = "uc") 
public class UC{ 

@XmlAttribute 
private String value; 
} 

以下链接了解更多有用的替代品 REST: convert XML content passed with POST to a java object, attribute inside the element

+0

谢谢你的回复@khurram ..我会检查出来并 – Leeza

+0

但我的rootelemt是案件,而不是Meta .. Meta是一个元素 – Leeza

+0

它没有工作:(.. Plss建议的方式 – Leeza