【问题标题】:REST Webservice -- consume xml payloadREST Web 服务——使用 xml 有效负载
【发布时间】:2015-08-04 16:02:13
【问题描述】:

有人可以向我展示或重定向一个示例 rest webservice java 代码,它消耗 xml 有效负载并使用 xml 数据吗?我尝试了谷歌搜索,但没有太大帮助,任何帮助将不胜感激。

【问题讨论】:

    标签: web-services rest


    【解决方案1】:

    好的,所以你想构建一个使用 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操作)为order对象。

    链接里都有说明!

    您还可以使用 Jersey,它是 JAX-RS 规范的另一种实现。这是一个link,它显示了您正在尝试做的事情..

    祝你好运!

    【讨论】:

      【解决方案2】:

      嗨@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;
      }
      

      这是我的网络服务端点,它接收这个 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 有效负载中生成输出。

      希望这会对你有所帮助。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-06-09
        • 2014-02-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多