【问题标题】:Expose SOAP 1.2 web service from java which calls another REST service从调用另一个 REST 服务的 java 公开 SOAP 1.2 Web 服务
【发布时间】:2014-08-20 05:15:21
【问题描述】:

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

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

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

我目前正在寻找的是:

  • 完全按照我们客户现有的 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 并且可以很好地扩展。

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

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

【问题讨论】:

  • 简单使用spring-ws

标签: java soap c10k


【解决方案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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-27
    • 2011-02-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多