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

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

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

    ivaneeo's blog

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

      BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
      669 Posts :: 0 Stories :: 64 Comments :: 0 Trackbacks

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

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

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

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

    public class MyTest { 	 	public String getString(String str){ 		System.out.println("調(diào)用了getString()傳入?yún)?shù)"+str); 		return str; 	} 	public void doNoThing(String str){ 		System.out.println("調(diào)用了doNothing()傳入?yún)?shù):"+str); 	}  } 


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


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

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

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

    回車,你會發(fā)現(xiàn)在C盤下多了一個文件目錄,打開里邊一層層進去后,有一個MyTestStub類,這個類實現(xiàn)非常復(fù)雜,不用管他,拿過來直接用。 
    新建一個工程,寫個測試類,把剛才生成的類復(fù)制進去,當(dāng)然別忘記了引入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里邊定義了三個靜態(tài)嵌套類,分別作為參數(shù)對象,返回值對象。 			//這里定義了donothing方法的參數(shù)對象 			MyTestStub.DoNoThing donothing=new MyTestStub.DoNoThing(); 			//這里定義了getstring方法的參數(shù)對象 			MyTestStub.GetString getstring=new MyTestStub.GetString(); 			////這里定義了getString方法的返回值對象 			MyTestStub.GetStringResponse getstringresponse=new MyTestStub.GetStringResponse(); 			//設(shè)置參數(shù)值 			donothing.setArgs0("神馬也不做啊"); 			//設(shè)置參數(shù)值 			getstring.setArgs0("我是帥鍋"); 			//調(diào)用donothing方法 			my.doNoThing(donothing); 			//調(diào)用getString發(fā)放,設(shè)置參數(shù),并返回值 			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(); 		} 		 	} }  


    運行結(jié)果如下。 
    <!--StartFragment -->

     
    服務(wù)器結(jié)果如下。 
    <!--StartFragment -->



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

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

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

    posted on 2011-08-24 11:08 ivaneeo 閱讀(686) 評論(0)  編輯  收藏 所屬分類: java魔力
    主站蜘蛛池模板: 在线观看亚洲精品专区| 一级免费黄色大片| 免费看国产一级片| 久久九九久精品国产免费直播| 久久激情亚洲精品无码?V| 永久看日本大片免费35分钟 | 久久久久亚洲AV片无码| 在线看片v免费观看视频777| 羞羞网站免费观看| 亚洲AV成人精品网站在线播放| 在线免费视频一区二区| 国产日韩精品无码区免费专区国产| 亚洲色图校园春色| 亚洲?v无码国产在丝袜线观看| 日韩人妻无码精品久久免费一| 亚洲av日韩综合一区久热| 无码久久精品国产亚洲Av影片| 日韩免费一级毛片| 午夜免费福利片观看| 国产亚洲情侣久久精品| 亚洲欧洲日本天天堂在线观看| 亚洲午夜日韩高清一区| 午夜成人免费视频| 99久久99热精品免费观看国产| 国产精品观看在线亚洲人成网| 亚洲精品国产福利在线观看| 亚洲精品视频在线看| 毛片a级毛片免费观看免下载 | 国产激情久久久久影院老熟女免费| 亚洲国产成人精品无码一区二区 | 亚洲v高清理论电影| 亚洲成人国产精品| 最近中文字幕mv免费高清电影| 久久久久久国产精品免费免费男同| 美女视频免费看一区二区| 亚洲一级黄色大片| 亚洲图片在线观看| 亚洲一区二区三区偷拍女厕| 亚洲AV无码成H人在线观看 | 亚洲午夜av影院| 国产成人精品123区免费视频|