狼愛(ài)上貍

          我胡漢三又回來(lái)了

          學(xué)習(xí)Axis和web service之一

          學(xué)習(xí)Axis和web service之一
          web service由于工作中需要用到,所以那天從網(wǎng)上GOOGLE一下,查看如何制作自己的第一個(gè)WEB SERVICE。首先,web service的原理我就不多講了,再怎么講也不如人家講的好,況且都是從別人那里拷貝的。還是整點(diǎn)實(shí)際的吧。馬上建立自己的WEB SERVICE的程序。

          一.首先下載安裝軟件:
          1.axis-src-1_2_1,(自己去下載,地址忘記了)
          2.jakarta-tomcat-5.0.18.exe(這個(gè)是安裝版本,從別的地方拷貝也可以的)
          最少也要有這兩個(gè)包

          二.安裝
          自己安裝吧。挺簡(jiǎn)單的。TOMCAT安裝最好改一下名字比如:TOMCAT

          三.
          1.將axis-src-1_2_1這個(gè)包解壓后,將axis-1_2_1\webapps下axis的所有東西拷貝到你剛剛建立的TOMCAT的webapps下。目錄結(jié)構(gòu)如下:
          tomcat-webapps-axis
          然后查看一下你的axis的WEB-INF的lib下*.jar文件是否全,應(yīng)該有8個(gè)
          axis.jar
          axis-ant.jar
          commons-discovery-0.2.jar
          commons-logging-1.0.4.jar
          jaxrpc.jar
          log4j-1.2.8.jar
          saaj.jar
          wsdl4j-1.5.1.jar
          (一定看好各個(gè)文件的文件名,一會(huì)將配置CLASSPATH)

          2.然后到axis-1_2_1目錄下,找到lib文件夾,拷貝其中的activation.jar文件,到
          Tomcat\webapps\axis\WEB-INF\lib,和上面的8個(gè)jar文件在一起,就OK了。

          四.配置classpath
          我的電腦-右鍵屬性-高級(jí)-環(huán)境變量
          1.建立變量:AXIS_HOME=D:\Tomcat\webapps\axis(你自己的實(shí)際TOMCAT目錄)
          2.建立變量:AXIS_LIB=%AXIS_HOME%\WEB-INF\lib
          建立這兩個(gè)環(huán)境變量
          3.classpath(相信這個(gè)變量里面肯定有值,TOMCAT安裝的時(shí)候配置過(guò))

          .;%JAVA_HOME%\lib\dt.jar;
          %JAVA_HOME%\lib\tools.jar;
          %TOMCAT_HOME%\lib;(以上三個(gè)都是安裝TOMCAT配置的,下面是axis的)
          %AXIS_LIB%\axis.jar;
          %AXIS_LIB%\commons-discovery-0.2.jar;
          %AXIS_LIB%\commons-logging-1.0.4.jar;
          %AXIS_LIB%\jaxrpc.jar;
          %AXIS_LIB%\saaj.jar;
          %AXIS_LIB%\log4j-1.2.8.jar;
          %AXIS_LIB%\wsdl4j-1.5.1.jar;
          %AXIS_LIB%\activation.jar;
          %AXIS_LIB%\mail.jar
          拷貝到classpath里面就可以了,然后點(diǎn)擊確定。

          五.測(cè)試
          這步很重要,我自己覺(jué)得,因?yàn)槿绻悴恢繡LASSPATH是否配置齊全,所以應(yīng)該測(cè)試一下,有些文章沒(méi)有測(cè)試直接就往下走了,但是就出現(xiàn)問(wèn)題了,我就出現(xiàn)了問(wèn)題,是jar包沒(méi)有導(dǎo)入造成的,錯(cuò)誤信息如這樣:
          Exception in thread "main" java.lang.NoClassDefFoundError:

          javax/wsdl/OperationType
          at org.apache.axis.description.OperationDesc.<clinit>(OperationDesc.java
          :58)
                  at org.apache.axis.client.Call.addParameter(Call.java:948)
                  at org.apache.axis.client.Call.addParameter(Call.java:983)
                  at BankClient.main(BankClient.java:29)
          這就是沒(méi)有導(dǎo)入造成的錯(cuò)誤。
          其實(shí)你先看一下classpath就能避免錯(cuò)誤。
          點(diǎn)擊開(kāi)始-運(yùn)行-cmd-打開(kāi)命令行窗口-敲入set classpath,好了你配置的classpath完全顯示了,你可以仔細(xì)的查看了。

          六調(diào)試AXIS
          啟動(dòng)TOMCAT,輸入網(wǎng)址 http://localhost:8080/axis, 出現(xiàn) "Hello! Welcome to Apache-Axis." 歡迎詞, 點(diǎn)擊鏈接 Validate 來(lái)驗(yàn)證 Axis 所需的 .jar 包是否齊全 (Needed Components).

          七.開(kāi)發(fā)一個(gè) Web Service 服務(wù)端程序
          (代碼是轉(zhuǎn)貼,謝謝!)
          我的這個(gè)例子是使用 Web Service 返回一個(gè)請(qǐng)求字段的值.

          import java.util.*;
           
          public class wsTestService
          {
            String strName = "Ryun";
            int intAge = 21;
            List items = new ArrayList();
            
            public String getName() {
              return strName;
             }
            
            public int getAge() {
              return intAge;
             }
            
            public List getItems() {
              return items;
             }
          }將此文件命名為 wsTestService.jws 存放到
          d:\tomcat\webapp\axis\下
          訪問(wèn) http://localhost:8080/axis/wsTestService.jws, 出現(xiàn) "There is a Web

          Service here"即表明 Web Service 服務(wù)端程序安裝完成.
          開(kāi)發(fā)一個(gè) Web Service 客戶端程序
          建立客戶端程序wsTestClient.java
          以下是客戶端的源程序, 用于向 Web Service Server 提交服務(wù)請(qǐng)求:

          import org.apache.axis.client.Call;
          import org.apache.axis.client.Service;
           
          public class wsTestClient {
            public static void main(String args[]) {
              System.out.println("Start invoking...");
              try {
                String strUri =

          "http://localhost:8080/axis/wsTestService.jws";
                Service service = new Service();
                Call call = (Call)
                service.createCall();
                call.setTargetEndpointAddress(new

          java.net.URL(strUri));
                call.setOperationName("getName");
                String ret = "" + call.invoke(new Object[] {});
                System.out.println("I am " + ret + ".");
               }
              catch (Exception e) {
                System.err.println(e.toString());
               }
              System.out.println("Finished the invoking.");
              }
          }
          然后編譯運(yùn)行,如果出現(xiàn)問(wèn)題,那可能是環(huán)境變量path,classpath配置的問(wèn)題,自己查看

          一下,這里就不再描述了。
          C:\>cd \
          C:\>javac wsTestClient.java
           
          C:\>java wsTestClient
          Start invoking...
          I am Ryun.
          Finished the invoking.
          完成,再去學(xué)習(xí),稍后總結(jié)


          來(lái)自:
          http://www.cnweblog.com/battleseagull/articles/20130.html

          posted on 2007-06-21 15:54 狼愛(ài)上貍 閱讀(2399) 評(píng)論(0)  編輯  收藏 所屬分類: AXIS

          主站蜘蛛池模板: 伊吾县| 尚义县| 绥棱县| 获嘉县| 朝阳县| 新巴尔虎左旗| 阿鲁科尔沁旗| 旺苍县| 黄平县| 八宿县| 库车县| 凤翔县| 石渠县| 广南县| 罗甸县| 镇平县| 奇台县| 峨边| 林周县| 剑阁县| 南乐县| 交口县| 陕西省| 阳西县| 新绛县| 剑阁县| 太原市| 电白县| 青海省| 嵊泗县| 洞口县| 阜新| 神池县| 仙居县| 上思县| 阳东县| 武功县| 富平县| 麦盖提县| 济南市| 株洲县|