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.