轉載

chyx413332087 14年前發布 | 904 次閱讀
第二種:Stubs 開發方式(stubs 故名思意,存根的方式)
  Stubs 方式相對要復雜一點.不過如果學會了這種方式,嘿嘿,那你開發的時候
 就會明顯比第一種方式快了,接下來,跟我一起學吧.
 步驟1:
創建環境變量,設置AXIS的環境變量.
這種方式的編碼,先要設置一下命令行的環境.右鍵我的電腦――>屬性――>
選擇高級選項卡――>新建用戶變量――>輸入用戶變量如下:
  變量名:AXIS_LIB
   變量值: E:\tomcat5.28\Tomcat 5.0\webapps\axis\WEB-INF\lib(這是本人的)
   變量名:CLASSPATH
變量值:.;%AXIS_LIB%\axis.jar;
%AXIS_LIB%\activation.jar;
%AXIS_LIB%\axis-ant.jar;
%AXIS_LIB%\commons-discovery-0.2.jar;
%AXIS_LIB%\commons-logging-1.0.4.jar;
%AXIS_LIB%\jaxrpc.jar;
%AXIS_LIB%\log4j-1.2.8.jar;
%AXIS_LIB%\mail.jar;
%AXIS_LIB%\saaj.jar;
%AXIS_LIB%\wsdl4j-1.5.1.jar;
%AXIS_LIB%\xmlsec-1.4.0.jar;
%AXIS_LIB%\dom4j-1.6.1.jar;
    變量名:AXIS_HOME
    變量值:E:\tomcat5.28\Tomcat 5.0\webapps\axis
  新建好上述的三個變量后.確定退出.
步驟2:
 編碼開始!這里要稍講得詳細并復雜一點了,我們上面看到了,只設置了一個普通
 的參數,這里我就寫一下自定義數據類型參數的傳遞.網上很多文章只講到了
普通數據類型做參數傳遞.
 服務器端的編寫,代碼與注釋如下:
  首先定義自定義參數類(第一個類)
    package com.web.test;
 
publicclass UserBean {//自定義數據類型.
     //很簡單,只有一個String int
    private String name="";
    privateint age ;
    publicint getAge() {
       returnage;
    }
 
    publicvoid setAge(int age) {
       this.age = age;
    }
 
    public String getName() {
       returnname;
    }
 
    publicvoid setName(String name) {
       this.name = name;
    }
   
}
 其次編寫第二個類Webservice服務器端類
package com.web.test;
 
publicclass Server {//服務器端
    //服務端,傳遞的是一個自定義的數據類型. UserBean
    public String getBeanStr(UserBean bean){
       return"You Name:"+bean.getName() +
              " , You Age:" + bean.getAge();
    }
}
    最后編寫一個deploywsdd文件如下:
<deployment xmlns="http://xml.apache.org/axis/wsdd/"
           xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
<!—這里的stubswsdd描述符中的ServiceNamespace à
<service name="stubs" provider="java:RPC">
<!—這里的ClassName就是我的服務類了,這個服務主要功能就是傳遞一個自定義的對象 à
<parameter name="className" value="com.web.test.Server"/>
<!—這里描術的意思是,此服務類中的方法全部享出來.value值為*號 如果你只想讓你的
客戶端只能調用其中一個方法時,value值改為方法名就可以了.à
<parameter name="allowedMethods" value="*"/>
<!—這個typeMapping 是類型映射,使傳遞的參數序列化用反序列化,一個自定義類型
在要網絡上傳遞,那就一定得讓他序列化. -->
 <typeMapping
     <!—下面是反序列化類配置à
deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"
        encodingStyle=http://schemas.xmlsoap.org/soap/encoding/
       <!—這是Qname名稱的定義.à
        qname="ns1:user"
   <!――序列化類配置――>
       serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"
     <!—我的數據參數類型類路徑à
        type="java:com.web.test.UserBean"
      <!—Qname對映的keyà
        xmlns:ns1="urn:BeanService"
 />
</service>
</deployment>

 本文由用戶 chyx413332087 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!