Tiles using spring: getting error - java.lang.ClassNotFoundException: org.apache.tiles.TilesApplicationContext

I am new to spring and trying to use tiles with Spring. but excess error. I am using maven in my project. I also tried changing versions, but not using. The following is the content of the project:

pom.xml

<!-- Apache Tiles --> <dependency> <groupId>org.apache.tiles</groupId> <artifactId>tiles-core</artifactId> <version>3.0.5</version> </dependency> <dependency> <groupId>org.apache.tiles</groupId> <artifactId>tiles-jsp</artifactId> <version>3.0.5</version> </dependency> <dependency> <groupId>org.apache.tiles</groupId> <artifactId>tiles-api</artifactId> <version>3.0.5</version> </dependency> <dependency> <groupId>org.apache.tiles</groupId> <artifactId>tiles-servlet</artifactId> <version>3.0.5</version> </dependency> <dependency> <groupId>org.apache.tiles</groupId> <artifactId>tiles-template</artifactId> <version>3.0.5</version> </dependency> 

servlet-context.xml

  <!-- for Tiles --> <bean class="org.springframework.web.servlet.view.UrlBasedViewResolver" id="viewResolver"> <property name="viewClass" value="org.springframework.web.servlet.view.tiles2.TilesView"/> </bean> <bean class="org.springframework.web.servlet.view.tiles2.TilesConfigurer" id="tilesConfigurer"> <property name="definitions" value="/WEB-INF/tiles-definitions.xml" /> </bean> 

<strong> tiles-definitions.xml

  <?xml version="1.0" encoding="UTF-8"?> <tiles-definitions> <definition name="base.definition" template="/WEB-INF/views/tilesMainTemplate.jsp"> <put-attribute name="title" value=""></put-attribute> <put-attribute name="header" value="/WEB-INF/views/header.jsp"></put-attribute> <put-attribute name="menu" value="/WEB-INF/views/home.jsp"></put-attribute> <put-attribute name="body" value=""></put-attribute> <put-attribute name="footer" value="/WEB-INF/views/footer.jsp"></put-attribute> </definition> <definition extends="base.definition" name="saveAd"> <put-attribute name="title" value="Post your free Ad"></put-attribute> <put-attribute name="body" value="/WEB-INF/views/adSave.jsp"></put-attribute> </definition> </tiles-definitions> 

i.e.MainTemplate tiles, jsp header and footer, which I think have no problems. Any help in this regard would be greatly appreciated, thanks in advance.

+6
source share
4 answers

Finally it worked! I replaced tiles2 with tiles 3, as mck pointed out correctly, and added the following line to tiles-definitions.xml

 <!DOCTYPE tiles-definitions PUBLIC "-//Apache Software Foundation//DTD Tiles Configuration 3.0//EN" "http://tiles.apache.org/dtds/tiles-config_3_0.dtd"> 
+15
source

In your servlet-context.xml, you use the tiles2 spring -tiles integration classes.

Use instead the classes found in org.springframework.web.servlet.view.tiles3

+10
source
 use this code if your are using version 3 . based on the version your are using should configure the tiles. <bean id="viewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver"> <property name="viewClass"> <value> org.springframework.web.servlet.view.tiles3.TilesView </value> </property> </bean> <bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles3.TilesConfigurer"> <property name="definitions"> <list> <value>/WEB-INF/estudo-tiles-servlet.xml</value> </list> </property> </bean> 
0
source

Using:

 import org.springframework.web.servlet.view.tiles3.TilesView; 

Not:

 import org.springframework.web.servlet.view.tiles2.TilesView; 
0
source

Source: https://habr.com/ru/post/983251/


All Articles