AXIS 传输自定义对象

2008-02-23 09:34:19来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

服务端:

package wsdd;
import axisserver.Fun;

public class TestWSDD {

private Fun f = new Fun();//自定义的对象


public Fun getType(String type){//要调用的方法
this.f.setName("fff");
return f;//返回自定义对象
}
}

deploy.wsdd:

<deployment XMLns="http://xml.apache.org/axis/wsdd/" xmlns:Java="http://xml.apache.org/axis/wsdd/providers/java">
<service name="TestWSDD" provider="java:RPC">
<parameter name="className" value="wsdd.TestWSDD"/>
<parameter name="allowedMethods" value="*"/>
<beanMapping languageSpecificType="java:axisserver.Fun"
qname="ns7:TestWSDD" xmlns:ns7="TestWSDD"/> //注意此处

</service>
</deployment>

客户端:

package axisclientwsdd;
import javax.xml.namespace.QName;

import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.apache.axis.encoding.ser.BeanDeserializerFactory;
import org.apache.axis.encoding.ser.BeanSerializerFactory;

import axisserver.Fun;

public class AXISCLientWSDD {

public static void main(String[] args) {

try {

String endpoint = "http://localhost/AXISExam/services/TestWSDD";//与WSDL唯一的不同;指明服务所在位置

Service service = new Service();//创建一个Service实例
call = (Call) service.createCall();
call.setTargetEndpointAddress(new java.net.URL(endpoint));//为Call设置服务的位置
QName qn = new QName("TestWSDD","TestWSDD");//与WSDD设置的要一致!
call.reGISterTypeMapping(Fun.class,qn, new BeanSerializerFactory(Fun.class, qn), new BeanDeserializerFactory(Fun.class, qn));
call.setOperationName(new QName("urn:TestWSDD","getType"));

Fun f2 = (Fun)call.invoke(new Object[]{});
System.out.println(f2.getName());

}

catch (Exception ex) {

System.err.println(ex.toString());

}

}
}

上一篇: Java学习笔记(四)
下一篇: jsp连接sybase数据库中文显示问题终极解决办法!

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:用StringBuffer优化字符串性能

下一篇:Java5.0,越来越死板的java