Java Mailing List Archive

http://www.junlu.com/

Home » Home (12/2007) » Struts 2 »

Struts 2.0.2 and Freemarker

Nick Tucker

2006-12-27

Replies:


On converting from Struts 2.0.1 to 2.0.2
I get the following error when I try and use Sitemesh Freemarker Decorators.

The decorators work with 2.0.1.

Some advice on what changes I need to make would be appreciated

Thanks
Nick Tucker


2006-12-27 18:53:19,166 ERROR
(org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/Struts2].[default]:253)
- Servlet.service() for servlet default threw exception
javax.servlet.ServletException: Missing freemarker dependency
 at
org.apache.struts2.sitemesh.FreeMarkerPageFilter.applyDecorator(FreeMarkerPageFilter.java:135)
 at
org.apache.struts2.sitemesh.TemplatePageFilter.applyDecorator(TemplatePageFilter.java:113)
 at
com.opensymphony.module.sitemesh.filter.PageFilter.doFilter (PageFilter.java:59)
 at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:202)
 at
org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:173)
 at
org.apache.struts2.dispatcher.ActionContextCleanUp.doFilter (ActionContextCleanUp.java:99)
 at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:202)
 at
org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:173)
 at
org.displaytag.filter.ResponseOverrideFilter.doFilter (ResponseOverrideFilter.java:125)
 at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:202)
 at
org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:173)
 at
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:264)
 at
org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke (FilterSecurityInterceptor.java:107)
 at
org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter (FilterSecurityInterceptor.java:72)
 at
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
 at
org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:110)
 at
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
 at
org.acegisecurity.ui.basicauth.BasicProcessingFilter.doFilter (BasicProcessingFilter.java:178)
 at
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
 at
org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter (RememberMeProcessingFilter.java:135)
 at
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
 at
org.acegisecurity.ui.AbstractProcessingFilter.doFilter (AbstractProcessingFilter.java:217)
 at
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
 at
org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:193)
 at
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
 at
org.acegisecurity.util.FilterChainProxy.doFilter (FilterChainProxy.java:148)
 at
org.acegisecurity.util.FilterToBeanProxy.doFilter (FilterToBeanProxy.java:98)
 at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:202)
 at
org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:173)
 at
org.apache.catalina.core.StandardWrapperValve.invoke (StandardWrapperValve.java:213)

My relevant parts of my web.xml are:-

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application
2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>

  <display-name>Struts 2 Test Application</display-name>

  <filter>
    <filter-name>securityFilter</filter-name>
   
<filter-class>org.acegisecurity.util.FilterToBeanProxy</filter-class>
    <init-param>
       <param-name>targetClass</param-name>
     
<param-value>org.acegisecurity.util.FilterChainProxy</param-value>
    </init-param>
  </filter>

  <filter>
    <filter-name>ResponseOverrideFilter</filter-name>
   
<filter-class>org.displaytag.filter.ResponseOverrideFilter</filter-class>
  </filter>

  <filter>
    <filter-name>struts-cleanup</filter-name>
   
<filter-class>org.apache.struts2.dispatcher.ActionContextCleanUp</filter-class>
  </filter>

  <filter>
    <filter-name>sitemesh</filter-name>
   
<filter-class>org.apache.struts2.sitemesh.FreeMarkerPageFilter</filter-class>
  </filter>
 
  <filter>
    <filter-name>action2</filter-name>
   
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
  </filter>

  <filter-mapping>
    <filter-name>securityFilter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>

  <filter-mapping>
    <filter-name>ResponseOverrideFilter</filter-name>
    <url-pattern>*.action</url-pattern>
  </filter-mapping>
 
  <filter-mapping>
    <filter-name>struts-cleanup</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>

  <filter-mapping>
    <filter-name>sitemesh</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>

  <filter-mapping>
    <filter-name>action2</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>

  <listener>
   
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>

  <servlet>
    <servlet-name>freemarker</servlet-name>
   
<servlet-class>freemarker.ext.servlet.FreemarkerServlet</servlet-class>
 
    <!-- FreemarkerServlet settings: -->
    <init-param>
       <param-name>TemplatePath</param-name>
       <param-value>/</param-value>
    </init-param>
    <init-param>
       <param-name>NoCache</param-name>
       <param-value>true</param-value>
    </init-param>
    <init-param>
       <param-name>ContentType</param-name>
       <param-value>text/html</param-value>
    </init-param>
 
    <!-- FreeMarker settings: -->
    <init-param>
       <param-name>template_update_delay</param-name>
       <param-value>0</param-value> <!-- 0 is for development only! Use
higher value otherwise. -->
    </init-param>
    <init-param>
       <param-name>default_encoding</param-name>
       <param-value>ISO-8859-1</param-value>
    </init-param>
    <init-param>
       <param-name>number_format</param-name>
       <param-value>0.##########</param-value>
    </init-param>

    <load-on-startup>1</load-on-startup>
  </servlet>

  <servlet>
    <servlet-name>JspSupportServlet</servlet-name>
   
<servlet-class>org.apache.struts2.views.JspSupportServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>

  <servlet>
    <servlet-name>sitemesh-freemarker</servlet-name>
   
<servlet-class>com.opensymphony.module.sitemesh.freemarker.FreemarkerDecoratorServlet</servlet-class>
    <init-param>
       <param-name>TemplatePath</param-name>
       <param-value>/</param-value>
    </init-param>
    <init-param>
       <param-name>default_encoding</param-name>
      <param-value>ISO-8859-1</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>

  <servlet-mapping>
    <servlet-name>freemarker</servlet-name>
    <url-pattern>*.ftl</url-pattern>
  </servlet-mapping>

  <servlet-mapping>
    <servlet-name>sitemesh-freemarker</servlet-name>
    <url-pattern>*.dec</url-pattern>
  </servlet-mapping>

</web-app>











--
Sent from the Struts - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@(protected)
For additional commands, e-mail: user-help@(protected)

©2008 junlu.com - Jax Systems, LLC, U.S.A.