Axis1.4例項說明——服務端、客戶端
阿新 • • 發佈:2019-01-23
一、服務端
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
-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