Just run into this thread with a similar problem. I'm implementing REST
service (using tapestry-resteasy) for mobile clients.

I've already found a solution:

    public void contributeHttpServletRequestHandler (
OrderedConfiguration<HttpServletRequestFilter> configuration,

            @Inject @Symbol(SymbolConstants.CHARSET) final String
applicationCharset,

            @Primary final SessionPersistedObjectAnalyzer<?> analyzer,

            final RequestGlobals requestGlobals ) {


        HttpServletRequestFilter storeRequestResponse =
newHttpServletRequestFilter () {

            public boolean service ( HttpServletRequest servletRequest,
HttpServletResponse servletResponse,

                    HttpServletRequestHandler handler ) throws IOException {



                Request request = new RequestImpl ( servletRequest,
applicationCharset, new TapestrySessionFactoryImpl ( false, analyzer,
servletRequest ) );

                Response response = new ResponseImpl ( servletRequest,
servletResponse );

                requestGlobals.storeRequestResponse ( request, response );

                return handler.service ( servletRequest, servletResponse );

            }

        };


        configuration.add("StoreRequestResponse", storeRequestResponse,
"before:*");

    }

But it doesn't look very elegant. Is there any better way to expose
ApplicationStateManager to RestEasy service?



On Fri, Jun 28, 2013 at 12:04 PM, Thiago H de Paula Figueiredo <
thiag...@gmail.com> wrote:

> On Thu, 27 Jun 2013 19:46:20 -0300, Jon Williams <
> williams.jonat...@gmail.com> wrote:
>
>  Hi,
>>
>
> Hi!
>
>  My problem has gone away.
>> A short FYI on how I got past this problem...
>>
>> First I tried adding a new request Builder method in QaModule using the
>> shadowbuilder service that would build my TestRequest. But that didn't
>> work because of a Request service implementation collision with predeclared
>> (in TapModule) service Request.class interface implementation. Only 1
>> Request
>> interface implementation is allowed, and TapModule beats me to the punch.
>>
>
> You've already found a very good solution, but I'd like to mention you
> could also use service overriding, so your Request implementation is used
> and not Tapestry's.
>
>
> --
> Thiago H. de Paula Figueiredo
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
>
> For additional commands, e-mail: users-h...@tapestry.apache.org
>
>


-- 
Ilya Obshadko

Reply via email to