代码之家  ›  专栏  ›  技术社区  ›  rmeador

选择要与isapi webapp集成的SOAP库

  •  0
  • rmeador  · 技术社区  · 16 年前

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

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

    除了处理传入的SOAP请求,我们还将生成它们(与第三方的双向通信)。我想几乎所有的SOAP库都能实现这个目的,对吧?

    有人能推荐一个能够做到这一点的SOAP库,或者就如何使用不同的范例提出建议吗?我已经看过ApacheAxis2、GSOAP和Alchemysoap,但也许我忽略了其中的一些特性。谢谢。

    3 回复  |  直到 16 年前
        1
  •  0
  •   Byron Whitlock    16 年前

    GSOAP是一个非常好的开源跨平台SOAP堆栈。

    它很快。

    伟大的互动。

    许多开源SOAP库与Java/Cypy/Python /任何东西都没有很好的互操作性。

    它解析巨大的有效负载,同时使用很少的内存。

    它是开源的!

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

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

        2
  •  0
  •   Nemanja Trifunovic    16 年前

    看一看 ATL Server 这个库以前是用VisualC++编写的,但现在它是一个独立的开源项目。

        3
  •  0
  •   David    16 年前

    GSOAP对C++代码工作很好