选择一个SOAP库与ISAPI webapp集成

时间:2008-10-31 21:14:37

标签: c++ soap isapi-extension

我工作的公司有一个用C ++编写的大型webapp作为ISAPI扩展(不是过滤器)。我们目前正在增强我们的系统,以便与具有SOAP接口的多个第三方工具集成。我认为如果我们使用一些SOAP库,那可能是最好的。理想情况下,它将是免费和开源的,但具有与闭源商业软件兼容的许可证。我们还需要为传入和传出的SOAP消息支持SSL。

我最担心的一点是,我所看到的每个SOAP库似乎都有两种操作模式:独立服务器和服务器模块(Apache模块或ISAPI过滤器)。显然,我们不能使用独立服务器。在我看来,如果它作为一个模块运行,它将不会是我的应用程序的一部分 - 它将无法访问我的其余代码,因此它将无法共享数据结构等这是正确的假设吗?我们的app处理的每个HTTP请求都由一个单独的线程处理(我们管理自己的线程池),但是我们有很多在这些线程之间共享的持久数据。我认为我正在寻找的集成类型是向我的应用程序添加一些代码来查看请求URL,看到它正在尝试访问SOAP服务,并调用一些函数,如soapService.handleRequest()。我不知道有任何提供这种集成的东西。我们必须能够在SOAP处理程序函数中利用主应用程序中的数据结构。

除了处理传入的SOAP请求之外,我们还将生成它们(与第三方进行双向通信)。我假设任何SOAP库都会实现这个目的,对吗?

任何人都可以建议一个能够做到这一点的SOAP库,或者就如何使用不同的范例提出建议吗?我已经看过Apache Axis2,gSOAP和AlchemySOAP,但也许我忽略了这些功能。感谢。

3 个答案:

答案 0 :(得分:0)

看看ATL Server这个库曾经随Visual C ++一起提供,但现在它是一个单独的开源项目

答案 1 :(得分:0)

GSoap是一个很好的开源交叉平台肥皂堆。

很快。

伟大的互操作。

许多开源肥皂库与java / c#/ python / what没有很好的互操作性。

它在使用非常少的内存时解析HUGE有效负载。

它是开源的!

由于您使用的是IIS扩展程序,因此您需要将gsoap添加到您的应用中,并使用以下代码重新编译您的扩展程序:http://aberger.at/SOAP/iis_index.html 你应该准备好了。

gSOAP的 http://www.cs.fsu.edu/~engelen/soap.html

答案 2 :(得分:0)

GSOAP适用于c ++代码