axis客户端 调用CFX框架服务端


/**
* 连接 webservice 服务器,调用指定方法。
*
* @param namespace
* @param endpoint
* @param function
* 接口方法名称
* @return boolean 是否连接成功
*/
private boolean connect(String namespace, String endpoint, String function,
List<String> paramNames) {
try {
// 连接WS服务器
call = (Call) service.createCall();
// 设置调用方法
call.setOperationName(new QName(namespace, function));
/**************************调用CFX框架时,这些代码是必须的****************************************/

for (String param : paramNames) {
call.addParameter(param,
org.apache.axis.encoding.XMLType.XSD_STRING,
javax.xml.rpc.ParameterMode.IN);// 操作的参数
call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);// 设置返回类型
}
call.setUseSOAPAction(true);
/**************************调用CFX框架时,这些代码是必须的****************************************/
// call.setOperationName(function);
// 设置服务器地址
call.setTargetEndpointAddress(endpoint);
} catch (ServiceException ex) {
LOG.error("连接服务器(" + endpoint + ")失败", ex);
return false;
}
return true;
}


....

//连接服务端
this.connect(Config.server_namespace, Config.server_endpoint,
Commons.SERVICE_FUNC_NAME_GET, Arrays
.asList(new String[] { "arg0" }));//若对端服务端代码没有声明参数的名称,则默认名称是arg0,arg1...


注意上面的"调用CFX框架时,这些代码是必须的"代码块,因为同是Axis框架的客户端和服务端在通信时,很多默认的设置是相同的,所以无需对Call对象做多余的设置,而在调用.NET或CFX等框架时,就需要根据服务端框架的设置做相应的设置。

其实,既然SOAP协议是与技术框架无关的,那么可以直接通过wsdl就可以知道接口方法的参数返回值等等信息,然后定制相应的客户端。但是我的水平还有限,对SOAP的理解还不够深刻,希望有这方面经验的朋友指点一二。

如果上面的阐述不够清楚可以参考另一篇博文:[url]http://t22011787.iteye.com/blog/1144662[/url]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值