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ピースに関連する4つのクラスが取得されます。これらには、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:keywoardは、RallyServiceSoapBindingクラスがRallyServiceServiceで定義されたメソッドを実装することを約束していることを意味します。

C ++に関しては、私はリーグから外れていますが、C ++には、クラスを拡張する方法として技術的にインターフェイス構造があるとは思いません。インターフェイスは、Java / C#言語構造に近いものです。これは、RallyWSDLのこの側面がJava/ C#固有の実装であるか、少なくともAxisWSDL2Wsツールを使用してC++構造に簡単に変換できないことを意味する場合があります。

RallyServiceServiceのカスタムC++バージョンとそれに関連するクラスを作成することは可能かもしれませんが、少し注意が必要な場合があります。ある程度の成功を収めた場合は、同様の機能に関心のある他のRallyのお客様がいる可能性があるため、ここで結果を共有してください。

于 2012-05-03T13:21:15.143 に答える