转载
| 第二种: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
 chyx413332087