The required change is fairly simple. Make the wicket session
attribute name unique per servlet. Instead of "session", it should be
"session" + request.getServletPath()


    static HttpSession getSession(final Application application, final
HttpServletRequest request)
    {
        // Get session, creating if it doesn't exist
        final javax.servlet.http.HttpSession httpServletSession =
request.getSession(true);

        // The request session object is unique per web application,
but wicket requires it
        // to be unique per servlet.
        final String sessionAttributeName = "session" +
request.getServletPath();
        
        // Get Session abstraction from httpSession attribute
        HttpSession session =
(HttpSession)httpServletSession.getAttribute(sessionAttributeName);

        if (session == null)
        {
            // Create session
            session = new HttpSession(application, httpServletSession);

            // Set the client Locale for this session
            session.setLocale(request.getLocale());

            // Attach to httpSession
            httpServletSession.setAttribute(sessionAttributeName, session);
        }
        else
        {
            // Reattach http servlet session
            session.httpServletSession = httpServletSession;
        }

        // Set the current session to the session we just retrieved
        Session.set(session);

        return session;
    }

Juergen


-------------------------------------------------------
This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting
Tool for open source databases. Create drag-&-drop reports. Save time
by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc.
Download a FREE copy at http://www.intelliview.com/go/osdn_nl
_______________________________________________
Wicket-develop mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wicket-develop

Reply via email to