我们正在寻找支持 RPC 的 C++ Soap Web 服务框架,最好是开源的。有什么建议吗?
12 回答
WSO2 Web Services Framework for C++ (WSO2 WSF/C++),WSO2 WSF/C 到 C++ 的绑定是一个 C++ 扩展,用于在 C++ 中使用 Web 服务。
http://wso2.org/projects/wsf/cpp
Apache Axis 是一个开源的、基于 XML 的 Web 服务框架。它由 SOAP 服务器的 Java 和 C++ 实现,以及用于生成和部署 Web 服务应用程序的各种实用程序和 API 组成。
http://code.google.com/p/staff/
Staff 是基于 Apache Axis2/C 的 C++(服务/组件和客户端)/JavaScript(客户端)的 Web 服务框架。
开源,随 Apache License V2.0 一起发布。
试试ffead-cpp框架,它提供了内置的 web-service 支持、rest、json 和许多其他有用的功能。
我们正在使用 EasySoap ( http://easysoap.sourceforge.net/ )
虽然不是 FOSS,但另一个库是Microsoft 的ATL Server库。它是基于 C++ 模板,具有 Microsoft 的一些专有属性。即不是标准的C++
您可以查看 xmlbeansxx。与完整的框架相比,这是一种轻量级的低级解决方案。这在某些情况下具有优势。
使用 xmlbeansxx 调用 SOAP WebServices 文章
代码示例在这里: WsClient.cpp。
你可以试试gSOAP。在 GPL 和商业许可下可用。
我使用SWIG制作了从 C++ 到 Java 或 Python 的界面,然后使用了对这些语言的典型 Web 界面支持。
由于 Java 和 Python 具有反射功能,因此为它们而存在的 Web 服务框架可以更轻松地传递数据。
如果您的 C++ 代码是线程安全的,则线程明智,您可以让 Java 服务器管理并发请求等线程的创建,并使用 JNI 调用您的 C++ 代码。
作为奖励,您可以使用这些相同的 SWIG 接口从 Python 测试您的 C++ 代码。
我认为要走的路是用 C++ 编写你的服务(我假设你做了所有的功课,你有充分的理由想用 C++ 编写),然后使用 RPC 服务器在它前面。使用 Thrift 或 Protobufs 之类的东西来实现快速的 RPC。
现在用你选择的语言编写你的 web 前端——python 是我的——并进行 RPC 调用来完成所有繁重的工作。
POCO Remoting为您提供了一种在 C++ 中创建 Web 服务的非常简单的方法,只需使用特殊注释注释 C++ 类定义并在其上运行代码生成器。它是商业的,但提供了完整的源代码。提供免费的评估版本。在 Windows、Linux、Mac OS X 等上运行。
我同意 imjorge 的回答,并补充说有一个 C/C++ 版本的 Axis2 框架(更灵活、可扩展的 Axis),它通过 RPC 和各种东西(包括一堆 WS-* 规范)执行 SOAP。
Apache axis-c:易于使用,但似乎已被废弃.. 甚至下载页面都无法运行几个月
WSOF WSFCPP:基于 Apache AxisC 的快速快速入门开发,无论是绑定的还是非绑定的实现,目前 Apache Axis 的大多数开发人员似乎都来自 WSOF 公司。除了巨大的潜力,我还发现了内存泄漏。
我目前正在使用 Gsoap,它的性能非常好。旧的 c 风格和 C++ 的一些(坏的?)实践之间的 Gsoap“混合表示法”让我有些困扰..但这只是代码家具。
POCO:是一个功能齐全的现代(java?)类库。它是开源软件,在 Boost Software License 1.0 下获得许可。你必须从头开始写一些东西,但是有很好的支持、实用程序类和等等很棒的库。来自 c++11+ 的创新以及所有的提升计划 + POCO + 一个新的构建/依赖系统更“类似于 gradle”将无疑将 c++ 带入了新的开发领域。