Sergey, I changed the phase to UNMARSHAL. But it seems to build and call the chain *after* the resource method is invoked. (I need to created the mock req/res before the resource method is called).
10:01:29.301 [default-workqueue-2] DEBUG o.a.cxf.phase.PhaseInterceptorChain - Adding interceptor org.apache.cxf.ws.policy.PolicyInInterceptor@87a40424 to phase receive 10:01:29.301 [default-workqueue-2] DEBUG o.a.cxf.phase.PhaseInterceptorChain - Adding interceptor org.apache.cxf.jaxrs.client.WebClient$ClientAsyncResponseInterceptor@bb171679 to phase unmarshal 10:01:29.301 [default-workqueue-2] DEBUG o.a.cxf.phase.PhaseInterceptorChain - Adding interceptor CXF_Test.cxf_test.FakeHttpRequestResponseInjectingInterceptor@64e43406 to phase unmarshal 10:01:29.303 [default-workqueue-2] DEBUG o.a.cxf.phase.PhaseInterceptorChain - Adding interceptor org.apache.cxf.jaxrs.client.spec.ClientResponseFilterInterceptor@6eec47c4 to phase pre-protocol-frontend 10:01:29.303 [default-workqueue-2] DEBUG o.a.cxf.phase.PhaseInterceptorChain - Chain org.apache.cxf.phase.PhaseInterceptorChain@7329779f was created. Current flow: receive [PolicyInInterceptor] pre-protocol-frontend [ClientResponseFilterInterceptor] unmarshal [ClientAsyncResponseInterceptor, FakeHttpRequestResponseInjectingInterceptor] 10:01:29.303 [default-workqueue-2] DEBUG o.a.cxf.phase.PhaseInterceptorChain - Invoking handleMessage on interceptor org.apache.cxf.ws.policy.PolicyInInterceptor@87a40424 10:01:29.304 [default-workqueue-2] DEBUG o.a.cxf.phase.PhaseInterceptorChain - Invoking handleMessage on interceptor org.apache.cxf.jaxrs.client.spec.ClientResponseFilterInterceptor@6eec47c4 10:01:29.304 [default-workqueue-2] DEBUG o.a.cxf.phase.PhaseInterceptorChain - Invoking handleMessage on interceptor org.apache.cxf.jaxrs.client.WebClient$ClientAsyncResponseInterceptor@bb171679 10:01:29.304 [default-workqueue-2] DEBUG o.a.cxf.phase.PhaseInterceptorChain - Invoking handleMessage on interceptor CXF_Test.cxf_test.FakeHttpRequestResponseInjectingInterceptor@64e43406 10:01:29.304 [default-workqueue-2] DEBUG C.c.FakeHttpRequestResponseInjectingInterceptor - *************** Called handleMessage()... I assume this interceptor is on the client-side's InInterceptor chain, maybe I'm wrong... On Wed, Jul 15, 2015 at 3:35 AM, Sergey Beryozkin <[email protected]> wrote: > > On 15/07/15 03:20, Chris Wolf wrote: >> >> For legacy reasons, all of the resource methods in the project I'm >> working on have a signature similar to: >> >> @GET >> @Path("/book") >> public Response getBook(@Context HttpServletRequest request, >> @Context HttpServletResponse response); >> >> >> When I change to local transport (to save runtime setup of Jetty in >> unit tests), these parameters are null, which makes sense since the >> protocol is not HTTP. I tried implementing a custom Interceptor to >> replace Message content with a two element list containing mock >> HttpServletRequest and HttpServletResponse , but I couldn't find the >> correct phase. > > > JAXRSInInterceptor runs at the UNMARSHAL phase, so you can register an > interceptor at UMMARSHAL or earlier, and set the mocks as message > properties, example: > message.put("HTTP.REQUEST", request); > message.put("HTTP.RESPONSE", response); > >> >> (the mocks are from mockrunner-servlet) >> >> Now I'm thinking it might be easier with a custom invoker, as >> mentioned at the bottom of this page: >> >> http://cxf.apache.org/docs/jax-rs-filters.html >> >> I downloaded the source tarball and found the source at: >> >> >> https://git-wip-us.apache.org/repos/asf?p=cxf.git;a=blob;f=systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/CustomJAXRSInvoker.java;h=cce0f048d1c9f1b12925725b9def7730a4aa01ff;hb=HEAD >> >> ...but now I can't find any other java module that would show how to >> configure this custom invoker. Apologies if I missed it online, but >> could find nothing. >> > This documentation shows how to set it up from Spring only: > http://cxf.apache.org/docs/jax-rs-filters.html#JAX-RSFilters-Custominvokers > > or do from the code: > myServerfactoryBean.setInvoker(myInvoker) > > Cheers, Sergey > >> Thanks, >> >> Chris >> > > > -- > Sergey Beryozkin > > Talend Community Coders > http://coders.talend.com/ > > Blog: http://sberyozkin.blogspot.com
