有人可以显示或重定向示例其他Web服务java代码,它会消耗xml有效负载并使用xml数据吗?我试过谷歌搜索,但它没有多大帮助,任何帮助将不胜感激。
答案 0 :(得分:0)
好的,所以你想构建一个消耗xml有效负载的服务,然后使用它的数据。
你可以使用resteasy和jaxb。您可以找到示例here
这个想法如下:你的xml有效负载必须映射到jaxb带注释的对象,而resteasy会为你做unmarshall操作。
@POST
@Consumes(MediaType.APPLICATION_XML)
public Response postOrder(Order order){
//Its crime to use System.out.println . Use loggers instead
System.out.println(order.getDestination());
return Response.status(200).entity("Received XML").build();
}
在此示例中,Order是一个带有jaxb注释的类,当您调用该服务时,接收到的xml将被转换(unmarshall操作)到订单对象。
这一切都在链接中解释了!
您也可以使用Jersey,这是JAX-RS规范的另一个实现。这是link,显示了您要做的事情。
祝你好运!答案 1 :(得分:0)
嗨@coder这一个很简单的例子。它消耗了xmlpayload。
以下是使用JAXB注释创建的用于使用xml数据的类。
@XmlRootElement(name = "demo-value-provider")
public class DemoValueProvider {
private int a;
private int b;
@XmlElement(name = "value-of-a")
public int getA() {
return a;
}
public void setA(int a) {
this.a = a;
}
@XmlElement(name = "value-of-b")
public int getB() {
return b;
}
public void setB(int b) {
this.b = b;
}
这是我的webservice端点,它接收此xml有效负载作为输入。
@Service("DemoWS")
public class DemoWS {
private final static String MODULE = "DEMO-WS";
@POST
@Consumes(MediaType.APPLICATION_XML)
@Produces(MediaType.TEXT_PLAIN)
public int methodWithXmlParameter(DemoValueProvider valueProvider) {
return valueProvider.getA() + valueProvider.getB();
}
}
输入xml有效负载是:
<demo-value-provider>
<value-of-a>1</value-of-a>
<value-of-b>2</value-of-b>
</demo-value-provider>
您还可以在xml有效负载中生成输出。
希望这会对你有所帮助。