我们正在设计一个Java中间件Web应用程序,类似于ESB,例如IBM消息代理或mule 我们有许多Oracle EBS接口(soap web服务),现在salesforce CRM希望通过中间件应用程序调用EBS接口。 Slaesforce CRM通过rest json调用中间件,中间件通过SOAP webservice调用EBS。下面的图片可以帮助您了解我的意思。 我们花了很多天时间用Spring Integration设计中间件。但我们发现很难做到这一点。我们仍然需要为每个EBS接口(每个带有jar文件的wsdl)生成一个jar文件(通过CXF),并通过传统的Web服务方式调用EBS接口。 我们不希望为每个EBS接口生成Web服务客户端jar文件。 Spring集成是否适用于此(不为每个WSDL生成jar文件,只是一些配置或没有太多编码)?如果没有,你能推荐一些其他产品吗? 非常感谢你提前。
答案 0 :(得分:1)
对于SOAP交互,Spring Integration提供了完全基于Spring WS项目的WS模块。
如果您只是使用Spring Integration的<int-ws:outbound-gateway>
来调用该Oracle ESB服务,我认为没有理由生成某些东西。
为此,您只需要知道为请求构建哪个XML以及从响应中解析哪个XML。
对于我来说,这似乎就足以让您了解服务WSDL并从SOAP UI中进行调查。
如果我是你,我会在春天时忘记CXF: - )。
答案 1 :(得分:0)
API网关是可以在此处使用的一种产品。通常,它充当客户端和应用程序之间的代理,但它也可以在JSON和XML之间进行转换,这是REST到SOAP转换中会发生的情况。
MuleESB虽然不是网关也可用于此目的,请参阅此链接How to convert SOAP web service to REST web service in Mule
答案 2 :(得分:0)
我们自己做了。 我们用Java自己开发了中间件。 我们使用带有freemarker模板的java将json请求转换为所需的soap信封体。然后使用apache httpclient来调用Web服务(oracle EBS)。