<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    ivaneeo's blog

    自由的力量,自由的生活。

      BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
      669 Posts :: 0 Stories :: 64 Comments :: 0 Trackbacks

    一、環境安裝(tomcat,本人5.5): 
    首先下載到官方網站下載axis2 war包。 
    將war包復制到webapps目錄下邊,啟動tomcat,服務器加載了war包后會生成axis2目錄,跟我們平時的應用目錄沒神馬區別,唯一要注意的是axis的配置文件在WEB-INFconf, 
    在開發過程中要修改一下這個的配置文件。 

    二、(改造配置文件): 
    配置axis2的文件,axis2支持熱部署,意味著你可以再編譯好的class文件,直接復制到pojo目錄下(默認是pojo,等會有說明修改)。 
    在配置文件中找到<parameter name="hotdeployment">true</parameter>默認已經為熱部署; 
    另外一個在開發過程中你常需要把熱更新打開,默認是false 不打開,找到hotupdate 
    <parameter name="hotupdate">true</parameter> 
    發布pojo的目錄只是默認的,如果需要使用其他的目錄,需要添加配置元素,在axisconfig下面添加 
    <deployer extension=".class" directory="mymulu" class="org.apache.axis2.deployment.POJODeployer"/> 
    上面的配置文件只需要修改 directory的屬性,改為目錄名 

    二、(使用POJO方式發布webservice): 
    在pojo目錄(此目錄沒有,在axis2WEB-INF下面創建,其實細心的同學會發現,在配置文件axis就已經給我們定義了pojo目錄,看前面添加發布pojo目錄)下面的webservice可以通過重寫url去訪問(后面帶一些參數,類似action),如果遇到數據類型則需要做轉換,原因傳輸過程是以字符串形式傳輸,而且重寫URL的參數名必須要與方法的參數名相同。感覺比較土的方法 

    好吧說了那么多,現在讓我們來個helloworld吧~!! 
    首先我們先發布一個webservice, 
    編寫一個MyTest類

    public class MyTest { 	 	public String getString(String str){ 		System.out.println("調用了getString()傳入參數"+str); 		return str; 	} 	public void doNoThing(String str){ 		System.out.println("調用了doNothing()傳入參數:"+str); 	}  } 


    1.啟動你的tomcat,訪問這個url:http://127.0.0.1:8080/axis2/ (確保axis2是正常運行了), 
    2.神馬,沒改配置文件,好吧,就在%tomcat_home%webappsaxis2WEB-INF下面建立一個pojo文件夾。編寫好的類編譯成class文件后,直接復制到你所指定的目錄下。 
    3.最后訪問你的服務吧http://127.0.0.1:8080/axis2/services/MyTest?wsdl 


    現在開始客戶端開發,這里省略了使用axis的API開發客戶端,個人覺得這樣的開發效率好低吖,新手上手(本人懶的去看那個API),應該快速掌握怎么使用,所以這里介紹stub方式,使用了axis自帶的命令,可以根據wsdl生成客戶端,在%AXIS2_HOME%in目錄下有一個wsdl2java腳本(注意是wsdl to java)。 
    前提準備 
    下載了axis2 bin 文件,配置環境變量 例如: 
    變量名:AXIS2_HOME  
    值:E:studywebserviceaxis2-1.5.4-binaxis2-1.5.4 

    這里要用到前面的發布的webservice,保持你的服務器是啟動的,你的服務正常。 
    打開CMD 
    輸入下面的命令 
    %AXIS2_HOME%/bin/wsdl2java -uri http://localhost:8080/axis2/services/MyTest?wsdl -p com.lj.mywebservice  -s -o c:/mywebservice 

    這里說一下參數, -uri 當然是服務的wsdl文件地址,-p 報名 , -o 表示目錄,這里寫的是絕對路徑,也可以寫相對路徑 

    回車,你會發現在C盤下多了一個文件目錄,打開里邊一層層進去后,有一個MyTestStub類,這個類實現非常復雜,不用管他,拿過來直接用。 
    新建一個工程,寫個測試類,把剛才生成的類復制進去,當然別忘記了引入axis的jar包。

    package com.lj.myswebservice;  import java.rmi.RemoteException;  import org.apache.axis2.AxisFault;  public class TestClass { 	public static void main(String[] args) { 		 		try { 			MyTestStub my=new MyTestStub(); 			//在MYTestStub里邊定義了三個靜態嵌套類,分別作為參數對象,返回值對象。 			//這里定義了donothing方法的參數對象 			MyTestStub.DoNoThing donothing=new MyTestStub.DoNoThing(); 			//這里定義了getstring方法的參數對象 			MyTestStub.GetString getstring=new MyTestStub.GetString(); 			////這里定義了getString方法的返回值對象 			MyTestStub.GetStringResponse getstringresponse=new MyTestStub.GetStringResponse(); 			//設置參數值 			donothing.setArgs0("神馬也不做啊"); 			//設置參數值 			getstring.setArgs0("我是帥鍋"); 			//調用donothing方法 			my.doNoThing(donothing); 			//調用getString發放,設置參數,并返回值 			getstringresponse=my.getString(getstring); 			//打印返回值 			System.out.println(getstringresponse.get_return()); 		} catch (AxisFault e) { 			// TODO Auto-generated catch block 			e.printStackTrace(); 		} catch (RemoteException e) { 			// TODO Auto-generated catch block 			e.printStackTrace(); 		} 		 	} }  


    運行結果如下。 
    <!--StartFragment -->

     
    服務器結果如下。 
    <!--StartFragment -->



    總結,使用axis2構建服務是非常快的,這個例子使用的是deploy pojo的方式發布服務,所謂pojo就是個普通的JAVA類,與javabean區別就是不一定有get set方法(是不是這樣理解?)。在客戶端調用服務的時候,采取stub方式(貌似現在很流行,這樣編寫客戶端是灰常直觀的),只要拿到wsdl文件,就可以使用 wsdl2java命令生成客戶端,大大減少了開發量。

    還差得遠( ⊙ o ⊙ )啊!··明晚再看看別的方式發布鳥··

    晚了睡覺了··明天早起上班( ⊙ o ⊙ )啊!···

    posted on 2011-08-24 11:08 ivaneeo 閱讀(684) 評論(0)  編輯  收藏 所屬分類: java魔力
    主站蜘蛛池模板: 七次郎成人免费线路视频| 亚洲av无码成人精品区一本二本| 24小时免费直播在线观看| 一级毛片免费一级直接观看| 亚洲国产最大av| 亚洲成AV人片久久| 婷婷亚洲综合五月天小说 | 亚洲成a人片在线观看中文动漫| 国产色爽女小说免费看| 无码视频免费一区二三区| 67194成手机免费观看| 日本免费一区二区三区四区五六区 | 亚洲精品高清久久| 久久精品亚洲综合一品| 亚洲av午夜福利精品一区| 亚洲韩国精品无码一区二区三区| 亚洲中文字幕无码专区| 亚洲精品国产成人片| 国产偷v国产偷v亚洲高清| 国产成人亚洲精品青草天美| 亚洲精品国产成人片| 91精品国产亚洲爽啪在线观看| 亚洲国产香蕉碰碰人人| 亚洲av无码久久忘忧草| 亚洲国产欧美国产综合一区 | 亚洲AV无码一区二区三区电影| 亚洲一久久久久久久久| 边摸边吃奶边做爽免费视频网站| 久久精品无码免费不卡| 少妇人妻偷人精品免费视频 | 成人毛片视频免费网站观看| 国产在线观看免费完整版中文版 | 91免费国产在线观看| 亚洲片国产一区一级在线观看| 老司机亚洲精品影视www| 亚洲人成图片网站| 国内精品免费视频精选在线观看| 成年在线网站免费观看无广告| 亚洲精品无码AV人在线播放| 亚洲美女视频网址| 最近免费中文字幕MV在线视频3 |