java调用.netwebservice的方法,返回类型为XmlDocument

王朝学院·作者佚名  2009-11-14
窄屏简体版  字體: |||超大  

在做项目集成时,java项目一般会调用第三方.net系统的webservice,会遇到返回类型是.net的XmlDocument类型。因此我做了一下测试,代码如下:(测试环境Eclipse,jsdk1.4.2版本)

package test;

import javax.xml.namespace.QName;

import javax.xml.rpc.ParameterMode;

import org.apache.axis.client.Call;

import org.apache.axis.client.Service;

import org.apache.axis.encoding.XMLType;

public class Test {

/**

* @param args

*/

public static void main(String[] args) throws Exception {

//测试环境为Eclipse3.1 ,1.4.2 j2sdk,测试通过;在1.5jsdk可能有问题;

String url="http://192.168.200.170/centralism/webservice/UserService2.asmx";

String targetNameSpace="http://tempuri.org/";

String targetSoapActionUri="http://tempuri.org/getUserInfo";

//创建服务对象

Service sv = new Service();

Call call = (Call) sv.createCall();

call.setTargetEndpointAddress(url);

call.setUseSOAPAction(true);

call.setSOAPActionURI(targetSoapActionUri);

//返回值是Element时需要添加的代码 开始

call.setOperationName(new javax.xml.namespace.QName(targetNameSpace,

"getUserInfo"));

call.setReturnQName(new javax.xml.namespace.QName(

"http://xml.apache.org/xml-soap", "Element"));

call.setReturnClass(org.w3c.dom.Element.class);

call.addParameter(new QName(targetNameSpace, "ldapStr"),

XMLType.XSD_STRING, ParameterMode.IN);

call.addParameter(new QName(targetNameSpace, "attrNames"),

XMLType.XSD_STRING, ParameterMode.IN);

//返回值是Element时需要添加的代码 结束

Object[] wsargs = new Object[2];

wsargs[0] = "sys";

wsargs[1] = "";

Object o = call.invoke(wsargs);

//返回

System.out

.println("o.getClass().getName() : " + o.getClass().getName());

System.out.println(o);

}

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航