Hello!
I would be grateful for any advice with the below problem I am
encountering with the WicketSessionFilter.
I managed to convince my colleagues to migrate our www.mypharmisis.com
(a drug ordering system for the Pharmaceutical industry) from Struts
to Wicket after the success of a greenfield project using Wicket. I
don't have the resources to migrate all at once so Struts 1 and Wicket
so I have set them up to coexist congruently. However! I am having
problems sharing necessary state between Struts 1 and Wicket using the
WicketSessionFilter :-(
When my Strut controllers tries to access my WebSession, it throws a
java.lang.IllegalStateException: you can only locate or create
sessions in the context of a request cycle. My stack trace is:
org.apache.wicket.Session.findOrCreate(Session.java:206)
org.apache.wicket.Session.get(Session.java:250)
com.mypharmsisis.pages.session.PharmisisSession.get(PharmisisSession.java:24)
com.mypharmisis.struts.isis.actions.AbstractEasyAction.displayPage(AbstractEasyAction.java:52)
com.mypharmisis.struts.isis.actions.EasyOrderHomeAction.displayPage(EasyOrderHomeAction.java:53)
Here is a snippet of my web.xml:
<!-- Wicket configuration using standard JEE filter -->
<filter>
<filter-name>wicket.pharmisis</filter-name>
<filter-class>org.apache.wicket.protocol.http.WicketFilter</filter-class>
<init-param>
<param-name>applicationClassName</param-name>
<param-value>com.mypharmisis.pages.PharmisisApplication</param-value>
</init-param>
</filter>
<filter>
<filter-name>WicketSessionFilter</filter-name>
<filter-class>org.apache.wicket.protocol.http.servlet.WicketSessionFilter</filter-class>
<init-param>
<param-name>filterName</param-name>
<param-value>wicket.pharmisis</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>wicket.pharmisis</filter-name>
<url-pattern>/secure/new/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>WicketSessionFilter</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping>
<!-- End of Wicket configuration -->
<context-param>
<param-name>
javax.servlet.jsp.jstl.fmt.localizationContext
</param-name>
<param-value>
com.mypharmisis.isis.ApplicationResources
</param-value>
</context-param>
<context-param>
<param-name>crystal_image_uri</param-name>
<param-value>/isis2/crystalreportviewers11</param-value>
</context-param>
<distributable/>
<listener>
<listener-class>com.mypharmisis.struts.isis.framework.IsisContextListener</listener-class>
</listener>
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>detail</param-name>
<param-value>9</param-value>
</init-param>
<init-param>
<param-name>nocache</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>validate</param-name>
<param-value>true</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<!-- DWR configuration -->
<servlet>
<servlet-name>dwr-invoker</servlet-name>
<display-name>DWR Servlet</display-name>
<servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>true</param-value>
</init-param>
</servlet>
<!-- Action Servlet Mappings -->
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>dwr-invoker</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping>
<!-- The Welcome File List -->
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<error-page>
<error-code>400</error-code>
<location>/isisErrorAction.do?code=400</location>
</error-page>
<error-page>
<error-code>404</error-code>
<location>/isisErrorAction.do?code=404</location>
</error-page>
<error-page>
<error-code>500</error-code>
<location>/isisErrorAction.do?code=500</location>
</error-page>
<!-- Start: Struts Tag Library Descriptors -->
<!--
<taglib>
<taglib-uri>struts.jar</taglib-uri>
<taglib-location>/meta-inf/taglib.tld</taglib-location>
</taglib>
-->
<taglib>
<taglib-uri>/WEB-INF/struts-bean.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-bean.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/struts-html.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-html.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/struts-logic.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-logic.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/struts-template.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-template.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/struts-tiles.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-tiles.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/sslext.tld</taglib-uri>
<taglib-location>/WEB-INF/sslext.tld</taglib-location>
</taglib>
<!-- End: Struts Tag Library Descriptors -->
<security-constraint>
<web-resource-collection>
<web-resource-name>ActionClasses</web-resource-name>
<url-pattern>/secure/*</url-pattern>
<url-pattern>/redirect_home.jsp</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>*</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>FORM</auth-method>
<realm-name>ISISModule</realm-name>
<form-login-config>
<form-login-page>/realLogin.do?method=login</form-login-page>
<form-error-page>/realLogin.do?method=loginFailed</form-error-page>
</form-login-config>
</login-config>
<security-role>
<description>A user with no permissions</description>
<role-name>nobody</role-name>
</security-role>
<security-role>
<description>Administrator Web</description>
<role-name>Admin Web</role-name>
</security-role>
<security-role>
<description>Head Office</description>
<role-name>Head Office</role-name>
</security-role>
</web-app>
Cheers,
Jim.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]