繁体   English   中英

从Java公开SOAP 1.2 Web服务,该Java服务调用另一个REST服务

[英]Expose SOAP 1.2 web service from java which calls another REST service

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

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

因此,现在我认为一种更好的方法是使用Java来构建SOAP接口,这将消耗我们Python后端的Web服务。 我有一些Java经验,但是主要是使用Struts框架。 我需要找到一个轻量级但可高度自定义的解决方案。

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

我目前正在寻找的是:

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

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

我也欢迎其他可能的解决方案来解决我们的问题。

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

调用没有wsdl的Web服务

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM