最近在做java程序获取C#写的webservice接口的任务,小编最近又学会了新的技能,跟大家分享~
开始,小编从网上各种搜,站在巨人的肩膀上,最后结合几位前辈分享的文章,找到了适合自己的解决方案。
话不多少,直接上代码:
String result = null;
String service_url = "****" ;//接口发布的url地址
service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress(service_url);
QName opAddEntry=new QName("命名空间","方法名称");
call.setOperationName(opAddEntry);//WSDL里面描述的接口名称
call.addParameter(new QName("命名空间", "参数名称"), org.apache.axis.encoding.XMLType.XSD_STRING, javax.xml.rpc.ParameterMode.IN);
call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);//设置返回类型
//给方法传递参数,并且调用方法
call.setSOAPActionURI("****t"); //接口发布SOAPAction地址
//给参数传值,作为查询条件
Object[] refList=new Object[]{schoolCode};
result = (String)call.invoke(refList);
call.invoke("命名空间","接口名称",带值的参数列表);
System.out.println("result is "+result); //最后就可以输出查看结果了。
怎么样,很简单的实现吧。开始小编因为参数的传入方式写错了,导致查询出来的结果一直都是null,上面的参数传入方式是正解,希望用到的朋友,别像我一样走弯路了。