AXIS實現web服務配置部署簡要流程
1:編寫服務器端接口,並在<webapp>/WEB-INF/classes下編譯。
javac –d . *.java
2:在%APP_HOME%/webapp/WEB-INF目錄下創建server-config.wsdd(AXIS配置文件,所有web服務都要在該文件中註冊)文件。形如:
注:server-config.wsdd文件也可以通過編寫deploy.wsdd文件生成,具體方法爲,在%APP_HOME%/webapp/WEB-INF目錄下創建deploy.wsdd文件(SOAP發佈描述文件),形如:
然後將相應服務器端class編譯後在命令行輸入:
java -cp %AXISCLASSPATH% org.apache.axis.client.AdminClient deploy.wsdd
將在當前目錄下生成server-config.wsdd文件。
完成以上操作後,可在瀏覽器中通過http://localhost:8080/axis/services/login?wsdl 訪問該服務。
3:JAVA客戶端實現:
可以通過AXIS中的org.apache.axis.wsdl.WSDL2Java類將已發佈的web服務進行客戶端實例化,具體命令爲:在%APP_HOME%/webapp/WEB-INF目錄下命令行輸入:
Java -Djava.ext.dirs=lib org.apache.axis.wsdl.WSDL2Java url[YiWang1]
命令執行後會在本地當前目錄下生成以url爲模版的package目錄層次結構(如:local.axis.service.*),該目錄中針對每個服務器端接口會自動生成4個本地類。
其中:
inferface LoginService在客戶端本地定義服務器接口的映射。
interface LoginServiceService定義了用於獲得web服務的getter方法。
class LoginServiceServiceLocator具體實現LoginServiceService接口,保存了服務器的url等相關信息。
class LoginSoapBindingStub 具體實現LoginService,負責服務器交互。
(部署了web服務之後,如果接口不變而url發生改變,可以直接在客戶端更新LoginServiceServiceLocator中有關服務器地址的相關信息,或者用配置文件的形式修改)
編譯以上幾個類時需要axis.jar,jaxrpc.jar兩個包,命令爲:
javac -classpath lib/axis.jar;lib/jaxrpc.jar –d . *.java
編譯成class後可以通過jar命令打包作爲接口部署在客戶端。
客戶端測試例程:
如果通過java應用程序形式進行測試,命令爲:
java -Djava.ext.dirs=lib -cp . package.class
[YiWang1]服務器通過Wsdl形式發佈的web服務的完整url地址。
AXIS實現web服務配置部署step by step |