server-config.wsdd <service name="UnitCodeCertReq" type="" provider="java:RPC" style="rpc" mce_style="rpc" use="encoded"> <parameter name="scope" value="Request"/> <parameter name="className" value="package.UnitCodeCertReq"/> <parameter name="allowedMethods" value="*"/> <namespace>http://service.blue.allen.com</namespace> <typeMapping encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" qname="ns1:UnitCodeCertResultInfo" languageSpecificType="java:package.UnitCodeCertResultInfo" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" name="UnitCodeCertResultInfo" xmlns:ns1="http://service.blue.allen.com"/> <typeMapping encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" qname="ns2:UnitCodeCertReqInfo" languageSpecificType="java:package.UnitCodeCertReqInfo" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" name="UnitCodeCertReqInfo" xmlns:ns2="http://service.blue.allen.com"/> </service> 接口中注入参数为对象、返回值也可能为对象,客户端如何编写: public class TestUnitReq{ public static void main(String args[]){ System.out.println("Start invoking...."); try { String endpoint = ""; Service service = new Service(); Call call=(Call)service.createCall(); UnitCodeCertReqInfo req = new UnitCodeCertReqInfo(); req.setUnitname("ALLEN"); UnitCodeCertResultInfo result = new UnitCodeCertResultInfo(); QName qIn = new QName("http://service.blue.allen.com", "req") ; QName qResult = new QName("http://service.blue.allen.com", "result"); call.registerTypeMapping(UnitCodeCertReqInfo.class, qIn, new org.apache.axis.encoding.ser.BeanSerializerFactory(UnitCodeCertReqInfo.class, qIn), new org.apache.axis.encoding.ser.BeanDeserializerFactory(UnitCodeCertReqInfo.class, qIn)); call.registerTypeMapping(UnitCodeCertResultInfo.class, qResult, new org.apache.axis.encoding.ser.BeanSerializerFactory(UnitCodeCertResultInfo.class, qResult), new org.apache.axis.encoding.ser.BeanDeserializerFactory(UnitCodeCertResultInfo.class, qResult)); call.setTargetEndpointAddress(new java.net.URL(endpoint) ); call.setOperationName("unitCodeSignCertReq"); call.addParameter("arg1", qIn, ParameterMode.IN); call.setReturnClass(UnitCodeCertResultInfo.class); call.setReturnType(qIn, UnitCodeCertResultInfo.class); result = (UnitCodeCertResultInfo)call.invoke(new Object[]{req}); System.out.println(result.getResult()); } catch (Exception e) { System.err.println(e.toString()); } System.out.println("Finished the invoking."); } }