1

我正在尝试从我的 C++ 应用程序中使用 Rally 的 SOAP 接口。因此,我使用 Axis 1.4 工具包生成了 C++ 存根。不幸的是,生成的文件包含编译错误。我手动修复了这些错误,存根现在可以编译。尽管如此,我的印象是在代码生成过程中出现了更多问题。例如,我没有在 .NET 示例中使用的名为 RallyServiceService 的类:

// create a service object
RallyServiceService service = new RallyServiceService();

// set the service URL
service.Url = "https://rally1.rallydev.com/slm/webservice/1.32/RallyService";

...

有没有人尝试过从 C++ 访问 Rally 的 SOAP 接口?任何帮助如何开始建立连接表示赞赏。

谢谢,迈克尔

4

1 回答 1

0

虽然它本身不是一个解决方案,但我想我会总结一下我通过支持案例与迈克尔交换的对话:

当使用 WSDL2Java 生成 Java 存根时,您会得到四个与 RallyServiceService 相关的类,它们是特定于语言的,因为它们包括 RPC 绑定、网络连接类等

Axis C++ WSDL2Ws 工具无法制定 RallyServiceService 类可能与以下事实有关:至少在 java 中,RallyServiceService 是用于扩展 javax.xml.rpc.Service 的接口。Rally WSDL 显示了接口定义:

  <wsdl:service name="RallyServiceService">
  <wsdl:port binding="impl:RallyServiceSoapBinding" name="RallyService">
  <wsdlsoap:address location="https://rally1.rallydev.com/slm/webservice/1.31/rallyservice" />
  </wsdl:port>
  </wsdl:service>

其中 impl: 关键字暗示 RallyServiceSoapBinding 类承诺实现 RallyServiceService 中定义的方法。

当谈到 C++ 时,我远远超出了我的联盟,但我认为 C++ 在技术上没有接口构造作为扩展类的一种方式 - 接口更像是 Java/C# 语言构造。这可能意味着 Rally WSDL 的这一方面是特定于 Java/C# 的实现,或者至少不能使用 Axis WSDL2Ws 工具轻松转换为 C++ 构造。

可以编写自定义 C++ 版本的 RallyServiceService 及其相关类,但可能有点棘手。如果您取得了一些成功 - 请在此处分享结果,因为可能有其他 Rally 客户对类似功能感兴趣。

于 2012-05-03T13:21:15.143 回答