夢(mèng)幻之旅

          DEBUG - 天道酬勤

             :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            671 隨筆 :: 6 文章 :: 256 評(píng)論 :: 0 Trackbacks
          <2008年3月>
          2425262728291
          2345678
          9101112131415
          16171819202122
          23242526272829
          303112345

          公告

          本博客中未注原創(chuàng)的文章均為轉(zhuǎn)載,對(duì)轉(zhuǎn)載內(nèi)容可能做了些修改和增加圖片注釋?zhuān)绻址噶四陌鏅?quán),或沒(méi)有注明原作者,請(qǐng)諒解

          常用鏈接

          留言簿(21)

          隨筆分類(lèi)(644)

          隨筆檔案(669)

          文章檔案(6)

          最新隨筆

          積分與排名

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

              下面介紹以JWS的方式在TOMCAT上的部署WEBSERVICE。
              前言:
              相信有越來(lái)越多的程序員將接觸WEBSERVICE這一新的領(lǐng)域。但是,總感覺(jué)很迷茫。買(mǎi)本書(shū)來(lái)看看,介紹的好象都是XML的知識(shí),什么WSDL等等。搞的我們?cè)评镬F里的。那么,我們不仿自己來(lái)試試看,自己寫(xiě)一些WEBSERVICE程序,看看它的運(yùn)行結(jié)果是怎么樣子的。本文檔就是介紹怎么樣在TOMCAT上部署簡(jiǎn)單的WEBSERVICE服務(wù),客戶(hù)端又是怎么樣去訪問(wèn)這個(gè)服務(wù),并得到自己想要的信息的。
              AXIS是Apache SOAP的第三代產(chǎn)品。
              JWS 文件是語(yǔ)法正確的 Java。但 JWS 文件還具有一些特性,即可利用 WebLogic Workshop 的 Web Service 強(qiáng)大功能。

              下面介紹一下以JWS的方式在TOMCAT上的部署WEBSERVICE。
              本文檔的適用對(duì)象:
              本文檔適合于WEBSERVICE的初學(xué)者。但是,對(duì)TOMCAT有點(diǎn)了解,至少知道怎么啟動(dòng)TOMCAT。
              關(guān)于該文檔的約定:
              TOMCAT.DIR   表示TOMCAT的安裝路徑。
              webapps.dir  表示tomcat.dir/webapps路徑。
              axis.dir     表示tomcat.dir/webapps/axis
              步驟:
              一、下載并安裝axis。
              下載地址:http://xml.apache.org。下載并解壓。把AXIS目錄拷貝到webapps.dir目錄下。一般,axis.dir的目錄結(jié)構(gòu)如下所示:
              axis
              --web-inf
              ----attachments
              ----classes
              ----jwsClasses
              ----lib
              在axis.dir/web-inf目錄下還有一個(gè)重要的文件server-config.wsdd。安裝好AXIS之后,運(yùn)行TOMCAT,即啟動(dòng)服務(wù)。啟動(dòng)完成之后,我門(mén)就可以使用我門(mén)的瀏覽器訪問(wèn)我門(mén)的服務(wù)。在地址欄里輸入http://localhost:8080/axis,這時(shí)我們就可以看到Apache-AXIS的歡迎界面。假如,沒(méi)有看到這個(gè)歡迎界面,那么,安裝AXIS是失敗的。

              二、寫(xiě)服務(wù)端代碼:
           MyService.java:
          public class MyService {
              public String sayHello(String name,boolean isMan) {
                  if(isMan) {
                      return "Hello,Mr "+name+"! Welcome to Webservice";
                  } else {
                      return "Hello,Miss "+name+"! Welcome to Webservice";
                  }
              }
          }
              注意:不要將MyService.java放在一個(gè)PACKAGE里面。

              三、寫(xiě)客戶(hù)端程序
          package com.unimas.datacollection.webservices.client;
          import org.apache.axis.client.Call;
          import org.apache.axis.client.Service;
          import org.apache.axis.encoding.XMLType;

          import javax.xml.namespace.QName;
          import javax.xml.rpc.ParameterMode;

          public class Client
          {
              public static void main(String [] args)
              {
                  try {
                      String endpoint="http://localhost:8080/axis/MyService.jws";

                      Service  service = new Service();
                      Call     call    = (Call) service.createCall();

                      call.setTargetEndpointAddress( new java.net.URL(endpoint) );
                      call.setOperationName( new QName("MyService", "sayHello") );
                      call.addParameter( "arg1", XMLType.XSD_STRING, ParameterMode.IN);
                      call.addParameter( "arg2", XMLType.XSD_BOOLEAN, ParameterMode.IN);
                      call.setReturnClass(String.class);

                      String man = (String) call.invoke( new Object[] { "syc",new Boolean(true) } );
                      String women = (String) call.invoke( new Object[] { "yll",new Boolean(false) } );
                      System.out.println("if is a man you will see:"+man);
                      System.out.println("if is a women you will see:"+women);
                  } catch (Exception e) {
                      e.printStackTrace();
                      System.err.println(e.toString());
                  }
              }
          }
              假如用addParameter方法來(lái)設(shè)置參數(shù)的話(huà),必須使用setReturnType來(lái)設(shè)置返回類(lèi)型。與之相等效的方法為setReturnClass。
              還有一種客戶(hù)端程序的寫(xiě)法,如下所示:
          package com.unimas.datacollection.webservices.client;

          import org.apache.axis.client.Service;
          import org.apache.axis.client.Call;

          import javax.xml.namespace.QName;

          public class AnothClient {
             public static void main(String [] args) {
                 try {
                     String endpoint="http://localhost:8080/axis/MyService.jws";

                     Service  service = new Service();
                     Call     call    = (Call) service.createCall();

                     call.setTargetEndpointAddress( new java.net.URL(endpoint) );
                     QName qname = new QName("sayHello");
                     call.setOperationName(qname);

                      String man = (String) call.invoke( new Object[] { "syc",new Boolean(true) } );
                      String women = (String) call.invoke( new Object[] { "yll",new Boolean(false) } );
                      System.out.println("if is a man you will see:"+man);
                      System.out.println("if is a women you will see:"+women);
                 } catch (Exception e) {
                     System.err.println(e.toString());
                     e.printStackTrace();
                 }
             }
          }
              這兩中寫(xiě)法,所達(dá)到的效果是一樣的。
              四:部署
              將MyService.java拷貝到axis.dir目錄下面。并將起重命名為MyService.jws。這個(gè)時(shí)候,我門(mén)就把我們的服務(wù)器端部署好了,啟動(dòng)我們的服務(wù)器(執(zhí)行startup.bat)。
              五、運(yùn)行客戶(hù)端程序:
                  1、運(yùn)行客戶(hù)端程序Client。你將看到如下結(jié)果:
           if is a man you will see:Hello,Mr syc! Welcome to Webservice
           if is a women you will see:Hello,Miss yll! Welcome to Webservice
                 2、運(yùn)行客戶(hù)端程序AnothClient。你將看到如下結(jié)果:
           if is a man you will see:Hello,Mr syc! Welcome to Webservice
           if is a women you will see:Hello,Miss yll! Welcome to Webservice
              總結(jié):以上就是一個(gè)簡(jiǎn)單的WEBSERVICE部署的全過(guò)成。非常簡(jiǎn)單是不?但是,這里有個(gè)致命的確定,就是服務(wù)器程序不能放在一個(gè)包里面,也就是說(shuō)不能使用PACKATE。優(yōu)點(diǎn)就是簡(jiǎn)單實(shí)用。
          參考資料:
              Axis入門(mén):www.csdn.net
              Axis Documentation:  http://ws.apache.org/axis/java/index.html
              The Java Web Services Tutorial http://java.sun.com/webservices/docs/1.1/tutorial/doc/index.html

          posted on 2008-03-12 15:42 HUIKK 閱讀(6830) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): Java
          主站蜘蛛池模板: 潜山县| 香港 | 七台河市| 彭泽县| 福鼎市| 龙游县| 山东省| 诸城市| 遵化市| 安义县| 自治县| 农安县| 临潭县| 芮城县| 武城县| 同心县| 柳江县| 密云县| 康马县| 三台县| 祁门县| 永清县| 潜山县| 库伦旗| 出国| 古田县| 承德县| 香河县| 屏山县| 密云县| 汉川市| 冀州市| 兴山县| 文化| 新干县| 专栏| 海宁市| 遵义县| 武陟县| 东山县| 鲁甸县|