1. 程式人生 > >Axis2教程 命令列釋出,java2wsdl,wsdl2java

Axis2教程 命令列釋出,java2wsdl,wsdl2java

Axis2 WebService

實現webservice的開源框架有很多,axis是比較常用的一種,它能讓你在tomcat上方便的釋出webservice,它能幫助你把程式碼轉化成wsdl檔案,或者把wsdl檔案轉化成java程式碼,下面對axis2作詳細說明,我會側重講cmd命令列釋出和轉化,因為最新版axis2的外掛和多數eclipse版本不相容。

一.下載axis2

當前最新版本是1.6.1。


下載到本地:

Axis2-1.6.1-bin.zip裡有axis2的jar包。

Axis2-1.6.1-docs.zip裡有詳細的幫助文件。

Axis2-1.6.1-src.zip裡是原始碼,方便愛學習的同學研究。

Axis2-1.6.1-war.zip裡是axis的管理平臺,直接扔到tomcat中就能用了。


PipeService程式碼如下:

package com.pipe.webservice;

import com.pipe.bean.User;

public class PipeService {

      public String sayHello(String name) {

            return name + " say: hello";

      }

      public User getUser(String userName) {

            User user = new User();

            user.setName(userName);      

            return user;

      }

}

三. 釋出WebService

直接拷貝如下目錄結構到webapps/axis2/WEB-INF/services

Services.xml

<service name="PipeService" >

      <description>

            Please Type your service description here

      </description>

      <messageReceivers>

            <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only" class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver" />

            <messageReceiver  mep="http://www.w3.org/2004/08/wsdl/in-out"  class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>

      </messageReceivers>

      <parameter name="ServiceClass">com.pipe.webservice.PipeService</parameter>

</service>

重啟tomcat,成功。


2.     打包aar檔案,通過頁面upload釋出

考慮到給客戶釋出的話不太方便,故下面把它打成aar包。

在C盤下建資料夾AxisSession,按上文提到的目錄結構把class和server.xml放好。


通過cmd進入目錄,

打命令:jarcvf pipeservice.aar .(注意最後的句點)


回到該目錄可以看到pipeservice.aar,通過axis2管理平臺上傳。

使用者名稱密碼admin axis2


同樣成功。


在最外層輸全帶包名的類名。

java2wsdl -cn com.pipe.webservice.PipeService


成功生成。


wsdl2java -uri PipeService.wsdl



生成2個檔案。




public void downFile(StringfilePath) {

            System.out.println(filePath);

            StringtargetUrl = "http://localhost:8090/axis2/services/PipeService";

            try {

                  PipeServiceStubps = new PipeServiceStub(targetUrl);

                  PipeServiceStub.SayHellosayHello = new PipeServiceStub.SayHello();

                  PipeServiceStub.GetUsergetUser = new PipeServiceStub.GetUser();

                 

                  sayHello.setName("sam");

                  SayHelloResponse  shr = ps.sayHello(sayHello);

                 

                  getUser.setUserName("sam");              

                  GetUserResponsegur = ps.getUser(getUser);

                  Useru = gur.get_return();

                 

                  System.out.println(shr.get_return());

                  System.out.println(u.getName());

           

                 

            }catch (AxisFault e) {

                 

                  e.printStackTrace();

            }catch(RemoteException e) {

                  // TODOAuto-generated catch block

                  e.printStackTrace();

            }