Hi Sergey Yes, that works okay, setting a proxy server on *.http-conduit It would be really nice to be able to set this up on a per WebClient endpoint/conduit basis though
Thanks :) Paul -----Original Message----- From: Sergey Beryozkin [mailto:[email protected]] Sent: 27 August 2009 12:29 To: Paul Wilton; [email protected] Cc: [email protected] Subject: Re: using jax-rs WebClient through proxy server Hi Paul Sorry for a delay, I was actually about to advise you to use the in-code configuration :-). Will it work if you do the (proxy-related) conduit configuration similar to the way it's done here : http://svn.apache.org/repos/asf/cxf/trunk/systests/src/test/java/org/apa che/cxf/systest/jaxrs/security/jaxrs-https.xml ? I've found the similar question here : http://www.nabble.com/Configuring-http-proxy-port-for-http-conduit-in-Sp ring-application-context-td20399620.html So you can probably do <http:conduit name="*.http-conduit"> <http:client ProxyServer="my.proxy.domain" ProxyServerPort="80"/> </http:conduit> This will apply to all the clients though - so I'm not sure yet how to identify an http:conduit instance with a single client only - I may need to fix something there. I'll look into it, hopefully you can make it workingby using the above configuration as well...- let me know please if it will work cheers, Sergey ----- Original Message ----- From: "Paul Wilton" <[email protected]> To: <[email protected]> Cc: <[email protected]> Sent: Thursday, August 27, 2009 12:11 PM Subject: RE: using jax-rs WebClient through proxy server Hi Sergey Regading my original question below, I have now successfully set proxy server details programmatically by getting hold of the HTTPConduit of the WebClient at runtime as follows: HTTPConduit conduit = (HTTPConduit)WebClient.getConfig(webClient).getConduit(); HTTPClientPolicy policy = conduit.getClient(); policy.setProxyServer("my.proxy.domain"); policy.setProxyServerPort(80); However, this is not ideal - I really want to set conduit in my Spring config I can see in the docs how to associate a spring configured HTTPSConduit with a JAX-WS client, But how do I associate a HTTPConduit with a JAX-RS client in spring? Where my WebClient is configured as a bean in spring as follows: <bean id="myWebClient" class="org.apache.cxf.jaxrs.client.WebClient" factory-method="create"> <constructor-arg type="java.lang.String" value="${my.restful.service.url}" /> <constructor-arg ref="myWebClientProviders" /> </bean> I don't see any obvious way of associating a HTTPConduit with the endpoint Thanks Paul -----Original Message----- From: Paul Wilton [mailto:[email protected]] Sent: 27 August 2009 11:26 To: [email protected] Subject: using jax-rs WebClient through proxy server Hi I am using org.apache.cxf.jaxrs.client.WebClient to access a REST service that sits behind a squid proxy server. The rest client WebClient is running on Tomcat. I have set JAVA_OPTS in the catalina startup script with my proxy server settings: -Dhttp.proxyHost=my.proxy.domain -Dhttp.proxyPort=80 -Dhttp.nonProxyHosts=localhost,127.0.0.1 But the requests do not make it past the proxy server, and I just get socket connection timeouts Just to clarify, My WebClient works fine when not behind a proxy server, and I can also access the restful service using curl -x on the command line giving the same proxy details. My questions: Does WebClient handle proxy servers ok ? Is passing the proxy details to the JVM using java opts a valid technique with WebClient ? Is there some specific way of configuring WebClient to use proxy servers ? Thanks for any help Paul This e-mail (and any attachments) is confidential and may contain personal views which are not the views of the BBC unless specifically stated. If you have received it in error, please delete it from your system. Do not use, copy or disclose the information in any way nor act in reliance on it and notify the sender immediately. Please note that the BBC monitors e-mails sent or received. Further communication will signify your consent to this This e-mail has been sent by one of the following wholly-owned subsidiaries of the BBC: BBC Worldwide Limited, Registration Number: 1420028 England, Registered Address: BBC Media Centre, 201 Wood Lane, London, W12 7TQ BBC World News Limited, Registration Number: 04514407 England, Registered Address: BBC Media Centre, 201 Wood Lane, London, W12 7TQ BBC World Distribution Limited, Registration Number: 04514408, Registered Address: BBC Media Centre, 201 Wood Lane, London, W12 7TQ
