CXF在动态调用WebService的时候,本地环境在使用bindingInfo.getOperations()获取服务方法的时候能够获取所有的方法,有33个方法;但是代码发布到服务端后,bindingInfo.getOperations()该方法获取到的服务方法不全,存在个别方法无法获取的情况,只能获取到30个方法,命名空间什么的都已经排查了,没有问题,有遇见过类似问题的大佬吗?代码如下:
JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance();
Client mesclient = dcf.createClient("xxxx");
Object[] res = null;
String operation = "xxxxxxxxxx";
try {
Endpoint endpoint = mesclient.getEndpoint();
QName opName = new QName(endpoint.getService().getName().getNamespaceURI(), operation);
BindingInfo bindingInfo = endpoint.getEndpointInfo().getBinding();
if (bindingInfo.getOperation(opName) == null) {
for (BindingOperationInfo operationInfo : bindingInfo.getOperations()) {
if (operation.equals(operationInfo.getName().getLocalPart())) {
opName = operationInfo.getName();
break;
}
}
}
System.out.println("获取方法集合:" + bindingInfo.getOperations().toString());
System.out.println("方法对象:" + bindingInfo.getOperation(opName));
res = mesclient.invoke(opName, param);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
![](https://profile-avatar.csdnimg.cn/c04df10dd12c42ec9de86202a65505bd_m0_46606683.jpg!4)
CXF获取服务方法存在缺失的情况
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- m0_54204465 2023-01-11 18:07关注
这看起来像是一个环境问题。具体原因可能需要更多的代码和上下文来确定。可能的原因包括:
服务端的Web服务发布的WSDL文件中包含的服务方法与本地环境不同。
代码发布到服务端后,存在权限限制导致部分方法无法访问。
代码发布到服务端后,存在环境配置问题导致部分方法无法正常调用。
建议:检查服务端的Web服务发布的WSDL文件,确保与本地环境的WSDL文件相同。
检查代码发布到服务端后的权限限制,确保有足够的权限来访问所有的服务方法。
在服务端的环境中调试代码,确保环境配置正确。解决 无用评论 打赏 举报
悬赏问题
- ¥20 UE5.2插件Remote Control Web API安装失败问题
- ¥15 c#调用c++方法提示错误 无法封送处理泛型类型
- ¥15 MATLAB报错问题
- ¥100 多线程+连接池+代理 运行一段时间线程阻塞
- ¥15 关于#单片机#的问题:求一个使用C语言将重力加速度gx,gy,gz积分获取到速度的代码(相关搜索:c语言)
- ¥15 matlab导致电脑重启问题
- ¥15 Android studio打开dex
- ¥20 为何R语言love图显示的分类变量点与smd值不一致
- ¥15 asp.net实验:数据库写入不成功
- ¥15 C#视频播放器的原码,有的发一