0

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

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

除了处理传入的 SOAP 请求,我们还将生成它们(与第 3 方的双向通信)。我认为几乎任何 SOAP 库都可以实现这个目的,对吧?

任何人都可以建议一个能够做到这一点的 SOAP 库,或者就如何使用不同的范例提供建议吗?我已经研究过 Apache Axis2、gSOAP 和 AlchemySOAP,但也许其中有一些我忽略了的特性。谢谢。

4

3 回答 3

0

看看ATL Server这个库曾经是 Visual C++ 自带的,但现在是一个单独的开源项目

于 2008-11-02T01:02:29.147 回答
0

GSoap 是一个很棒的开源跨平台皂栈。

它很快。

伟大的互操作。

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

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

它是开源的!

由于您使用的是 IIS 扩展,因此您需要将 gsoap 添加到您的应用程序中,使用以下命令重新编译您的扩展 dll:http ://aberger.at/SOAP/iis_index.html, 您应该可以开始使用了。

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

于 2008-12-04T01:02:13.967 回答
0

GSOAP 适用于 c++ 代码

于 2009-02-12T21:48:47.163 回答