0

私はこのチュートリアルのすべてのステップを正確に実行しました(今のところEclipseでこれを機能させたいだけなので、ステップ4をスキップすることを除いて)。

各ソフトウェアの正確なバージョン(Eclipseヘリオ、軸2 1.5.2など)を注意深く使用しました。私はこれをmacosx 10.7.5で実行しており、チュートリアルのようにWindowsで実行しています。

とにかく、テストクライアントを作成するステップ5までは、すべてうまくいきます。ウィザードを介してクライアントを作成することはできますが、このURLをポイントした場合に限ります。

localhost:8080/MyFirstWebService/services/FirstWebSertice?wsdl

チュートリアルではこれの代わりに

http://localhost:8080/axis2/services/FirstWebService?wsdl

その後、FirstWebServiceStub.javaとFirstWebServiceCallbackHandler.javaという2つのクラスは生成されませんが、代わりに次の図に示すいくつかのクラスが生成されます。

これは大きな矛盾ですか?私は何か間違ったことをした?生成されたクラスで動作させるために、チュートリアルからこのコードをどのように翻訳する必要がありますか?

package com.sencide;

import java.rmi.RemoteException;
import com.sencide.FirstWebServiceStub.AddTwoNumbers;
import com.sencide.FirstWebServiceStub.AddTwoNumbersResponse;

public class TestClient {

 public static void main(String[] args) throws RemoteException {

  FirstWebServiceStub stub = new FirstWebServiceStub();
  AddTwoNumbers atn = new AddTwoNumbers();
  atn.setFirstNumber(5);
  atn.setSecondNumber(7);
  AddTwoNumbersResponse res = stub.addTwoNumbers(atn);
  System.out.println(res.get_return());

 }
}

ここに画像の説明を入力してください

4

2 に答える 2

2

FirstWebServiceLocatorはAxis1.xによって生成されたクラスですが、チュートリアルのコードはAxis2によって生成されたコードを想定しています。

于 2013-03-26T12:25:51.343 に答える
1

URLhttp://localhost:8080/axis2/services/FirstWebService?wsdlは、チュートリアルのステップ4でインストールされたサービスによって処理されます。その手順をスキップしたため、URLは機能しません。

通常のTomcatの動作では、URLの「/ axis2」部分は、Tomcat内にデプロイされた特定のWebアプリケーション(WARファイル)を参照します。この場合、Tomcatの観点からは、Webアプリケーションはaxis2.warです。

URLの「services/FirstWebSertice」部分は、Axis2環境内で実行されている特定のAxis2サービス(AARファイル)を参照します。

@ andreas-veithenが指摘したように、プロジェクトエクスプローラーイメージのボイラープレートJavaクラスは、Axis2ではなくAxisによって生成されたようです。AxisとAxis2は、実際には2つの異なるWebサービスライブラリです。一方は、もう一方の新しいバージョンではありません。どういうわけか、これらのクラスを生成するために間違ったコードジェネレーターを使用したようです。

于 2013-03-26T16:26:37.263 に答える