Java 使用ApacheCXF动态创建web服务客户端(修复未检查到的任何操作异常),通过身份验证调用操作
所以我想找到一种通过身份验证动态调用web服务操作的方法Java 使用ApacheCXF动态创建web服务客户端(修复未检查到的任何操作异常),通过身份验证调用操作,java,web-services,cxf,Java,Web Services,Cxf,所以我想找到一种通过身份验证动态调用web服务操作的方法 DynamicClientFactory dcf = DynamicClientFactory.newInstance(); Client client = dcf.createClient("WSDL Location"); AuthorizationPolicy authorization = ((HTTPConduit) client.getConduit()).getAuthorization();
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]);
这就是我发现的。下面是一个示例,介绍如何使用apache cxf创建动态web服务客户端,避免“找不到名称的操作”未选中异常,并使用身份验证
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修复了异常
享受。如果您仅为动态客户端使用cxf,这里是您需要的JAR列表:commons-logging-1.1、cxf-2.7.4、cxf-rt-ws-policy-2.7.4、HttpSyncClient-4.0-beta3、httpclient-4.2.1、httpcore-4.2.2、httpcore-nio-4.2.2、neethi-3.0.2、stax2-api-3.1.1.1、woodstox-core-asl-4.2.0、wsdl4j-1.6.3、Schema-XML2