Eric Jain wrote:

After having gone through several web application frameworks, I'm
looking at Cocoon, and so far I like what I see :-) In particular, I
have the following requirements:

1) Must be able to map specific paths. Few frameworks support this, but
Cocoon seems to be very flexible here; from what I gather the following
should be possible:

/foo/ : Show query form.
/foo/?query=test : Invoke action and list items.
/foo/123 : Invoke another action and display item.


Don't see a problem.

2) Elegant templating language. JSP 2.0 (using the XML syntax) is quite
nice. Cocoon's JXTemplate seems to be similar, but better (more
flexible, outputs XML).


It seems that, at the mo, JXTemplate is the preferred approach.

3) Simple data binding. Had a brief look at 'Woody', but it seems a bit
heavy for simple forms; I'd rather not have to keep form definitions in
separate files. JXForms on the other hand looks good, but can this be
used inside JXTemplate files?


JXForms is pretty much deprecated. Woody is the preferred approach. But it is very much developing at the mo, so if you throw your piece in, you may find Woody changes in response.

4) Application must be stateless. Subsequent requests may be routed to
different servers. Here I see a possible problem with Cocoon, as both
JXTemplate and JXForms seem to be somewhat tied to the 'flow' feature,
which probably wouldn't work with our setup. Is this correct, and if
yes, any suggested workarounds? I'd rather not have to end up writing my
own framework :-)


The same problem will apply to any site that uses sessions. Firstly, you can use flow and JXTemplate if you don't use sendPageAndWait(), only using sendPage(), thus you're not using continuations, and are therefore stateless.

However, the way to work around this is to do with how you configure your multiple servers.

You should have Apache (or some other web server) in front of your servlet container. Configure your servlet container to add some identifier of the container to the session ID, and have Apache use this ID to route future requests to the same server as has handled previous requests.So, initial requests are randomly distributed between servers. Subsequent ones are handled by the same server.

This is a standard way of doing load balancing with servlet containers.

Regards, Upayavira



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to