java如何调用webservice接口
webservice接口文档如下
queryUserAmount方法
参数名称 参数类型 参数说明
userName String 用户名
passWord String 密码
返回值说明:
<?xml version="1.0" encoding="utf-8" ?>
<double xmlns="http://www.test.com/">10</double>
说明:接口返回一个double类型值。
此处的值表示余额条数。如 3 (余额 3 条)。
本处返回数值 10 。意思是还有余额 10 条短信。
我的java程序如下:
public static void main(String[] args) {
String url = "http://www.test.com/textServices/textService.asmx?wsdl";
Service service = new Service();
try {
Call call = (Call) service.createCall();
call.setTargetEndpointAddress(url);
call.setOperationName("GetBalance");
call.addParameter("userName",
org.apache.axis.encoding.XMLType.XSD_STRING,
javax.xml.rpc.ParameterMode.IN);
call.addParameter("passWord",
org.apache.axis.encoding.XMLType.XSD_STRING,
javax.xml.rpc.ParameterMode.IN);
//注:这里的参数我一直不知道怎么写
// 方法的返回值类型
call.setReturnType(org.apache.axis.encoding.XMLType.XSD_INT);
call.setUseSOAPAction(true);
call.setSOAPActionURI("http://www.text.com/queryUserAmount");
String userName = "admin";
String uesrPassWord = "1234";
String result = (String)call.invoke(new Object[]{userName,uesrPassWord});
//给方法传递参数,并且调用方法
System.out.println("result is "+result);
} catch (ServiceException e) {
e.printStackTrace();
} catch (RemoteException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
这是我的程序,请问正确的程序应该怎么写呢。我不会用java调用webservice。谢谢了。。
------解决方案--------------------
调用webservice也很简单
C# code
JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
factory.setAddress("http://www.test.com/textServices/textService.asmx?wsdl");
factory.setServiceClass(IUnionServer.class);
return (IUnionServer) factory.create();