围绕现有Jersey RESTful服务的SOAP包装器

时间:2011-02-09 15:39:47

标签: web-services soap jersey

我使用Jersey创建了简单的Web服务,该服务读取XML文件,然后基于该xml创建一些对象。我所拥有的只是一种将帖子作为xml使用的方法。我解析xml并使用值来创建一些业务对象。

最近我们发现我们的客户只支持SOAP。

有没有办法在此基础上轻松编写SOAP包装器? (我看到骡子提到但从未使用过它)

或者从头开始并在SOAP中重写会更容易吗?

我对SOAP完全不熟悉,它看起来比我使用Jersey的经历复杂得多。谢谢!

1 个答案:

答案 0 :(得分:0)

最简单的方法是公开一个将XML作为字符串的方法,解析它并返回一个XML文档(同样作为String)。

public class Receiver  { 
  public String postXML(String inputDocument) {
    // parse and process XML xml 
    ...
    return outputDocument.toString(); 
  }
... 
}

您应该能够在Jersey服务中使用该方法,必要时可以通过委派给单独的类。使用soap:http://axis.apache.org/axis/java/index.html

可以很容易地围绕这样的Facade对象创建SOAP服务

技术上优越的解决方案是将您的XML分解为面向对象的数据传输对象,或者使用例如XML实现SOAP服务。文档/文字消息。前者可能只是增加成本而没有价值,具体取决于您的情况。后者可能甚至不会得到您的合作伙伴的支持。有关SOAP消息传递样式的讨论,请参阅:

http://msdn.microsoft.com/en-us/library/ms996466.aspx#rpc_literal_topic3