hi,
thank you for the feedback - it seems as if i finally got it working :
1. i overwrite Service Endpoint for the Single Request with the Proxy URL :
client.getRequestContext().put(Message.ENDPOINT_ADDRESS,
"https:/some-weird-https-proxy.com") ;
-> this assures, request is delivered with https to proxy
2. i modify Http Header variable in Interceptor on the right phase :
-> Phase WRITE seems to be the right position for
Map<String, List<String>> requestHeaders = new HashMap<String, List<String>>();
requestHeaders.put("Host",
Arrays.asList("https://some-usual-soap-endpoint.com"));
message.put(Message.PROTOCOL_HEADERS, requestHeaders);
3. finally i can see within debug logs :
DEBUG org.apache.cxf.transport.http.Headers - Host:
https://some-usual-soap-endpoint.com
ID: 1
Address: https:/some-weird-https-proxy.com
Encoding: UTF-8
Content-Type: text/xml
Headers: {Host=[https://some-usual-soap-endpoint.com],
Payload: <soap:Envelope > SOME STRANGE SOAP STUFF</soap:Envelope>
kind regards
O
Am 24.07.2014 um 22:56 schrieb Christian Schneider <[email protected]>:
> I would propose to create a second service client for the service that uses
> the https address.
>
> Then you can use the http client for most operations and the https one for
> your one request. If you need to hide that you can
> create a small java class that implements the service interface and delegates
> to the correct one of the two proxies depending on the called operation.
>
> That should be a lot easier then making CXF do the magic.
>
> Christian
>
>
> On 23.07.2014 21:57, Oliver Becherer wrote:
>> hi all,
>>
>> i'm just stuck with a problem using cxf :
>>
>> i implemented a soap client to a webservice using cxf 2.6.1 and its working
>> fine... now i have the challenge of sending one single service operation
>> to the usual endpoint but over a proxy server that only accepts https.
>>
>> so these are the base facts :
>>
>> Service Endpoint : https://some-usual-soap-endpoint.com
>>
>> Proxy Server : https://some-weird-https-proxy.com
>> Proxy Port : 7777
>>
>> This is my approach :
>>
>> HTTPClientPolicy policy = new HTTPClientPolicy();
>> policy.setProxyServer("some-weird-https-proxy.com");
>> policy.setProxyServerPort(7777);
>>
>> Client client = ClientProxy.getClient(awspt);
>> HTTPConduit http = (HTTPConduit) client.getConduit();
>> http.setClient(policy);
>>
>>
>> so far so good, but the requests are reaching the proxy not using https, but
>> http and the proxy is not accepting this.
>>
>> can you help me, how to configure the Proxy Server within my Client, so
>> Request is sent using https?
>>
>> any help is highly appreciated!
>>
>> kind regards
>>
>> O
>
>
> --
> Christian Schneider
> http://www.liquid-reality.de
>
> Open Source Architect
> http://www.talend.com
>