Java Mailing List Archive

http://www.junlu.com/

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

Re: Struts 2.0.2 and Freemarker

Laurie Harper

2006-12-29

Replies:

My guess would be that you're missing the Freemarker JAR(s) from your
classpath. If that's not the case, try switching on debug logging and
see if Struts gives you any more detail about the error condition.

L.

Nick Tucker wrote:
> 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>
>
>
>
>
>
>
>
>
>
>
>


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

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