Axis開發WebServices輕鬆入門

Axis支持三種web service的部署和開發,分別爲:

  1、Dynamic Invocation Interface (DII)

  2、Dynamic Proxy方式

  3、Stubs方式

建議使用Stubs方式.

一、編寫wsdd發佈web服務,編寫stub client訪問web服務

1、編寫服務端程序server,SayHello.java,編譯server.SayHello.java

package server;
public class SayHello
{
    public String getName(String name)
    {
        return "hello "+name;
    }
}

編譯後將class文件拷入axis/WEB-INF/classes/server目錄下

2、編寫wsdd文件

  deploy.wsdd文件內容如下:

<deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
 <service name="SayHello" provider="java:RPC">
  <parameter name="className" value="server.SayHello"/>
  <parameter name="allowedMethods" value="*"/>
 </service>
</deployment>

3、發佈服務:

編輯一個deploy.bat,內容如下:

set AXIS_HOME=C:/Java/axis-bin-1_4/axis-1_4
set AXIS_LIB=%AXIS_HOME%/lib
set WEBLOGIC_HOME=C:/bea/weblogic81
set WEBLOGIC_LIB=%WEBLOGIC_HOME%/server/lib
set AXISCLASSPATH=%AXIS_LIB%/axis.jar;%AXIS_LIB%/commons-discovery-0.2.jar;%AXIS_LIB%/commons-logging-1.0.4.jar;%AXIS_LIB%/jaxrpc.jar;%AXIS_LIB%/saaj.jar;%AXIS_LIB%/log4j-1.2.8.jar;%AXIS_LIB%/wsdl4j-1.5.1.jar;%AXIS_LIB%/xerces.jar;%WEBLOGIC_LIB%/weblogic.jar

java -cp %AXISCLASSPATH% org.apache.axis.client.AdminClient -lhttp://localhost:7003/axis/services/AdminService deploy.wsdd

執行這個批處理文件,這時候,如果提示成功的話,訪問http://127.0.0.1:7003/axis/servlet/AxisServlet 就會顯示服務列表。

4、生成客戶端client stub文件

  在瀏覽器上訪問服務器端的服務,可以下載到WSDL文件,通過Axis的相關工具,可以自動從WSDL文件中生成Web Service的客戶端代碼。

  編寫一個WSDL2Java.bat文件,其內容如下:

set AXIS_HOME=C:/Java/axis-bin-1_4/axis-1_4
set AXIS_LIB=%AXIS_HOME%/lib
set WEBLOGIC_HOME=C:/bea/weblogic81
set WEBLOGIC_LIB=%WEBLOGIC_HOME%/server/lib
set AXISCLASSPATH=%AXIS_LIB%/axis.jar;%AXIS_LIB%/commons-discovery-0.2.jar;%AXIS_LIB%/commons-logging-1.0.4.jar;%AXIS_LIB%/jaxrpc.jar;%AXIS_LIB%/saaj.jar;%AXIS_LIB%/log4j-1.2.8.jar;%AXIS_LIB%/wsdl4j-1.5.1.jar;%AXIS_LIB%/xerces.jar;%WEBLOGIC_LIB%/weblogic.jar
set Output_Path=C:/yProject/workspace/Axis_test/src
set Output_Package=server

java -cp %AXISCLASSPATH% org.apache.axis.wsdl.WSDL2Java -o%Output_Path% -p%Output_Package% SayHello.wsdl

  執行這個批處理文件就可以生成client stub.

  生成的stub client文件列表爲:SayHello.java,SayHelloService.java,SayHelloServiceLocator.java,SayHelloSoapBindingStub.java .

  5、編寫客戶端程序,編譯並執行

  下面是一段junit測試客戶端代碼。

import java.net.URL;

public class Client {

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

        SayHelloService service = new SayHelloServiceLocator();
        SayHello_PortType client = service.getSayHello() ;
        String retValue = client.getName("clientname");
        System.out.println(retValue);

    }

}

至此,整個服務器端和客戶端的Web Service框架代碼就完成了,剩下的就是在裏面加入你的業務代碼了. 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章