手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>程序设计>Java技术>列表

AXIS 传输自定义对象

来源:互联网 作者:west263.com 时间:2008-02-23
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!

服务端:

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数据库中文显示问题终极解决办法!

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!