[Lift] Re: chaining servlets
2009-03-02 23:22:12 GMT
PPS The reason i want Jersey on the outbound path is that it has pretty nifty support for rendering to XML and other formats. A single Produces annotation at the class level, for example, suffices to cause all the web methods to render according to format specified in the annotation. Oh, and Jersey also autogenerates the WADL description of the service -- which is going to come in handy for other stuff we're doing.
Tim, et al,
Thanks for the many responses. Here's the overall context. i've got a group that has done some significant work building a JRoR site. Now they want to scale. As a part of a midterm strategy to get some reasonable tooling in, we're building Scala-based RESTful APIs. Being an idiot, i want as general a soln as possible. So, here's what i've done.
What i want to do now is to interject lift into the mix so that we can allow programmers to specialize the controller behavior in scala/lift code.
- a plain, vanilla Hibernate reverse engineering strategy will fetch both JPA and simple POJOs
- This gets me Scala access to the backend
- Now, i want to generate default "controller" behavior. i've written a Scala program that eats what Hibernate spits out and creates default controller behavior. It uses the Jersey annotations (Produces, Consumes, Path, GET, PUT,...) to control rendering to/from the client of the RESTful API
The reason i've attempted to be fairly generic about all this is that i believe this represents a tool-chain that allows a semi-automated migration path from <pick-you-webframework> to lift/scala. The idea is that the SQL schema is about 80% of where the rubber meets the road, so that ought to be the place to hoist your app out of some existing solution. This works especially well if you're transition from a JVM soln (JRoR) to a JVM soln.
--gregOn Mon, Mar 2, 2009 at 3:02 PM, Timothy Perrett <timothy-0nUveC4DNz0XzJSMcliFkw@public.gmane.org> wrote:
Greg, can I enquire to your specific use case?
I’d be interested to hear what you feel Jersey adds value to over lift (im not familiar with Jersey)?
In my experience when you need a round the houses solution such as this their can often be a simpler path
On 02/03/2009 22:46, "Viktor Klang" <viktor.klang-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:
hehe, no worries, I'm one of your fans. :)
You should be able to accomplish this by having the filter mapping for Jersey in web.xml placed before the Lift filter mapping:
"Recall that a filter chain is one of the objects passed to the doFilter method of a filter. This chain is formed indirectly via filter mappings. The order of the filters in the chain is the same as the order that filter mappings appear in the web application deployment descriptor. "
The Jersey will handle the request first, then pass it thru to Lift, then back.
I of course have not tested this with Jersey and do not know if there are any strange things that can happen.
But I'm sure you'll find out and get back to us ;)
On Mon, Mar 2, 2009 at 11:28 PM, Meredith Gregory <lgreg.meredith-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:Marius, Viktor,
Many thanks for your prompt responses. You'll have to pardon me as i've not graduated from Web101 . i was really looking for an example. To illustrate, in looking at web.xml in a archetype-generated lift project i see that only filter and filter mapping is defined. How is a servlet then chosen?
Also, i'm sort of interested in wrapping lift's request processing. Here's what i mean. If i've understood what Jersey does correctly (and that's a big if), then it will do Request and Response rendering. So, what i want is
== HttpRequest ==> (JerseyFilter) == ModifiedRequest ==> (LiftFilter) ==> Response == (JerseyFilter) ==> ModifiedOutboundResponse ==>
It's not clear to me how this is accomplished. There's the dead obvious idea, but i'm leary that this won't work because the "types" are unlikely to line up.
On Mon, Mar 2, 2009 at 1:00 PM, Viktor Klang <viktor.klang-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:
On Mon, Mar 2, 2009 at 8:51 PM, Meredith Gregory <lgreg.meredith-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:Lifted, scalads and lasses,
Does anybody have a working sample of chaining the lift servlet with a 3rd party servlet? i'm interested in doing this with the Jersey servlet to get some of their request/response rendering support.
This is why we made Lift a Filter :)
806 55th St NE
Seattle, WA 98105
806 55th St NE
Seattle, WA 98105
You received this message because you are subscribed to the Google Groups "Lift" group.
To post to this group, send email to liftweb <at> googlegroups.com
To unsubscribe from this group, send email to liftweb+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
For more options, visit this group at http://groups.google.com/group/liftweb?hl=en