小海賊的夜晚

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            14 隨筆 :: 0 文章 :: 9 評(píng)論 :: 0 Trackbacks

          在我們的項(xiàng)目成功應(yīng)用了Hessian作為遠(yuǎn)程函數(shù)調(diào)用的技術(shù)方案之后,我又產(chǎn)生了新的疑問,它是除EJB和RMI-OP之外的唯一RPC選擇嗎?據(jù)說AXIS才是Web Service的正選,不管是否應(yīng)用它,都應(yīng)該去試試和了解它。那今天就上第一課吧,先做一個(gè)HelloWorld程序吧!

          1)在http://ws.apache.org/axis/index.html下載AXIS的BIN版本,并將其解壓后將其中的webapps\axis目錄拷貝到你的tomcat目錄下的webapps目錄之下。

          2)將以下jar拷貝至你的axis/WEB-INF/lib目錄下:

          activation.jar 、mail.jar 、xalan-2.4.0.jar 、xerces-2.4.0.jar 、 xercesImpl.jar

          3)在axis目錄下建立以下文件Hello.jws,內(nèi)容如下:

          public class Hello{
           public String hello(String name){
            if(name==null)
             name = "";
            return "hello,"+name+"!";
          }
          }

          4)創(chuàng)建JAVA接口程序,在命令行下進(jìn)入到axis\WEB-INF目錄下,在DOS提示符下輸入:

          Java -Djava.ext.dirs=lib org.apache.axis.wsdl.WSDL2Java http://localhost:8080/axis/Hello.jws?wsdl

          該命令執(zhí)行的結(jié)果是在當(dāng)前所在目錄下產(chǎn)生一個(gè)子目錄 localhost/axis/Hello_jws,該目錄下有四個(gè)JAVA源文件,它們分別是:

          Hello.java 定義了Web服務(wù)接口,此例中只有一個(gè)hello方法。

          HelloService.java 定義了用于獲取Web服務(wù)接口的方法。

          HelloServiceLocator.java 接口HelloService的具體實(shí)現(xiàn)。

          HelloSoapBindingStub.java Web服務(wù)客戶端樁,通過該類與服務(wù)器交互。

          5)編寫調(diào)用示例程序Main.java如下:

          package localhost.axis.Hello_jws;

          public class Main {
           public static void main(String[] args) throws Exception {
            HelloService service = new HelloServiceLocator();
            Hello hello = service.getHello();
            System.out.println(hello.hello("sunbeam"));
           }
          }

          6)編譯后運(yùn)行,如果輸出以下結(jié)果,恭喜你已經(jīng)成功的完成了你的第一個(gè)AXIS WEB Serive程序啦。

          > hello,sunbeam

          附注:

          1)建議使用Eclipse進(jìn)行開發(fā),將axis目錄設(shè)為tomcat project工程位置,將WEB-INF下的localhost目錄設(shè)為源文件目錄。并將生成接口程序的命令行程序定為Extend Tool外部程序。這樣的生產(chǎn)效率最高也最方便。具體做法今天就懶得寫了,以后再補(bǔ)好啦。

          2)我順便寫個(gè)程序測試一下它所能承載的數(shù)據(jù)量和運(yùn)行速度,感覺速度明顯低于Hessian(估計(jì)接近一個(gè)數(shù)量級(jí)),傳輸?shù)膶?duì)象大小也大約是Hessian的1/5-1/10左右,究其原因我推論是Hessian是二進(jìn)制方式傳輸數(shù)據(jù),Axis的WEB服務(wù)是文本型的SOAP協(xié)議傳輸,而且再加上XML標(biāo)簽所占用的大量數(shù)據(jù)而已。下次再評(píng)估一下其它的RPC方法。

          posted on 2005-07-28 18:28 海賊 閱讀(621) 評(píng)論(1)  編輯  收藏 所屬分類: webservice

          評(píng)論

          # re: 第一個(gè)AXIS WEB服務(wù)程序- 2006-10-20 15:13 gugu
          2)將以下jar拷貝至你的axis/WEB-INF/lib目錄下:

          activation.jar 、mail.jar 、xalan-2.4.0.jar 、xerces-2.4.0.jar 、 xercesImpl.jar

          怎么每篇文章所說的JAR文件都不一樣那?
          你可以幫忙解釋下哪些必須的那?  回復(fù)  更多評(píng)論
            


          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 紫金县| 阿坝县| 嫩江县| 甘德县| 洪洞县| 巴青县| 馆陶县| 惠东县| 闽清县| 栖霞市| 澎湖县| 崇文区| 泌阳县| 泸定县| 永胜县| 沾益县| 富民县| 长垣县| 长宁区| 庆云县| 陵川县| 房产| 安龙县| 南雄市| 乌拉特前旗| 青海省| 昌都县| 政和县| 通化市| 河津市| 连州市| 三都| 洮南市| 定安县| 虎林市| 德格县| 乡宁县| 漠河县| 金寨县| 永春县| 黎平县|