刚学会走路的小猴 2023-01-11 16:51 采纳率: 50%
浏览 7

CXF获取服务方法存在缺失的情况

    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();
    }
  • 写回答

1条回答 默认 最新

  • m0_54204465 2023-01-11 18:07
    关注

    这看起来像是一个环境问题。具体原因可能需要更多的代码和上下文来确定。可能的原因包括:

    服务端的Web服务发布的WSDL文件中包含的服务方法与本地环境不同。
    代码发布到服务端后,存在权限限制导致部分方法无法访问。
    代码发布到服务端后,存在环境配置问题导致部分方法无法正常调用。
    建议:

    检查服务端的Web服务发布的WSDL文件,确保与本地环境的WSDL文件相同。
    检查代码发布到服务端后的权限限制,确保有足够的权限来访问所有的服务方法。
    在服务端的环境中调试代码,确保环境配置正确。

    评论

报告相同问题?

问题事件

  • 创建了问题 1月11日

悬赏问题

  • ¥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#视频播放器的原码,有的发一