Axis2教程 命令行發佈,java2wsdl,wsdl2java

Axis2 WebService

實現webservice的開源框架有很多,axis是比較常用的一種,它能讓你在tomcat上方便的發佈webservice,它能幫助你把代碼轉化成wsdl文件,或者把wsdl文件轉化成java代碼,下面對axis2作詳細說明,我會側重講cmd命令行發佈和轉化,因爲最新版axis2的插件和多數eclipse版本不兼容。

 

一.下載axis2

下載地址:http://axis.apache.org/axis2/java/core/download.cgi

當前最新版本是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

1.     直接拷貝目錄結構到tomcat發佈

網上幫助:http://axis.apache.org/axis2/java/core/docs/userguide-buildingservices.html#deployrun

直接拷貝如下目錄結構到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

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

java2wsdl -cn com.pipe.webservice.PipeService


成功生成。


五.Wsdl2java

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();

            }

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