Is it possible for an interceptor to read query parameters and set header parameters, and have that happen before CXF maps the request to a controller? If so, then I could do this entirely within an interceptor, without changing the controller.
On a side note, is it possible to define two jaxrs:server elements in my Spring context, with a different root path, different interceptors, but the same controller beans? If I wanted this interceptor to only be used for JSONP calls, I could have them use a different root path, and the regular path wouldn't have to go through the interceptor. From: Sergey Beryozkin [mailto:[email protected]] Sent: Friday, April 08, 2011 3:44 AM To: KARR, DAVID (ATTSI) Cc: [email protected] Subject: Re: Handling "Accept" and "Accept-Language" in query parameters Hi David I think I have to apply the JSONP patch that we have asap :-), and catch up a bit with the way JSONP works. I'm still not sure I follow, basically, looks like you'd like to have some utility code available that can say take the value of Accept header and return a sorted list, yes ? If no then please post an example with some pseudo code showing what are the actual expectations Cheers, Sergey On Thu, Apr 7, 2011 at 11:27 PM, KARR, DAVID (ATTSI) <[email protected]<mailto:[email protected]>> wrote: Perhaps I wasn't clear. The app currently checks for certain header parameters, along with some query parameters. In order to be fully usable from JSONP script tags, I'll have to get it to work by using query parameters for what I'm currently using header parameters for. As to a format of the query parameters, that doesn't particularly matter. If it's more workable to have a bunch of former header parameters embedded into a single query parameter somehow, I suppose that could work, if there was some reason that was more convenient than individual query parameters. From: Sergey Beryozkin [mailto:[email protected]<mailto:[email protected]>] Sent: Thursday, April 07, 2011 2:57 PM To: [email protected]<mailto:[email protected]> Cc: KARR, DAVID (ATTSI) Subject: Re: Handling "Accept" and "Accept-Language" in query parameters Hi Can you explain a bit more how it works. Do you have individual query parameters representing individual HTTP headers in this case ? Can you post a simple example ? Cheers, Sergey On Thu, Apr 7, 2011 at 10:45 PM, KARR, DAVID (ATTSI) <[email protected]<mailto:[email protected]>> wrote: My CXF JAX-RS app currently looks at a couple of "standard" HTTP headers, being "Accept" and "Accept-Language". It also uses a custom HTTP header. It's come to my attention that we need to examine whether we can support being called from a "script" tag, to support JSONP callbacks. This will not allow changing HTTP headers. I can easily enough change my code to check for my custom header as a query parameter instead of an HTTP header, but the situation isn't as simple for "Accept" and "Accept-Language", which are processed implicitly by CXF. Presently handling of "Accept" is done without any effort on my part, except for perhaps the "@Produces" annotation. Handling of "Accept-Language" is done with almost as little effort, requiring me to call the "HttpHeaders.getAcceptableLanguages()" function. What are some reasonable strategies for getting this information (and using it, more importantly) from request parameters instead?
