在现有SOAP Web服务上构建REST包装器

时间:2012-07-05 21:44:26

标签: java rest soap proxy-object

我的团队正在基于现有的基于SOAP的Web服务开发REST服务包装器。我们并不完全了解SOAP服务内部,只能访问WSDL文件。我们的REST服务包装器将只是一对一的映射。

我真的知道它不遵守REST哲学,即使请允许我称之为REST服务。此REST服务将部署在Tomcat上,许多客户端将同时访问它。

当前的实现是,对于每个客户端,我们将创建一个代理对象(使用SOAP WSDL代理类)。此代理对象将用于调用SOAP API。 SOAP需要在代理对象上绑定身份验证详细信息,因此我们在运行时为内存中的每个客户端保存这些对象,同时进行第一次REST调用以建立会话。

使用SessionID标识符在运行时获取保存的对象。现在的问题是这些代理对象占用了大量内存块,只支持少量REST客户端。 (默认64 MB,只能运行19个REST客户端)。现在我们想要改变方法并且需要你的建议,这就是麻烦。

如果有更好的解决方案,请告诉我。我们不希望DB存储对象。

1 个答案:

答案 0 :(得分:0)

如果您只能调用HTTP / Soap服务并且无法访问代码,那么您可以使用适当的REST约定创建REST服务,然后实现对SOAP服务调用的转换。您可以创建SOAP客户端类自动从WSDL中获取,这将为您节省一些时间。

但是你需要编写一个自定义的转换层,不要制作一套hacky REST服务,并尝试将其融入SOAP模型中。尽量保持真实休息并使翻译层更加复杂......这将是值得的。