0

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

几个月前,我们被要求为客户提供 SOAP,令我们惊讶的是 Python 3 的 SOAP 公开能力非常差。我们尝试了Ladon&TornadoWS包,但两者都有其局限性。甚至其中一些会生成不符合相应 WSDL 的无效响应。

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

提供调用 REST Python 后端的 JAVA soap 接口的可能解决方案

我目前正在寻找的是:

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

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

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

4

1 回答 1

-1

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

调用没有 wsdl 的 Web 服务

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

于 2014-08-20T06:45:01.830 回答