用Eclipse+axis2+tomcat進行web service部署

目錄 

1 安裝JDK
  1.1 下載JDK
  1.2 安裝和配置JDK
  1.3 驗證
2 安裝Eclipse
  2.1 下載Eclipse
  2.2 安裝
3 安裝Tomcat
  3.1 下載Tomcat
  3.2 安裝及配置
  3.3 驗證
4 安裝axis2
  4.1 下載axis2
  4.2 在tomcat中部署axis2
  4.3 在eclipse中配置axis2
5 建立要發佈的Web Service
6 發佈Web Service
7 編寫客戶端代碼調用WebService

參考

1 安裝JDK


 返回

1.1 下載JDK

JDK下載地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

1.2 安裝和配置JDK

  1. 安裝目錄儘量不要有空格  D:\Java\jdk1.8.0_91; D:\Java\jre8
  2. 設置環境變量: “我的電腦”->右鍵->“屬性”->”高級系統設置”->"新建系統變量"
    JAVA_HOME:D:\Java\jdk1.8.0_91
    Path: %JAVA_HOME%\bin
  3. 重啓計算機

1.3 驗證

驗證一下是否搭建成功 打開CMD,輸入: java -version

2 安裝Eclipse


 返回

2.1 下載Eclipse

下載地址: https://www.eclipse.org/downloads/packages/release/Indigo/SR2,下載“Eclipse IDE for Java EE Developers”

2.2 安裝

解壓即可使用。這裏解壓到 D:\Program Files\eclipse-jee-indigo-SR2-win32-x86_64\

3 安裝Tomcat


 返回

3.1 下載Tomcat

下載地址: http://tomcat.apache.org/download-70.cgi 

3.2 安裝及配置

  1. 解壓到目錄:D:\tomcat
  2. 設置環境變量: “我的電腦”->右鍵->“屬性”->”高級系統設置”->"新建系統變量"
    CATALINA_HOME:D:\tomcat
    Path: CATALINA_HOME%\lib;%CATALINA_HOME%\bin

3.3 驗證

以“管理員身份運行” D:\tomcat\bin\startup.bat

4 安裝axis2


 返回

4.1 下載axis2

axis主頁面:http://ws.apache.org/axis2/download.cgi

下載地址:http://mirror.bit.edu.cn/apache/axis/axis2/java/core/1.7.4/

下載axis2-1.7.4-bin.zip,解壓到:D:\Dev\axis2-1.7.4 ,lib目錄下的jar包是WebService業務開發需要的庫文件 

4.2 在tomcat中部署axis2

下載axis2-1.6.2-war.zip,解壓到tomcat的webapps目錄下(D:\tomcat\webapps),重啓tomcat,會發現webapps目錄下多了axis2文件夾,在瀏覽器裏輸入http://localhost:8080/axis2,會發現對應的網頁,說明已經成功了

4.3 在eclipse中配置axis2

  1. 下載axis2-eclipse-codegen-plugin-1.7.4.zip和axis2-eclipse-service-plugin-1.7.4.zip
  2. 先關閉eclipse
  3. 進入eclipse的文件中將上面下載的eclipse插件解壓到dropins文件目錄下(解壓的時候會生成plugins文件夾,我是把裏面生成的jar直接拷出來放在dropins文件夾裏面),這裏解壓到:D:\Program Files\eclipse-jee-indigo-SR2-win32-x86_64\eclipse\dropins。
  4. 然後重啓eclipse,點擊File->New->Other有如下圖顯示,則表示安裝插件成功!

5 建立要發佈的Web Service


 返回

打開Eclipse,Windows->Preferences下new一個User Libraries,命名爲axis2,將下載axis2-1.7.4-bin.zip解壓到:D:\Dev\axis2-1.7.4,把該目錄下lib 下的包均添加進來,如下圖所示。這一步操作的目的是爲了以後工程方便添加axis2所需的 jar文件。 

  1. 建立一個JavaProject,命名爲HelloWorld,
  2. 將axis2用戶庫加入到build path中
  3. 現在開始編寫要發佈的WebService,在src包中建包Services,建立Hello類如下:
複製代碼
package Services;

public class Hello {
    public String sayHi(String user) {
        return "Hi, "+ user;
    }
}
複製代碼

6 發佈Web Service


 返回

  1. 編譯剛剛建立的Hello類,類編譯後,會在workspace中對應工程目錄下的bin文件夾下生成Hello.class文件

  2. 打包要發佈的Service, 點擊Eclipse中New -> File -> Other -> Axis2 wizards -> Axis2 Services Archiver

  3. 按上圖填寫,class File Location爲工作目錄對應項目的bin文件夾,並勾上Include .class files only,點擊next

  4. 默認選擇Skip WSDL,點擊next

  5. 默認,繼續next

  6. 默認,繼續next

  7. 如上圖所示,Class name請務必設爲Services.Hello,代表使用的類是D:\Users\...\workspace\HelloWorld\bin路徑下,文件夾Services下的Hello類,否則Load不上的。

  8. 如上圖所示,output file location務必填寫tomcat目錄的axis2\web-inf\services下,點擊Finish後,可以發現:D:\tomcat\webapps\axis2\WEB-INF\services目錄下增加了sayHi_service.aar

  9. 測試所發佈的Web Service 
      打開http://localhost:8080/axis2/services/listServices頁面,可以看到HelloWorld服務:

 

     點擊HelloWorld鏈接進入wsdl頁面

7 編寫客戶端代碼調用WebService


 返回

在src包中建包Client,建立myClient類如下:

複製代碼
package Client;

import javax.xml.namespace.QName;
import org.apache.axis2.AxisFault;
import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.client.Options;
import org.apache.axis2.rpc.client.RPCServiceClient;

public class myClient {

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

        // 使用RPC方式調用WebService
        RPCServiceClient serviceClient = new RPCServiceClient();
        Options options = serviceClient.getOptions();
        // 指定調用WebService的URL
        EndpointReference targetEPR = new EndpointReference("http://localhost:8080/axis2/services/HelloWorld");
        options.setTo(targetEPR);

        // 指定要調用的sayHelloToPerson方法及WSDL文件的命名空間
        QName opAddEntry = new QName("http://Services", "sayHi");
        // 指定sayHelloToPerson方法的參數值
        Object[] opAddEntryArgs = new Object[] { "John" };
        // 指定sayHelloToPerson方法返回值的數據類型的Class對象
        Class[] classes = new Class[] { String.class };
        // 調用sayHelloToPerson方法並輸出該方法的返回值
        System.out.println(serviceClient.invokeBlocking(opAddEntry, opAddEntryArgs, classes)[0]);
    }
}
複製代碼

運行該程序,點擊Run As->Java application,可以看到控制檯端口的輸出是:Hi, John

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章