`
wls981
  • 浏览: 135896 次
  • 性别: Icon_minigender_1
  • 来自: 桂林
社区版块
存档分类
最新评论

axis传递自定义类

    博客分类:
  • java
 
阅读更多

在axis1.4下开发一个webservice,要传递自定义类,需要声明如果序列化这个类,配置如下:

 

在server-config.wsdd中:

<service name="session" provider="java:RPC">
  <parameter name="allowedMethods" value="*"/>
  <parameter name="className" value="com.bxxk.yzscx.services.SessionService"/>
  <beanMapping qname="ns:SessionData" xmlns:ns="urn:SessionData" languageSpecificType="java:com.bxxk.yzscx.vo.SessionData"/>
  <beanMapping qname="ns:YdjwZxyh" xmlns:ns="urn:YdjwZxyh" languageSpecificType="java:com.bxxk.yzscx.common.entity.YdjwZxyh"/>
 </service>

 

在调用端:

String wsdlUrl = url + "?wsdl";
String nameSpaceUri = url;
Service service = new Service();
Call call = null;
call = (Call) service.createCall();
QName qn = new QName("urn:SessionData", "SessionData");
call.registerTypeMapping(SessionData.class, qn,
		new BeanSerializerFactory(SessionData.class, qn),
		new BeanDeserializerFactory(SessionData.class, qn));
qn = new QName("urn:YdjwZxyh", "YdjwZxyh");
call.registerTypeMapping(YdjwZxyh.class, qn,
		new BeanSerializerFactory(YdjwZxyh.class, qn),
		new BeanDeserializerFactory(YdjwZxyh.class, qn));

call.setOperationName(new QName(nameSpaceUri, "getSessionList"));
call.setTargetEndpointAddress(new java.net.URL(wsdlUrl));
rs = (String) call.invoke((Object[]) null);

 

其他都一样,记录一下。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics