Axis 1 stubモード設定webService


シナリオのdeploy.batを書いて、発表する時命令で行く必要はなくて、そんなに多くの変数をも入れないでclassipathに着いて、自分に便利です。
set AXIS_LIB=D:\axis\axis-1_4\webapps\axis\WEB-INF\lib set AXISCLASSPATH=%AXIS_LIB%\axis.jar;%AXIS_LIB%\activation.jar;%AXIS_LIB%\mail.jar;%AXIS_LIB%\commons-discovery-02.jar;%AXIS_LIB%\commons-loging-1.0.4.jar;%AXIS_LIB%\jaxrp.jar;%AXIS_LIB%\saaj.jar;%AXIS_LIB%\log 4 j-1.2.jar;%AXIS_LIB%\xml-appis.jar;%AXIS_LIB%\xercesImpl.jar java-cp%AXISCLASSPATH%org.apphe.axis.client.AdminClint-lhttp://localhost:8888/axis/services deploy.wsdd
deploy.wsddファイルの内容
<deployment xmlns=”http://xml.apache.org/axis/wsdd/"xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"<SayHello"provider="java:RPC"""
 
複雑な点をもう一つお願いします。複雑なオブジェクトのマッピングが付いています。
<deployment xmlns=”http://xml.apache.org/axis/wsdd/"xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"<PmiService"provider="java:RPC""""“java:wfc.facility.right.com.OpInfo”/>
 私たちはAdminClientを使って発表します。コールフォーマットは以下の通りです。
javaorg.apache.axis.client.AdminClint-lhttp:/住所:ポート/contextモジュール/services/SayHello deploy.wdd
 
urlの中でservicesを発見した後の「/SayHello」は何の役にも立たないようで、書いても書いても影響しないです。後ろにpackageのパスがこのレベルより多いことを発見しました。)
運行後にもし間違いがないなら、新しいwebserviceをserver-config.wdd配置ファイルに追加します。
AdminClientの仕事について説明します。AdminClientはまずaxis.jarのアプリケーションの下のWEB-INFフォルダの下でwebserviceプロファイルserver-config.wddを作成し、wsddファイルの配置によって私達のwebserviceをこの配置ファイルに追加します。server-config.wsddが既に存在しているならば、このファイルは新しいserviceをserver-config.wddファイルに配置します。
  ウェブサービスをテストして、ブラウザを開けて、作成したファイル名に対応するURLアドレスhttp://localhost:8888/axis/servicesを入力します。下に自分達のWebservice「SayHello」がもう一つ増えています。リンクをクリックして、wsdl「http://localhost:8888/axis/services/SayHello?wsdl」を得ます。
 
WSDL文書を取得したら、AXISクライアントの生成を行います。私達の前に設置したAXIS環境にはすでにこのようなツールが含まれています。JAVA類です。org.apaache.axis.wsdl.WSDL 2 Javaという名前です。コマンドラインのウィンドウを開けて、先ほどTOMCATのwebapps\axisディレクトリの下のWEB-INFサブディレクトリに移動します。Tomcatサービスが起動状態にあることを確認し、コマンドを入力します。
Java-Djava.ext.dirs=lib org.apache.axis.wsdl.WSDL 2 Java http://localhost:8888/axis/services/SayHello?WSDL/ここはWSDLファイルでもいいし、WSDLのパスアドレスでもいいです。
このコマンドは、現在の所在ディレクトリ(TOMCATのwebapps\axis WEB-INFサブディレクトリ)でサブディレクトリを作成しました。このディレクトリの下にはJAVAソースファイルが四つあります。それぞれ:  
SayHello.java/はWebサービスインターフェースを定義しており、この例ではhelloメソッドは一つしかない。SayHello Service.java/は、Webサービスインターフェースを取得するための方法を定義している。SayHello ServiceLocator.java/インターフェースハローサービスの具体的な実現。SayHello Soap BindingStub.java/Webサービスクライアント・パイルは、このクラスを通じてサーバと相互作用する。
 
 
この四つのJAVAクラスは私達に大部分のロジックを処理してくれました。私達が必要なのはこれらの種類を私達のプロジェクトに加えて、自分達のクラスを作ってそれらを呼び出すだけです。このために私達は新たに一つの種類のMain.javaを追加しました。便利さのために、この種類と生まれたばかりの四つの種類が同じカバンの下にあります。内容は以下の通りです
 
public class WebServiceCient Test{public static void main(String[]args){SayHello Service service=new SayHello ServiceLocator()try{SayHello hello=service.get SayHello();System.out.printel(「Resonse:」+hello.hello();)catch(RemoteException){/TODO Auto-generated catch block e.print StockTrace();;catch(ServiceException){/TODO Auto-generated catch block e.print StockTrace()}
 Axis 1.xは注意すべきところが多すぎるので、これはちょっと煩わしいです。Axis 2やXfireなどを研究しましょう。