所以我想找到一种通过身份验证动态调用 Web 服务操作的方法。
这就是我发现的。
这是一个示例,说明如何使用 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 修复了异常。
享受。