1. 程式人生 > >Axis1.4例項說明——服務端、客戶端

Axis1.4例項說明——服務端、客戶端

一、服務端 1、下載axis1.4的jar包  2、建立WebProject 3、將下載的axis1.4下的所有jar匯入到專案中 4、修改web.xml檔案,這個跟servlet有很多相似的地方,對比著看就行了 <?xml version="1.0" encoding"UTF-8"?> <web-app version="3.0"  xmlns="http://java.sun.com/xml/ns/javaee"  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
      http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" >   <display-name ></display-name>         <welcome-file-list >     <welcome-file >index.jsp</ welcome-file>   </welcome-file-list >   <servlet >              <display-name>              Apache-Axis Servlet
 </display-name>
             <servlet-name> AxisServlet</servlet-name >              <servlet-class>             org.apache.axis.transport.http.AxisServlet </servlet-class>        </servlet>        <servlet>              <display-name>             Axis Admin Servlet
 </display-name>
             <servlet-name> AdminServlet</servlet-name >              <servlet-class>             org.apache.axis.transport.http.AdminServlet </servlet-class>              <load-on-startup> 100</load-on-startup >        </servlet>        <servlet-mapping>              <servlet-name> AxisServlet</servlet-name >              <url-pattern> /servlet/AxisServlet </url-pattern>        </servlet-mapping>        <servlet-mapping>              <servlet-name> AxisServlet</servlet-name >              <url-pattern> *.jws</url-pattern >        </servlet-mapping>        <servlet-mapping>              <servlet-name> AxisServlet</servlet-name >              <url-pattern> /services/*</url-pattern >        </servlet-mapping>        <servlet-mapping>              <servlet-name> AdminServlet</servlet-name >              <url-pattern> /servlet/AdminServlet </url-pattern>        </servlet-mapping> </web-app> 5、在src下新建包server並在包下新建類SayHello package server; public class SayHello {        public String getName(String name)           {               return "hello " +name;           } } 6、右鍵選擇專案=》Run As=》Run Configurations... 在左上角選擇新建,填寫Name,在Main選項卡里會有專案名,Main class裡填寫org.apache.axis.wsdl.Java2WSDL(Search裡也有) 在Arguments選項卡里面,Program arguments裡寫入 -d -l"http://127.0.0.1:8885/Axis1.4_Service_003/services/SayHello" -o "sayHello.wsdl" server.SayHello 說明一下 -d 這個選項是要生成 deploy.wsdd 和 undeploy.wsdd
-l 這個選項是要生成webService將來要訪問的地址,我做了個假設:http://127.0.0.1:8885/Axis1.4_Service_003/services/SayHello
-o 這個選項是要生成wsdl檔案,我假設了一個檔名:sayHello.wsdl
server.SayHello 這個就是我們要釋出的類,可以更換成你的釋出類
Run一下,再重新整理你的專案,可以看到多出了server資料夾和sayHello.wsdl檔案(一定記著重新整理,我測試好幾次沒成功,最後才發現是沒重新整理專案) 到此為止,就完成wsdl和deploy.wsdd等檔案的自生成 7、下面就要建立server-config.wsdd了,先將系統部署到tomcat裡,啟動tomcat,把deploy.wsdd檔案放到根目錄下,這一點我試了很多次,不拿出來,後面操作可能會有問題 8、然後跟上面步驟6一樣,右鍵選擇專案,Run As啊啥的,就不一一說了,重點是這次要在Main class裡填寫org.apache.axis.client.AdminClient 在Arguments選項卡里面,Program arguments裡寫入 -lhttp://127.0.0.1:8885/Axis1.4_Service_003/services/SayHello deploy.wsdd 再一次Run一下,到tomcat的webapps=》Axis1.4_Service_003=》WEB-INF裡看看吧,多了一個server-config.wsdd 你可以將server-config.wsdd拷到你專案的根目錄下,重新部署tomcat,再一次啟動,在瀏覽器位址列裡面輸入http://localhost:8885/Axis1.4_Service_003/services,其中SayHello就是咱們的webservice了 二、Axis客戶端 再試試生成客戶端吧,客戶端就比那個服務端簡單多了 1、新建web Project專案Axis1.4_Client_003(和前面服務端一樣的手法)  2、將axis1.4的所有jar匯入(也和上面一樣) 3、在你的服務端啟動的前提下,右鍵專案,Run As(還是和上面操作一樣) 4、這次要在Main class裡填寫org.apache.axis.wsdl.WSDL2Java(伺服器是寫的java2wsdl,別混了)      在Arguments選項卡里面,Program arguments裡寫入 -u  http://localhost:8885/Axis1.4_Service_003/services/SayHello?wsdl  -o e:/WS003/source 現在,你的E盤下多了WS003資料夾,資料夾裡source有了server資料夾 5、將server資料夾整個拷到專案的src資料夾下 6、寫個測試吧,匯入junit的jar 新建類TestWSClient  package test;

import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
import server.SayHello;
import server.SayHelloService;
import server.SayHelloServiceLocator;

public class TestWSClient extends TestCase {

    public TestWSClient(String string) {
        super(string);
    }

    public void SayHelloClient() throws Exception {

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

    }

    public static Test suite() {
        TestSuite suite = new TestSuite();
        suite.addTest(new TestWSClient("SayHelloClient"));
        return suite;
    }
}
執行一下,green bar通過!控制檯輸出hello clientname