Java Apache CXF客户端代理设置
我正在尝试使用上的教程为Soap服务开发一个消费者 在“使用上下文设置连接属性”一节中,我将查看下面的代码Java Apache CXF客户端代理设置,java,apache,web-services,soap,cxf,Java,Apache,Web Services,Soap,Cxf,我正在尝试使用上的教程为Soap服务开发一个消费者 在“使用上下文设置连接属性”一节中,我将查看下面的代码 // Set request context property. java.util.Map<String, Object> requestContext = ((javax.xml.ws.BindingProvider)port).getRequestContext(); requestContext.put(ContextPropertyName, PropertyV
// Set request context property.
java.util.Map<String, Object> requestContext =
((javax.xml.ws.BindingProvider)port).getRequestContext();
requestContext.put(ContextPropertyName, PropertyValue);
// Invoke an operation.
port.SomeOperation();
//设置请求上下文属性。
java.util.Map请求上下文=
((javax.xml.ws.BindingProvider)端口);
put(ContextPropertyName,PropertyValue);
//调用一个操作。
port.SomeOperation();
有人能告诉我是否可以使用requestContext属性设置代理服务器设置以及如何设置吗?。我的代码运行在代理之后,我需要进行SOAP调用才能使用代理服务器设置。代理设置通常使用httpconductor对象进行设置
HelloService hello = new HelloService();
HelloPortType helloPort = cliente.getHelloPort();
org.apache.cxf.endpoint.Client client = ClientProxy.getClient(helloPort);
HTTPConduit http = (HTTPConduit) client.getConduit();
http.getClient().setProxyServer("proxy");
http.getClient().setProxyServerPort(8080);
http.getProxyAuthorization().setUserName("user proxy");
http.getProxyAuthorization().setPassword("password proxy");
这样做了,当运行一个简单的单元测试ping服务时,我没有得到任何错误,但是测试被卡住了,并一直在控制台上打印这些错误:1740管道“{}TransportURIResolver.http管道”的无信任决策器。假定有一个错误的信任决策。http导管:914导管“{}TransportURIResolver.http导管”已(重新)为普通http配置。http导管:为导管{}TransportURIResolver配置的378 NoTrust决策器。http导管{TransportURIResolver.http导管:为导管{}配置的391 NoAuth供应商TransportURIResolver.http导管'已配置为普通http。我认为出现问题的原因是SOAP调用最终调用的是https上的服务,而不是httpTo,以便于其他读者了解:
HttpConductor.getProxyAuthorization()
的凭据不同于HttpConductor.getAuthorization()
。第一个用于允许连接到远程服务器的(internet)代理,第二个用于远程(SOAP?)服务。