您的位置:首页 > 编程语言 > Java开发

java webservice调用c#接口并传多个参数

2011-11-21 12:11 567 查看
痛苦的测试终于通过了,写下了纪念下。

public class axis {

public static void main(String[] args){

String aa;

String bb;

String cc;

try {

String endpoint="http://www.tangs.com/";

Service service = new Service();

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

call.setTargetEndpointAddress(new java.net.URL(endpoint));

//call.setOperationName("GetJobList");

call.setOperationName(new QName("http://www.tangs.com/","Add")); //

// 设置要调用的方法 注意org.apache.axis.encoding.XMLType.XSD_STRING 类型要和对方接口文档类型一致

call.addParameter(new QName("http://www.tangs.com/", "aa"), org.apache.axis.encoding.XMLType.XSD_STRING, javax.xml.rpc.ParameterMode.IN);

call.addParameter(new QName("http://www.tangs.com/", "bb"), org.apache.axis.encoding.XMLType.XSD_INT, javax.xml.rpc.ParameterMode.IN);

call.addParameter(new QName("http://www.tangs.com/", "cc"), org.apache.axis.encoding.XMLType.XSD_DATETIME, javax.xml.rpc.ParameterMode.IN);

// 方法的返回值类型

call.setReturnType(org.apache.axis.encoding.XMLType.XSD_SCHEMA);

call.setUseSOAPAction(true);

call.setSOAPActionURI("http://www.tangs.com/","Add"));

Schema result = (Schema)call.invoke(new Object[]{

aa= "程序员",

bb= "传给对方的参数(对方没有必传参数可以不传)",

cc= "传给对方的参数",

});

//调用方法并传递参数

int length = result.get_any()[1].getChildNodes().item(0).getChildNodes().getLength();

for(int j= 0 ;j < length ;j ++){

System.out.println(result.get_any()[1].getChildNodes().item(0));

for (int i = 0; i < 10; i++) {

System.out.println(result.get_any()[1].getChildNodes().item(0).getChildNodes().item(0).getChildNodes().item(i).getFirstChild().getNodeValue());

}

}

} catch (Exception e) {

e.printStackTrace();

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: