Robertone
Robertone

Reputation: 7

Spring 4 with tiles 3 Error NoClassDefFoundError: org.apache.tiles.request.ApplicationContext

I am using Spring framework version 4.0.6 and tiles 3.0.1

My dispatcher-servlet.xml:

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xmlns:p="http://www.springframework.org/schema/p"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:c="http://java.sun.com/jsp/jstl/core"
       xmlns:util="http://www.springframework.org/schema/util"
       xsi:schemaLocation="http://www.springframework.org/schema/security 
       http://www.springframework.org/schema/security/spring-security-3.2.xsd
       http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd
       http://www.springframework.org/schema/context
       http://www.springframework.org/schema/context/spring-context.xsd
       http://www.springframework.org/schema/util 
       http://www.springframework.org/schema/util/spring-util-4.0.xsd
       http://www.springframework.org/schema/mvc 
       http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">

    <context:component-scan base-package="com.leonardo.*"/>

    <mvc:annotation-driven/> 
    <mvc:resources mapping="/css/**" location="/WEB-INF/css/" />
    <mvc:resources mapping="/img/**" location="/WEB-INF/img/" />
    <mvc:resources mapping="/js/**" location="/WEB-INF/js/" />
    <mvc:resources mapping="/fonts/**" location="/WEB-INF/fonts/" />

    <bean id="viewResolver"
          class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/views/" />
        <property name="suffix" value=".jsp" />
    </bean>

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

</beans>

My tiles.xml

    <?xml version="1.0" encoding="UTF-8"?>
     <!DOCTYPE tiles-definitions PUBLIC  
        "-//Apache Software Foundation//DTD Tiles Configuration 3.0//EN"  
        "http://tiles.apache.org/dtds/tiles-config_3_0.dtd">
     <tiles-definitions>
      <definition name="DefaultTemplate" 
              template="/WEB-INF/views/returnP.jsp">
        <put-attribute name="title" value="" />
        <put-attribute name="header" value="/WEB-INF/views/header.jsp" />
        <put-attribute name="body" value="" />
        <put-attribute name="sidebar" value="/WEB-INF/views/sidebar.jsp" />
    </definition>

 <definition name="Template" extends="DefaultTemplate">
        <put-attribute name="title" value="Home" />
        <put-attribute name="header" value="/WEB-INF/views/header.jsp" />
        <put-attribute name="body" value="/WEB-INF/views/body.jsp" />
        <put-attribute name="sidebar" value="/WEB-INF/views/sidebar.jsp" />
    </definition>
</tiles-definitions>

My defautTemplate:

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><%@page
    language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
    <%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles"%>
    <html>
         <head>
            <title>returnP</title>
            <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
         </head>
         <body>
           <h1>${cf}</h1>
            <div class="container"
                style="border: #C1C1C1 solid 1px; border-radius: 10px;"><!-- Header -->
            <tiles:insertAttribute name="header" /> <!-- Menu Page -->
            <div class="span-5  border"
                style="height: 400px; background-color: #FCFCFC;">
        <!-- Body Page -->
            <div class="span-19 last">
                <tiles:insertAttribute name="body" />
            </div>
                <!-- Footer Page --> 
                <tiles:insertAttribute name="sidebar" />
            </div>
        </body>
    </html>

My controller:

    @Autowired ActionVerificaLogon actionVerificaLogon;

    @RequestMapping(value = { "/", "/index",})
    public ModelAndView index(HttpServletRequest request) {
        logger.info("############## START ##############");
        ModelAndView mv = new ModelAndView();
        mv.setViewName("index");

        return mv;
    }



    @RequestMapping(value = "/vericaLogon", method = RequestMethod.POST)
    public @ResponseBody ModelAndView vericaLogon(HttpServletRequest request, HttpServletResponse response, ModelMap model){
        logger.info("########################### START ###########################");   
        ModelAndView mv = new ModelAndView();
        String ret = null;
        try {

            FormUser730 formUser730 = actionVerificaLogon.execute(request, response);

            logger.info("formUser730 -> " + formUser730.getCOD_FIS());
            model.addAttribute("cf", formUser730.getCOD_FIS());
            mv.setViewName("Template");         
        }catch(Exception e) {
            logger.error("Errore [Esecuzione Ricerca]",e);
            return mv;
        }
        logger.info("########################### STOP ###########################");    

        return mv;                                    
    }

i have a imported tiles-extras.jar version 3.01.

And i have this error:

    18/09/18 20.27.36:907 CEST] 00000040 ContextLoader E org.springframework.web.context.ContextLoader initWebApplicationContext Context initialization failed

    org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'tilesConfigurer' defined in ServletContext resource [/WEB-INF/dispatcher-servlet.xml]: Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: org.apache.tiles.request.servlet.ServletApplicationContext
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1553)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:539)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:475)
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:302)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:298)
    at .springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:703)
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:760)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:482)
    at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:403)

Help me please......... .

Upvotes: 0

Views: 4419

Answers (1)

Doug Breaux
Doug Breaux

Reputation: 5105

That just looks like you don't have all the Tiles jars deployed with your app. Looking at my current copy of Tiles 3.0.7, it looks like it's in jar tiles-request-servlet-1.0.6.jar.

Upvotes: 2

Related Questions