轉載
|
第二種: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();
}
}
最后編寫一個deploy.wsdd文件如下:
<deployment xmlns="http://xml.apache.org/axis/wsdd/"
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
<!—這里的stubs為wsdd描述符中的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"
<!—這是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 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!