AXIS 2リモート呼び出しWebService例(Eclipse+AXIS)
3493 ワード
Web ServiceをTomcatまたは他のアプリケーションサーバに投稿した後、このWeb Serviceを呼び出すことができる2つの方法があります.
1、ブラウザで呼び出して、仕様のXMLファイルに戻ります. 2、クライアントプログラムで呼び出し、結果を返して、カスタムフォーマットができます.
次に、Eclipse J 2 EEを開発ツールとして利用して、WebServiceを呼び出すAxisの簡単な例を示します. 最初の呼び出しは私のもう一つのブログを見ました.http://www.cnblogs.com/lanxuezaipiao/archive/2013/05/10/3072216.html ステップは以下の通りです 準備作業:AXIS 2最新版をダウンロードする(公式ダウンロード:http://axis.apache.org/axis2/java/core/download.cgi)AXISライブラリを導入し、ダウンロードパッケージの中にある./lib/ディレクトリのjarファイルをプロジェクトのWEB-INFの下のlibファイルにコピーする.
第一歩:Webプロジェクトを新規作成し、プロジェクト名はWebServiceTestである. 第二ステップ:簡単な印刷文字列を作成するハローワールド.java:
ステップ4:ウェブserviceをテストします.Hello World.wsdl-Web Services-T-Tnest with Web Services Explorerを右クリックします.方法名connectStrをクリックします.入力パラメータAlexia---ポイントgo.この時、コンソールからHello、Alexiaを出力します.テストが成功しました.WebServiceは大丈夫です.
第5ステップ:クライアント呼び出しタイプHello World Testを作成し、AXIS 2を利用して遠隔的にハローWorldを呼び出します.(遠隔呼び出しを表現するために、Projectを新規作成します.名前はAxis Testです.)コードは以下の通りです.
注意:1、メソッド名とパラメータ名を設定する場合は、呼び出しられたWebServiceと一致していなければなりません. 2、伝達のパラメータはObject配列にカプセル化する必要があります. 3、遠隔呼び出し経路endpointは第4ステップのテストでEndPointsです.
1、ブラウザで呼び出して、仕様のXMLファイルに戻ります. 2、クライアントプログラムで呼び出し、結果を返して、カスタムフォーマットができます.
次に、Eclipse J 2 EEを開発ツールとして利用して、WebServiceを呼び出すAxisの簡単な例を示します. 最初の呼び出しは私のもう一つのブログを見ました.http://www.cnblogs.com/lanxuezaipiao/archive/2013/05/10/3072216.html ステップは以下の通りです 準備作業:AXIS 2最新版をダウンロードする(公式ダウンロード:http://axis.apache.org/axis2/java/core/download.cgi)AXISライブラリを導入し、ダウンロードパッケージの中にある./lib/ディレクトリのjarファイルをプロジェクトのWEB-INFの下のlibファイルにコピーする.
第一歩:Webプロジェクトを新規作成し、プロジェクト名はWebServiceTestである. 第二ステップ:簡単な印刷文字列を作成するハローワールド.java:
1 public class HelloWorld {
2
3 public String printStr(String name){
4 String resultStr="Hello," + name;
5
6 System.out.println(resultStr);
7 return resultStr;
8 }
9 }
第三ステップ:Hello World.java-Web Services-C-reate Web serviceを右クリックして、次のステップを順にクリックしてください.finishでは、WebContintディレクトリの下にwsdlディレクトリが作成されています.ディレクトリの下にハローWorld.wdlがあります.ステップ4:ウェブserviceをテストします.Hello World.wsdl-Web Services-T-Tnest with Web Services Explorerを右クリックします.方法名connectStrをクリックします.入力パラメータAlexia---ポイントgo.この時、コンソールからHello、Alexiaを出力します.テストが成功しました.WebServiceは大丈夫です.
第5ステップ:クライアント呼び出しタイプHello World Testを作成し、AXIS 2を利用して遠隔的にハローWorldを呼び出します.(遠隔呼び出しを表現するために、Projectを新規作成します.名前はAxis Testです.)コードは以下の通りです.
1 import java.rmi.RemoteException;
2 import javax.xml.rpc.ParameterMode;
3 import javax.xml.rpc.ServiceException;
4 import org.apache.axis.client.Call;
5 import org.apache.axis.client.Service;
6 import org.apache.axis.encoding.XMLType;
7
8 public class HelloWorldTest {
9
10 public String invokeRemoteFuc() {
11 //
12 String endpoint = "http://localhost:8080/WebServiceTest/services/HelloWorld";
13 String result = "call failed!";
14 Service service = new Service();
15 Call call;
16
17 try {
18 call = (Call) service.createCall();
19 call.setTargetEndpointAddress(endpoint);
20 //
21 call.setOperationName("printStr");
22
23 //
24 call.addParameter("name", //
25 XMLType.XSD_STRING, // :String
26 ParameterMode.IN); // :'IN' or 'OUT'
27
28 //
29 call.setReturnType(XMLType.XSD_STRING); // :String
30 String name = "Alexia";
31 result = (String) call.invoke(new Object[] { name });//
32 } catch (ServiceException e) {
33 e.printStackTrace();
34 } catch (RemoteException e) {
35 e.printStackTrace();
36 }
37
38 return result;
39 }
40
41 //
42 public static void main(String[] args) {
43 HelloWorldTest test = new HelloWorldTest();
44 String result = test.invokeRemoteFuc();
45 System.out.println(result);
46 }
47
48 }
第六ステップ:テスト:Hello World Test---Run as-Java aplication、もしコンソールがHello Alexiaを正しく出力することを発見したら、テストの成功を説明します. 注意:1、メソッド名とパラメータ名を設定する場合は、呼び出しられたWebServiceと一致していなければなりません. 2、伝達のパラメータはObject配列にカプセル化する必要があります. 3、遠隔呼び出し経路endpointは第4ステップのテストでEndPointsです.