1

所以我想找到一种通过身份验证动态调用 Web 服务操作的方法。

这就是我发现的。

4

1 回答 1

2

这是一个示例,说明如何使用 apache cxf 创建动态 Web 服务客户端,避免“no operation found for name”未经检查的异常并使用身份验证。

    DynamicClientFactory dcf = DynamicClientFactory.newInstance();
    Client client = dcf.createClient("WSDL Location");

    AuthorizationPolicy authorization = ((HTTPConduit) client.getConduit()).getAuthorization();

    authorization.setUserName(
            "user name"
    );

    authorization.setPassword(
            "password"
    );

    Object[] res = client.invoke(new QName("http://targetNameSpace/", "operationName"), params...);
    System.out.println("Echo response: " + res[0]);

具有名称空间的新 QName 修复了异常。

享受。

于 2013-05-16T08:42:29.433 回答