Hi,

WSDL query is processed using interceptor chain in CXF. The main job is done in 
WSDLGetInterceptor.java.
You can try to do the following:
1) put your own interceptor before WSDLGetInterceptor;
2) check if it is WSDL get request (you can reuse WSDLGetInterceptor 
.isRecognizedQuery())
3) if check (2) is true, replace Message.REQUEST_URL message property to URL of 
your target service.

Not sure is there the easier way to do it.

Regards,
Andrei.

-----Original Message-----
From: [email protected] [mailto:[email protected]] On Behalf Of rouble
Sent: Donnerstag, 25. Oktober 2012 05:51
To: [email protected]
Subject: Re: CXF Proxy message in Interceptor

One question about using a @WebServiceProvider and Provider<Source> interface 
to proxy a web service like you suggested. Please read inline.

> The easiest way to handle this with "Pure" cxf would be to write an endpoint 
> using a Provider interface.   Something like:
>
> MyService extends Provider<Source> {
>
>     public Source invoke(Source s) {
>           ...  use a Dispatch<Source> client to send the Source to a new 
> endpoint ...
>     }
> }

[rouble]
I notice when someone tries to access the WSDL of this proxy web service, it 
does not proxy the wsdl request. Instead it just displays the WSDL of the proxy 
web service with the invoke request and response. Any ideas on how to actually 
proxy the wsdl request - so that the client sees the wsdl from the remote end 
point?

I was looking at implementing a QueryHandler to handle "?wsdl"
queries, but I get lost as to how to use a dispatch client to send a wsdl GET 
request. Any tips - or any other ideas?

tia,
rouble

> --
> Daniel Kulp
> [email protected] - http://dankulp.com/blog Talend Community Coder - 
> http://coders.talend.com
>

Reply via email to