quality@glassfish.java.net

Re: [Question] How to use Servlet3.0 with JavaEE6

From: Jan Luehe <Jan.Luehe_at_Sun.COM>
Date: Thu, 05 Mar 2009 15:28:42 -0800

Hi Jack,

On 01/ 9/09 06:48 PM, Jan Luehe wrote:
> Hi Jack,
>
> On 12/23/08 18:33, Captain Jack Sparrow wrote:
>> Hi Judy,
>>
>> Thank you for your answering.
>>
>>
>>> Let's wait for some time for the answer if async support is in or not .
>>> Here is the latest promoted build b29 to try.
>>>
>> I tried async on the glassfish-v3-web-ea-b29.
>> Async support is not. You are right!
>>
>> java.lang.StackOverflowError has occured. Oh no....
>>

I wanted to follow up with you and let you know that the upcoming
nightly build will provide a feature-complete implementation of the
Servlet 3.0 APIs.

There have been a few changes to the async APIs since you last looked at
them. Most notably, the javax.servlet.AsyncContext#forward methods
have been renamed to AsyncContext#dispatch, and a new ASYNC request
dispatcher type has been added to identify any requests that have been
dispatched using this API.

Only filters that have been declared to support the ASYNC dispatcher type
will be considered during an ASYNC dispatch. A filter that has been
configured for ASYNC and other types of dispatches (e.g., FORWARD) may
query the request for its current dispatcher type (by calling the new
ServletRequest#getDispatcherType), and act accordingly.

I should point out that there is one outstanding issue that the
Servlet EG is trying to close on: the semantics of a zero-argument
AsyncContext#dispatch. While our impl will perform an ASYNC dispatch
of the request and response to the current request URI (as returned by
HttpServletRequest#getRequestURI), which corresponds to the target of
the most recent FORWARD dispatch (or the original URI if no FORWARD
dispatches have occurred), some Servlet EG members have been
arguing that an ASYNC dispatch should always go to the original
URI. Hopefully, we'll be able to agree on the semantics soon within the
Servlet EG.

For now, you have to rely on the javax.servlet.ServletRequest and
javax.servlet.AsycContext javadocs for documentation of the latest
async features, but we will follow up with blogs in the near future.

Please give our impl a try and let us know if you run into any
problems.

I also wanted to thank the Grizzly team for their integration support
of the async APIs with the underlying Grizzly framework.

Thanks,

Jan