axis2 WebService的釋出與呼叫
1:準備:
JDK:http://www.oracle.com/technetwork/java/javase/downloads/jdk6downloads-1902814.html
eclipse:http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/juno/SR2/eclipse-jee-juno-SR2-win32.zip
在Server runtime中選擇預設,Web service runtime選擇Apache Axis2,點選Ok,返回圖4.1,點選Client project:webServiceClient,出現圖4.3圖4.3
在Client project的下拉選單中選擇客戶端程式碼存放的專案,本例選擇webServiceClient。點選OK,返回圖4.1,點選NEXT,進入下一個環節,然後點選Finish。
,圖4.4
如圖4.4,在src的source folder下出現org.web.service包,下面有HelloWorldServiceCallBackHandler.java和HelloWorldServiceStub.java檔案,Web App Libraries也有更新,在WebContent目錄下也出現axis2-web資料夾,以及WEB-INF等的更新。
4.2:寫webService呼叫程式碼。
在webServiceClient專案中新建一個客戶端測試檔案如下:
5:參考文件http://wenku.baidu.com/view/12501ed7195f312b3169a54b.html
6:服務端接收的引數為javaBean,返回list樣例:
6.1:建立服務。新建User.java
圖6.1
按照3.2說明重新發布服務(圖3.4Output File Name重新起個名字)
6.2:建立客戶端呼叫程式碼,步奏同4。得到圖6.2所示兩個檔案ListServiceStub.java和ListServiceCallbackHandler.java
圖6.2
建立ListServiceClient.java
JDK:http://www.oracle.com/technetwork/java/javase/downloads/jdk6downloads-1902814.html
eclipse:http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/juno/SR2/eclipse-jee-juno-SR2-win32.zip
tomcat:http://tomcat.apache.org/download-60.cgi
axis2:http://axis.apache.org/axis2/java/core/download.cgi
eclipse的官方提供的axis外掛工具,可以打包aar檔案和生成客戶端呼叫程式碼:http://axis.apache.org/axis2/java/core/tools/index.html
axis2:http://axis.apache.org/axis2/java/core/download.cgi
eclipse的官方提供的axis外掛工具,可以打包aar檔案和生成客戶端呼叫程式碼:http://axis.apache.org/axis2/java/core/tools/index.html
下載地址:http://mirrors.hust.edu.cn/apache/axis/axis2/java/core/1.6.3/
2.1:配置java環境變數(不贅述)。
2.1:eclipse中axis2環境配置:Window->Perferences->Web Services->Axis2 perferences->Axis2 Runtime->Axis2 Runtime location,Browse選擇解壓axis2-1.6.2-bin.zip得到的axis2-1.6.2檔案目錄。如圖2.1。
圖2.1
2.2:安裝外掛:解壓axis2-eclipse-codegen-plugin-1.6.2.zip和axis2-eclipse-service-plugin-1.6.2.zip,把得到的兩個jar包放入eclipse目錄下的\plugins\中,重啟eclipse。
2.3:配置tomcat:解壓apache-tomcat-6.0.36-windows-x64.zip(不贅述)。
2.4:eclipse中tomcat配置:Window->Perferences->Server->Runtime Environments新增。
3:釋出axis2:
3.1:解壓axis2-1.6.2-war.zip獲得axis2.war並把它放到tomcat解壓目錄的webapps資料夾下,啟動tomcat,瀏覽器中輸入http://localhost:8080/axis2/,出現圖3.1,說明配置成功。
圖3.1
3.2:用eclipse的axis2外掛釋出web服務。
3.2.1 在eclipse中new一個Dynamic Web Project,取名webserviceService。編寫一個簡單的webService伺服器程式碼
圖3.2
next->選中skip WSDL,Next->什麼都不填NEXT->選中Generate the service xml automatically,NEXT->
圖3.3
如如圖3.3填寫HelloWorldService類的全路徑,點選load,在下面的Method表中出現sayHello說明load成功,點選NEXT->
圖3.4
填寫Output file location,點選Finish,如圖3.4。
3.2.2 右鍵點選webServiceService專案,重新整理。出現my_service.aar檔案,如圖3.5。
圖3.5
把此aar檔案放到%tomcat_home%\webapps\axis2\WEB-INF\services下。瀏覽器中輸入http://localhost:8080/axis2/services/HelloWorldService?wsdl,出現圖3.6,說明發布成功。
圖3.6
4:用eclipse的Web Service Client生成客戶端呼叫程式碼。
4.1:在eclipse的空白workspace處右鍵new->Other->Web services->Web Service Client,選中,點選NEXT->出現圖4.1圖4.1
service definition填發布好的wsdl路徑http://localhost:8080/axis2/services/HelloWorldService?wsdl,Client type預設,下面的下滑快拉到最上面,點選Server runtime:Tomcat v6.0 Server出現圖4.2:
圖4.2 其中的Service Archive Wizard - Eclipse Plug-in和Code Generator Wizard - Eclipse Plug-in
下載完成的軟體如圖1.1
圖1.1
2:配置環境:2.1:配置java環境變數(不贅述)。
2.1:eclipse中axis2環境配置:Window->Perferences->Web Services->Axis2 perferences->Axis2 Runtime->Axis2 Runtime location,Browse選擇解壓axis2-1.6.2-bin.zip得到的axis2-1.6.2檔案目錄。如圖2.1。
圖2.1
2.2:安裝外掛:解壓axis2-eclipse-codegen-plugin-1.6.2.zip和axis2-eclipse-service-plugin-1.6.2.zip,把得到的兩個jar包放入eclipse目錄下的\plugins\中,重啟eclipse。
2.3:配置tomcat:解壓apache-tomcat-6.0.36-windows-x64.zip(不贅述)。
2.4:eclipse中tomcat配置:Window->Perferences->Server->Runtime Environments新增。
3:釋出axis2:
3.1:解壓axis2-1.6.2-war.zip獲得axis2.war並把它放到tomcat解壓目錄的webapps資料夾下,啟動tomcat,瀏覽器中輸入http://localhost:8080/axis2/,出現圖3.1,說明配置成功。
圖3.1
3.2:用eclipse的axis2外掛釋出web服務。
3.2.1 在eclipse中new一個Dynamic Web Project,取名webserviceService。編寫一個簡單的webService伺服器程式碼
1 package org.web.service;
2
3 public class HelloWorldService {
4 public String sayHello(String name){
5 return "Hello," + name;
6 }
7 }
8
3.2.2 在eclipse的空白workspace處,右鍵new->Other,在彈出的對話方塊中,找到Axis2 Service Archiver,雙擊->選擇HelloWorldService所在專案的class路徑,如圖3.22
3 public class HelloWorldService {
4 public String sayHello(String name){
5 return "Hello," + name;
6 }
7 }
8
圖3.2
next->選中skip WSDL,Next->什麼都不填NEXT->選中Generate the service xml automatically,NEXT->
圖3.3
如如圖3.3填寫HelloWorldService類的全路徑,點選load,在下面的Method表中出現sayHello說明load成功,點選NEXT->
圖3.4
填寫Output file location,點選Finish,如圖3.4。
3.2.2 右鍵點選webServiceService專案,重新整理。出現my_service.aar檔案,如圖3.5。
圖3.5
把此aar檔案放到%tomcat_home%\webapps\axis2\WEB-INF\services下。瀏覽器中輸入http://localhost:8080/axis2/services/HelloWorldService?wsdl,出現圖3.6,說明發布成功。
圖3.6
4:用eclipse的Web Service Client生成客戶端呼叫程式碼。
4.1:在eclipse的空白workspace處右鍵new->Other->Web services->Web Service Client,選中,點選NEXT->出現圖4.1圖4.1
service definition填發布好的wsdl路徑http://localhost:8080/axis2/services/HelloWorldService?wsdl,Client type預設,下面的下滑快拉到最上面,點選Server runtime:Tomcat v6.0 Server出現圖4.2:
在Server runtime中選擇預設,Web service runtime選擇Apache Axis2,點選Ok,返回圖4.1,點選Client project:webServiceClient,出現圖4.3圖4.3
在Client project的下拉選單中選擇客戶端程式碼存放的專案,本例選擇webServiceClient。點選OK,返回圖4.1,點選NEXT,進入下一個環節,然後點選Finish。
,圖4.4
如圖4.4,在src的source folder下出現org.web.service包,下面有HelloWorldServiceCallBackHandler.java和HelloWorldServiceStub.java檔案,Web App Libraries也有更新,在WebContent目錄下也出現axis2-web資料夾,以及WEB-INF等的更新。
4.2:寫webService呼叫程式碼。
在webServiceClient專案中新建一個客戶端測試檔案如下:
1 package org.web.client;
2
3 import java.rmi.RemoteException;
4
5 import org.web.service.HelloWorldServiceStub;
6 import org.web.service.HelloWorldServiceStub.SayHelloResponse;
7
8 public class HelloWorldClient {
9
10 /**
11 * @param args
12 * @throws RemoteException
13 */
14 public static void main(String[] args) throws RemoteException {
15 String target = "http://localhost:8080/axis2/services/HelloWorldService";
16 HelloWorldServiceStub stub = new HelloWorldServiceStub(target);
17 // sayHello 為webService提供引數
18 HelloWorldServiceStub.SayHello sayHello = new HelloWorldServiceStub.SayHello();
19 sayHello.setName("jackii");
20 SayHelloResponse eur = stub.sayHello(sayHello);
21 String returnVal = eur.get_return();
22 System.out.println(returnVal);
23 }
24
25 }
執行上面程式碼Run As->Java Application,輸出:2
3 import java.rmi.RemoteException;
4
5 import org.web.service.HelloWorldServiceStub;
6 import org.web.service.HelloWorldServiceStub.SayHelloResponse;
7
8 public class HelloWorldClient {
9
10 /**
11 * @param args
12 * @throws RemoteException
13 */
14 public static void main(String[] args) throws RemoteException {
15 String target = "http://localhost:8080/axis2/services/HelloWorldService";
16 HelloWorldServiceStub stub = new HelloWorldServiceStub(target);
17 // sayHello 為webService提供引數
18 HelloWorldServiceStub.SayHello sayHello = new HelloWorldServiceStub.SayHello();
19 sayHello.setName("jackii");
20 SayHelloResponse eur = stub.sayHello(sayHello);
21 String returnVal = eur.get_return();
22 System.out.println(returnVal);
23 }
24
25 }
Hello,jackii
說明呼叫成功。5:參考文件http://wenku.baidu.com/view/12501ed7195f312b3169a54b.html
6:服務端接收的引數為javaBean,返回list樣例:
6.1:建立服務。新建User.java
1 package org.web.service;
2
3 public class User {
4 private String id;
5 private String name;
6 public String getId() {
7 return id;
8 }
9 public void setId(String id) {
10 this.id = id;
11 }
12 public String getName() {
13 return name;
14 }
15 public void setName(String name) {
16 this.name = name;
17 }
18 }
19
2
3 public class User {
4 private String id;
5 private String name;
6 public String getId() {
7 return id;
8 }
9 public void setId(String id) {
10 this.id = id;
11 }
12 public String getName() {
13 return name;
14 }
15 public void setName(String name) {
16 this.name = name;
17 }
18 }
19
ListService.java
檔案目錄如圖6.1:
1 package org.web.service;
2
3 import java.util.ArrayList;
4 import java.util.List;
5
6 public class ListService {
7 public List<User> getUserList(User user){
8 List<User> returnList = new ArrayList<User>();
9 returnList.add(user);
10 for(int i=0;i<3;i++){
11 User user1 = new User();
12 user1.setId("00"+i);
13 user1.setName("jack00"+i);
14 returnList.add(user1);
15 }
16 return returnList;
17 }
18 }
2
3 import java.util.ArrayList;
4 import java.util.List;
5
6 public class ListService {
7 public List<User> getUserList(User user){
8 List<User> returnList = new ArrayList<User>();
9 returnList.add(user);
10 for(int i=0;i<3;i++){
11 User user1 = new User();
12 user1.setId("00"+i);
13 user1.setName("jack00"+i);
14 returnList.add(user1);
15 }
16 return returnList;
17 }
18 }
圖6.1
按照3.2說明重新發布服務(圖3.4Output File Name重新起個名字)
6.2:建立客戶端呼叫程式碼,步奏同4。得到圖6.2所示兩個檔案ListServiceStub.java和ListServiceCallbackHandler.java
圖6.2
建立ListServiceClient.java
1 package org.web.client;
2
3 import java.rmi.RemoteException;
4
5 import org.web.service.ListServiceStub;
6 import org.web.service.ListServiceStub.GetUserListResponse;
7 import org.web.service.ListServiceStub.User;
8
9 public class ListServiceClient {
10
11 /**
12 * @param args
13 * @throws RemoteException
14 */
15 public static void main(String[] args) throws RemoteException {
16 String target = "http://localhost:8080/axis2/services/ListService";
17 ListServiceStub stub = new ListServiceStub(target);
18 ListServiceStub.GetUserList getUserList0 = new ListServiceStub.GetUserList();
19 User user = new User();
20 user.setId("clientTest");
21 user.setName("ClientName");
22 getUserList0.setUser(user);
23 GetUserListResponse eur = stub.getUserList(getUserList0);
24 User[] userArray = eur.get_return();
25 for(int i=0;i<userArray.length;i++){
26 System.out.println("id:"+userArray[i].getId()+"name:"+userArray[i].getName()+"\n");
27 }
28 }
29 }
以java application方式執行,輸出:2
3 import java.rmi.RemoteException;
4
5 import org.web.service.ListServiceStub;
6 import org.web.service.ListServiceStub.GetUserListResponse;
7 import org.web.service.ListServiceStub.User;
8
9 public class ListServiceClient {
10
11 /**
12 * @param args
13 * @throws RemoteException
14 */
15 public static void main(String[] args) throws RemoteException {
16 String target = "http://localhost:8080/axis2/services/ListService";
17 ListServiceStub stub = new ListServiceStub(target);
18 ListServiceStub.GetUserList getUserList0 = new ListServiceStub.GetUserList();
19 User user = new User();
20 user.setId("clientTest");
21 user.setName("ClientName");
22 getUserList0.setUser(user);
23 GetUserListResponse eur = stub.getUserList(getUserList0);
24 User[] userArray = eur.get_return();
25 for(int i=0;i<userArray.length;i++){
26 System.out.println("id:"+userArray[i].getId()+"name:"+userArray[i].getName()+"\n");
27 }
28 }
29 }
1 id:clientTestname:ClientName
2
3 id:000name:jack000
4
5 id:001name:jack001
6
7 id:002name:jack002
說明呼叫成功。
2
3 id:000name:jack000
4
5 id:001name:jack001
6
7 id:002name:jack002
相關文章
- Axis2呼叫WebServiceWeb
- webService 客戶端呼叫 axis2Web客戶端
- 【原創】WebService(Axis2)視訊教程與QQ交流群釋出Web
- 【原創】WebService大講堂之Axis2(3):使用services.xml檔案釋出WebServiceWebXML
- 【原創】WebService大講堂之Axis2(7):將Spring的裝配JavaBean釋出成WebServiceWebSpringJavaBean
- C#釋出WebServiceC#Web
- WebService框架大比較(Axis,axis2,Xfire以及cxf)Web框架
- webservice介面呼叫Web
- 一種WebService的呼叫方式Web
- Ajax呼叫WebService(一)Web
- C#呼叫webserviceC#Web
- webservice中呼叫structWebStruct
- js 呼叫 WebService 方法JSWeb
- php呼叫webservice的幾種方法PHPWeb
- java動態呼叫webserviceJavaWeb
- 新增webservice呼叫日誌Web
- PHP呼叫Webservice例項PHPWeb
- webapi建立和呼叫WebServiceWebAPI
- 使用services.xml檔案釋出WebServiceXMLWeb
- 如何將多個SessionBean釋出為WebServiceSessionBeanWeb
- 二、Spring Cloud 之旅 -- Eureka 微服務的釋出與呼叫SpringCloud微服務
- php做的WebService用axis呼叫不到PHPWeb
- 騰訊WebService Api 跨域呼叫WebAPI跨域
- C#動態呼叫webserviceC#Web
- Android呼叫WebService詳解AndroidWeb
- WebService大講堂之Axis2(6):跨服務會話(Session)管理Web會話Session
- PHP使用SOAP呼叫.net的WebService資料PHPWeb
- xfire 客戶端呼叫webservice的問題客戶端Web
- 【Spring Cloud】Eureka實現微服務釋出與呼叫SpringCloud微服務
- 使用dubbo+zookeeper釋出服務與呼叫服務
- Spring整合CXF,釋出RSETful 風格WebServiceSpringWeb
- VB中呼叫WebService上的函式的方法Web函式
- Webservice呼叫方式:axis,soap詳解Web
- Android平臺呼叫WebService詳解AndroidWeb
- [Java 基礎]--呼叫webservice介面的方法JavaWeb
- 【原創】WebService大講堂之Axis2(4):二進位制檔案傳輸Web
- JAVA專案中釋出WebService服務—簡單例項JavaWeb單例
- 請幫我看看呼叫webservice的問題謝謝!Web