Hi Andy,
  Thanks, Andy. Your solution is simple but  a good fit to my problem.

Regards,Rice

On Wed, Jan 29, 2020 at 6:46 AM Andy McCright <[email protected]>
wrote:

> I have not tested this myself, but I was wondering whether an
> ExceptionMapper<NotFoundException> might work?
>
> Something like:
>
> @Provider
> public class ForwardIfNotFoundExceptionMapper implements
> ExceptionMapper<NotFoundException> {
>
>     @Context
>     UriInfo uriInfo;
>
>     @Context
>     Request request;
>
>     @Override
>     Response toResponse(NotFoundException ex) {
>         Client c = ClientBuilder.newClient();
>         return
> c.target(uriInfo.getRequestUri()).request().method(request.getMethod())
>     }
> }
>
> You might also need to "copy" the headers from the request into the client
> request.
>
> Hope this helps,
>
> Andy
>
> On Tue, Jan 28, 2020 at 6:51 AM RobCodes <[email protected]> wrote:
>
> > Hi Rice,
> >
> > I recently figured out how to extend for a custom class as well. I think
> > you
> > will find this useful though I can't speak to actually forwarding the
> > request. I chose the annotation approach but there are other ways to do
> it.
> > Please see:
> >
> > https://cxf.apache.org/docs/interceptors.html
> > and
> > https://cxf.apache.org/docs/configuration.html
> >
> > Excerpts from the first page referenced above:
> > ----------------------
> > You can also use annotation to add the interceptors from the SEI or
> service
> > class. When CXF create the server or client, CXF will add the interceptor
> > according with the annotation.
> >
> > @org.apache.cxf.interceptor.InInterceptors (interceptors =
> > {"com.example.Test1Interceptor" })
> > @org.apache.cxf.interceptor.InFaultInterceptors (interceptors =
> > {"com.example.Test2Interceptor" })
> > @org.apache.cxf.interceptor.OutInterceptors (interceptors =
> > {"com.example.Test1Interceptor" })
> > @org.apache.cxf.interceptor.InFaultInterceptors (interceptors =
> > {"com.example.Test2Interceptor","com.example.Test3Intercetpor" })
> > @WebService(endpointInterface =
> > "org.apache.cxf.javascript.fortest.SimpleDocLitBare",
> >             targetNamespace = "uri:org.apache.cxf.javascript.fortest")
> > public class SayHiImplementation implements SayHi {
> >    public long sayHi(long arg) {
> >        return arg;
> >    }
> >    ...
> > }
> >
> > ----------------
> >
> > Adding MyInterceptor to the bus:
> >
> > <beans xmlns="http://www.springframework.org/schema/beans";
> >        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
> >        xmlns:cxf="http://cxf.apache.org/core";
> >        xsi:schemaLocation="
> > http://www.springframework.org/schema/beans
> > http://www.springframework.org/schema/beans/spring-beans.xsd
> > http://cxf.apache.org/core http://cxf.apache.org/schemas/core.xsd";>
> >
> >     <bean id="MyInterceptor" class="demo.interceptor.MyInterceptor"/>
> >
> >
> >
> >     <cxf:bus>
> >         <cxf:inInterceptors>
> >             <ref bean="MyInterceptor"/>
> >         </cxf:inInterceptors>
> >         <cxf:outInterceptors>
> >             <ref bean="MyInterceptor"/>
> >        </cxf:outInterceptors>
> >     </cxf:bus>
> > </beans>
> > ---------------------
> >
> > Hope this helps while waiting a response from the CXF team.
> >
> >
> >
> > -----
> > Regards,
> > RobCodes
> > --
> > Sent from: http://cxf.547215.n5.nabble.com/cxf-user-f547216.html
> >
>

Reply via email to