Spring 3 MVC and Apache Tiles 2 Integration Error

Athens Holloway picture Athens Holloway · Feb 15, 2011 · Viewed 36.1k times · Source

I have been trying to integrate Spring (3.0.4 and 3.0.5) MVC with Apache Tiles (2.1.2,2.1.4 and 2.2.2) to no avail. In every case i get the following error:

java.lang.NoClassDefFoundError: org/apache/tiles/startup/BasicTilesInitializer

According to the Tiles documentation, BasicTilesInitializer has been deprecated. I figured the latest version of Spring's TilesConfigurer would reference the correct class, but it doesnt and I still get the same error.

I'm using the following configuration to setup Tiles in my spring mvc app:

<beans:bean 
    id="tilesConfigurer" 
    class="org.springframework.web.servlet.view.tiles2.TilesConfigurer">
    <beans:property name="definitions">
        <beans:list>
            <beans:value>/WEB-INF/tiles/tiles.xml</beans:value>
        </beans:list>
    </beans:property>
</beans:bean>

<beans:bean 
    class="org.springframework.web.servlet.view.tiles2.TilesViewResolver">      
    <beans:property 
        name="viewClass" value="org.springframework.web.servlet.view.tiles2.TilesView"/>                
</beans:bean>

Ideally, I would like to get Spring 3.0.5 working with Tiles 2.2.2. They are the latest versions as of this post.

Answer

iowatiger08 picture iowatiger08 · Sep 5, 2012

For tiles 3, use class org.springframework.web.servlet.view.tiles3.TilesConfigurer. Make sure you have that in spring webmvc.