从java调用SOAP 1.2 Web服务,调用另一个REST服务

时间:2014-08-20 05:15:21

标签: java soap c10k

我是一名Python程序员,我们有一个用于Web项目的python后端,我们使用Python Web服务器(Tornado)来提供REST Web服务。

几个月前,我们被要求为客户端提供SOAP,令我们惊讶的是,Python 3的SOAP暴露功能非常糟糕。我们尝试了Ladon& TornadoWS个套餐,但两者都有其局限性。甚至其中一些产生的无效响应也不符合相应的WSDL。

所以现在我认为更好的方法是使用Java来创建SOAP接口,这将使用我们的Python后端的Web服务。我有一些Java经验,但主要是使用Struts框架。我需要找到一个轻量级但可定制的解决方案。

Possible solution to offer JAVA soap interface which calls REST Python back-end

我目前正在寻找的是:

  • 完全按照我们客户现有的WSDL上的方式模仿WSDL(客户端将使用我们的服务,但他们希望进行最少的更改)。
  • 100%有效的soap / xml响应和WSDL! (令人惊讶的是,我们尝试过的一些第三方Python包产生无效响应)。 .NET平台将使用SOAP服务。
  • 我们需要对生成的WSDL的元素名称和名称空间进行maxmimum控制,以便客户端可以透明地切换到我们的Web服务。
  • 用于公开SOAP 1.1&amp ;;的轻量级解决方案。 1.2 Java中的服务,可以扩展到许多并发请求。
  • 这个Java接口将调用我们的Python后端的REST Web服务。所以我正在寻找特别适合此目的的东西。
  • 现在我们使用nginx + tornado作为我们的REST Web服务,我正在寻找类似Java的东西。特别是,解决c10k问题的东西。基本上,Java接口所做的只是接受SOAP请求,并进行HTTP调用并返回这些响应。因此,我认为期望像Tornado之类的类似提供非阻塞网络I / O并且可以很好地扩展的类似内容是合理的。

我知道这个问题可能被认为是没有建设性的,但我真的在寻找一些好的意见,因为我没有在网上找到信息(可能是因为我搜索不佳)。

我也愿意接受其他可能的解决方案来解决我们的问题。

1 个答案:

答案 0 :(得分:-1)

要使用您的Python REST服务,请查看以下答案:

Calling a web service with no wsdl

要创建SOAP服务,您应该使用Apache CXF和Spring Framework(Spring MVC)。有关详细信息,请查看此示例:http://cxf.apache.org/docs/writing-a-service-with-spring.html