Spring integration on vaadin portlet


I have a problem to integrate Spring in a vaadin portlet.
I use the method specified on the Spring Integration wiki page :
ServletContext servletContext = ((WebApplicationContext) application.getContext()).getHttpSession().getServletContext();
context = WebApplicationContextUtils.getRequiredWebApplicationContext(servletContext);

The error is :
java.lang.ClassCastException: com.vaadin.terminal.gwt.server.PortletApplicationContext2 cannot be cast to com.vaadin.terminal.gwt.server.WebApplicationContext


In fact, with portlet 2.0 support, the PortletApplicationContext2 inherites directly from AbstractWebApplicationContext class.
The PortletApplicationContext (portlet before version 6.2) inherites from WebApplicationContext which inherites from AbstractWebApplicationContext.
Why this change ?
I have try to go up in inheritance tree but with AbstractWebApplicationContext, i haven’t succeed to get session object.

When using Portlet 1.0 portlets, there is a servlet behind the portlet and using the servlet context makes sense. However, a Portlet 2.0 portlet does not use a servlet at all, so many parts of the servlet API would not make any sense.

You should use the Spring

The code snippet could look something like:

PortletContext portletContext = ((PortletApplicationContext2) application.getContext()).getPortletSession().getPortletContext();
context = PortletApplicationContextUtils.getRequiredWebApplicationContext(portletContext);

Thanks you very much, it’s work.