隨筆-109  評論-187  文章-25  trackbacks-0
          最近復(fù)習了一下AXIS,寫了2個小例子


          1:  bean
           1package test.soap.vo;
           2
           3import java.io.Serializable;
           4
           5public class User implements Serializable {
           6
           7    /**
           8     * 
           9     */

          10    private static final long serialVersionUID = -9043747149109792411L;
          11
          12    private String name;
          13    private String password;
          14    public String getName() {
          15        return name;
          16    }

          17    public void setName(String name) {
          18        this.name = name;
          19    }

          20    public String getPassword() {
          21        return password;
          22    }

          23    public void setPassword(String password) {
          24        this.password = password;
          25    }

          26    public String toString() {
          27        return new StringBuffer().append(name+":"+password).toString();
          28    }

          29    
          30}

          31

          2:service
           1package test.soap.service;
           2
           3import test.soap.vo.User;
           4
           5public class UserService {
           6
           7    public User user = null;
           8
           9    public UserService() {
          10        super();
          11        
          12    }

          13
          14    public String getUser(User u) {
          15        System.out.println("user.name=" + user.getName());
          16        System.out.println("user.password=" + user.getPassword());
          17        return "000000000000000000000";
          18
          19    }

          20    public String getUser(){
          21        System.out.println("get user no arg");
          22        return "abc";
          23    }

          24    public String getUser(String i){
          25        System.out.println(i);
          26        return "123";
          27    }

          28
          29}

          30

          client 調(diào)用代碼:
           1        String wsdlURL = "http://localhost:8080/axis/services/soapObjSvc?wsdl";
           2        String nameSpaceUri ="http://localhost:8080/axis/services/soapObjSvc";
           3        org.apache.axis.client.Service  service = new org.apache.axis.client.Service();
           4        Call     call    = (Call) service.createCall();
           5        QName    qn      = new QName("urn:BeanService""User");
           6        User u = new User();
           7        u.setName("111111111111");
           8        u.setPassword("22222222222");
           9        call.registerTypeMapping(User.class, qn,
          10                          new org.apache.axis.encoding.ser.BeanSerializerFactory(User.class, qn),        
          11                          new org.apache.axis.encoding.ser.BeanDeserializerFactory(User.class, qn));        
          12            String result;
          13            try {
          14                call.setOperationName( new QName(nameSpaceUri, "getUser") );
          15                call.setTargetEndpointAddress( new URL(wsdlURL));
          16                
          17//                call.addParameter( "u", qn, ParameterMode.IN );
          18//                call.setReturnType( org.apache.axis.encoding.XMLType.XSD_STRING );
          19
          20//本行程序能夠調(diào)用,傳遞的是string參數(shù)                
          21                result = (String) call.invoke( new Object[] {"abcdefg"} );
          22//本行對象調(diào)用不通過,傳遞的是USER對象              
          23                result = (String) call.invoke( new Object[] {u} );
          24            }
           catch (Exception e) {
          25                e.printStackTrace();
          26                result = "1Error : " + e;
          27                
          28            }

          29            
          30            System.out.println(result);
          31

          4:server-config.wsdd
           1<?xml version="1.0" encoding="UTF-8"?>
           2<deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
           3 <globalConfiguration>
           4  <parameter name="adminPassword" value="admin"/>
           5  <parameter name="enableNamespacePrefixOptimization" value="true"/>
           6  <parameter name="disablePrettyXML" value="true"/>
           7  <parameter name="sendXsiTypes" value="true"/>
           8  <parameter name="sendMultiRefs" value="true"/>
           9  <parameter name="sendXMLDeclaration" value="true"/>
          10  <requestFlow>
          11   <handler type="java:org.apache.axis.handlers.JWSHandler">
          12    <parameter name="scope" value="session"/>
          13   </handler>
          14   <handler type="java:org.apache.axis.handlers.JWSHandler">
          15    <parameter name="scope" value="request"/>
          16    <parameter name="extension" value=".jwr"/>
          17   </handler>
          18  </requestFlow>
          19 </globalConfiguration>
          20 <handler name="soapmonitor" type="java:org.apache.axis.handlers.SOAPMonitorHandler">
          21  <parameter name="wsdlURL" value="/axis/SOAPMonitorService-impl.wsdl"/>
          22  <parameter name="serviceName" value="SOAPMonitorService"/>
          23  <parameter name="namespace" value="http://tempuri.org/wsdl/2001/12/SOAPMonitorService-impl.wsdl"/>
          24  <parameter name="portName" value="Demo"/>
          25 </handler>
          26 <handler name="LocalResponder" type="java:org.apache.axis.transport.local.LocalResponder"/>
          27 <handler name="URLMapper" type="java:org.apache.axis.handlers.http.URLMapper"/>
          28 <handler name="Authenticate" type="java:org.apache.axis.handlers.SimpleAuthenticationHandler"/>
          29 <service name="AdminService" provider="java:MSG">
          30  <parameter name="allowedMethods" value="AdminService"/>
          31  <parameter name="enableRemoteAdmin" value="false"/>
          32  <parameter name="className" value="org.apache.axis.utils.Admin"/>
          33  <namespace>http://xml.apache.org/axis/wsdd/</namespace>
          34 </service>
          35 <service name="Version" provider="java:RPC">
          36  <parameter name="allowedMethods" value="getVersion"/>
          37  <parameter name="className" value="org.apache.axis.Version"/>
          38 </service>
          39 <service name="SOAPMonitorService" provider="java:RPC">
          40  <parameter name="allowedMethods" value="publishMessage"/>
          41  <parameter name="scope" value="Application"/>
          42  <parameter name="className" value="org.apache.axis.monitor.SOAPMonitorService"/>
          43 </service>
          44 <service name="soapObjSvc" provider="java:RPC">
          45  <parameter name="allowedRoles" value="*"/>
          46  <parameter name="allowedMethods" value="*"/>
          47  <parameter name="className" value="test.soap.service.UserService"/>
          48  <beanMapping languageSpecificType="java:test.soap.vo.User" qname="ns1:User" xmlns:ns1="urn:BeanService"/>
          49 </service>
          50 <transport name="http">
          51  <requestFlow>
          52   <handler type="URLMapper"/>
          53  </requestFlow>
          54  <parameter name="qs:list" value="org.apache.axis.transport.http.QSListHandler"/>
          55  <parameter name="qs:wsdl" value="org.apache.axis.transport.http.QSWSDLHandler"/>
          56  <parameter name="qs.list" value="org.apache.axis.transport.http.QSListHandler"/>
          57  <parameter name="qs.method" value="org.apache.axis.transport.http.QSMethodHandler"/>
          58  <parameter name="qs:method" value="org.apache.axis.transport.http.QSMethodHandler"/>
          59  <parameter name="qs.wsdl" value="org.apache.axis.transport.http.QSWSDLHandler"/>
          60 </transport>
          61 <transport name="local">
          62  <responseFlow>
          63   <handler type="LocalResponder"/>
          64  </responseFlow>
          65 </transport>
          66</deployment>
          67


          5:wsdl
           1  <?xml version="1.0" encoding="UTF-8" ?> 
           2<wsdl:definitions targetNamespace="http://localhost:8080/axis/services/soapObjSvc" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="http://localhost:8080/axis/services/soapObjSvc" xmlns:intf="http://localhost:8080/axis/services/soapObjSvc" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns1="urn:BeanService" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
           3<!-- 
           4WSDL created by Apache Axis version: 1.3
           5Built on Oct 05, 2005 (05:23:37 EDT)
           6
           7  --> 
           8<wsdl:types>
           9<schema targetNamespace="urn:BeanService" xmlns="http://www.w3.org/2001/XMLSchema">
          10  <import namespace="http://schemas.xmlsoap.org/soap/encoding/" /> 
          11<complexType name="User">
          12<sequence>
          13  <element name="name" nillable="true" type="soapenc:string" /> 
          14  <element name="password" nillable="true" type="soapenc:string" /> 
          15  </sequence>
          16  </complexType>
          17  </schema>
          18  </wsdl:types>
          19<wsdl:message name="getUserResponse">
          20  <wsdl:part name="getUserReturn" type="soapenc:string" /> 
          21  </wsdl:message>
          22<wsdl:message name="getUserResponse2">
          23  <wsdl:part name="getUserReturn" type="soapenc:string" /> 
          24  </wsdl:message>
          25<wsdl:message name="getUserRequest2">
          26  <wsdl:part name="u" type="tns1:User" /> 
          27  </wsdl:message>
          28<wsdl:message name="getUserResponse1">
          29  <wsdl:part name="getUserReturn" type="soapenc:string" /> 
          30  </wsdl:message>
          31  <wsdl:message name="getUserRequest" /> 
          32<wsdl:message name="getUserRequest1">
          33  <wsdl:part name="i" type="soapenc:string" /> 
          34  </wsdl:message>
          35<wsdl:portType name="UserService">
          36<wsdl:operation name="getUser">
          37  <wsdl:input message="impl:getUserRequest" name="getUserRequest" /> 
          38  <wsdl:output message="impl:getUserResponse" name="getUserResponse" /> 
          39  </wsdl:operation>
          40<wsdl:operation name="getUser" parameterOrder="i">
          41  <wsdl:input message="impl:getUserRequest1" name="getUserRequest1" /> 
          42  <wsdl:output message="impl:getUserResponse1" name="getUserResponse1" /> 
          43  </wsdl:operation>
          44<wsdl:operation name="getUser" parameterOrder="u">
          45  <wsdl:input message="impl:getUserRequest2" name="getUserRequest2" /> 
          46  <wsdl:output message="impl:getUserResponse2" name="getUserResponse2" /> 
          47  </wsdl:operation>
          48  </wsdl:portType>
          49<wsdl:binding name="soapObjSvcSoapBinding" type="impl:UserService">
          50  <wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http" /> 
          51<wsdl:operation name="getUser">
          52  <wsdlsoap:operation soapAction="" /> 
          53<wsdl:input name="getUserRequest">
          54  <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://service.soap.test" use="encoded" /> 
          55  </wsdl:input>
          56<wsdl:output name="getUserResponse">
          57  <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://localhost:8080/axis/services/soapObjSvc" use="encoded" /> 
          58  </wsdl:output>
          59  </wsdl:operation>
          60<wsdl:operation name="getUser">
          61  <wsdlsoap:operation soapAction="" /> 
          62<wsdl:input name="getUserRequest1">
          63  <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://service.soap.test" use="encoded" /> 
          64  </wsdl:input>
          65<wsdl:output name="getUserResponse1">
          66  <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://localhost:8080/axis/services/soapObjSvc" use="encoded" /> 
          67  </wsdl:output>
          68  </wsdl:operation>
          69<wsdl:operation name="getUser">
          70  <wsdlsoap:operation soapAction="" /> 
          71<wsdl:input name="getUserRequest2">
          72  <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://service.soap.test" use="encoded" /> 
          73  </wsdl:input>
          74<wsdl:output name="getUserResponse2">
          75  <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://localhost:8080/axis/services/soapObjSvc" use="encoded" /> 
          76  </wsdl:output>
          77  </wsdl:operation>
          78  </wsdl:binding>
          79<wsdl:service name="UserServiceService">
          80<wsdl:port binding="impl:soapObjSvcSoapBinding" name="soapObjSvc">
          81  <wsdlsoap:address location="http://localhost:8080/axis/services/soapObjSvc" /> 
          82  </wsdl:port>
          83  </wsdl:service>
          84  </wsdl:definitions>


          <?xml version="1.0" encoding="utf-8"?>
          <soapenv:Envelope xmlns:soapenv="<soapenv:Body>
          <ns1:getUserByU soapenv:encodingStyle="
          </ns1:getUserByU>
          <multiRef id="id0" soapenc:root="0" soapenv:encodingStyle="
          <name xsi:type="soapenc:string">1111111111</name>
          <password xsi:type="soapenc:string">22222222222</password>
          </multiRef>
          </soapenv:Body>
          </soapenv:Envelope>

          <?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope xmlns:soapenv="
          soapenv:encodingStyle="//  call.setReturnType(qn,java.lang.String.class);
          下面這2句也會有些用處.
          以上例子在WEBLOGIC和TOMCAT上都測試過了,沒有什么問題

          主站蜘蛛池模板: 陇西县| 桑植县| 乌兰察布市| 原阳县| 金山区| 万载县| 玉林市| 乡城县| 衡南县| 景德镇市| 石首市| 崇阳县| 济阳县| 镇宁| 奉节县| 西乌珠穆沁旗| 邯郸县| 大荔县| 阜新市| 水富县| 枣强县| 平利县| 屏东县| 盐城市| 班玛县| 武乡县| 伊春市| 郑州市| 日喀则市| 疏勒县| 沛县| 乾安县| 吴江市| 阿拉善盟| 鄂伦春自治旗| 邓州市| 和龙市| 朝阳区| 昭平县| 固镇县| 阳原县|