我一直在尝试将Spring(3.0.4和3.0.5)MVC与Apache Tiles(2.1.2,2.1.4和2.2.2)集成,但无济于事。在每种情况下,我都会收到以下错误:
java.lang.NoClassDefFoundError:org / apache / tiles / startup / BasicTilesInitializer
根据Tiles文档,不推荐使用BasicTilesInitializer。我认为最新版本的Spring TilesConfigurer会引用正确的类,但它没有,我仍然会得到同样的错误。
我正在使用以下配置在我的spring mvc app中设置Tiles:
<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>
理想情况下,我希望Spring 3.0.5能够使用Tiles 2.2.2。它们是本文的最新版本。
答案 0 :(得分:19)
对于图块3,请使用类org.springframework.web.servlet.view.tiles3.TilesConfigurer
。确保您在spring webmvc
。
答案 1 :(得分:10)
org.apache.tiles.startup.BasicTilesInitializer
是一类tiles-core(2.2.1).jar
。检查您是否已部署tiles-core
jar
答案 2 :(得分:8)
如果您正在使用maven,那么您可以添加此依赖项以解决问题:
<dependency>
<groupId>org.apache.tiles</groupId>
<artifactId>tiles-servlet</artifactId>
<version>2.2.2</version>
</dependency>
答案 3 :(得分:1)
我不会为恢复过时的线索而道歉。
我有一个用Eclipse Helios构建的Spring MVC项目 我关闭了Helios几天,然后今天重新打开它。当我运行我的应用程序时,我得到了与上面相同的异常:java.lang.NoClassDefFoundError:org / apache / tiles / startup / BasicTilesInitializer。
我的解决方案是清理集成Tomcat服务器上的deploy目录,然后重新部署应用程序。我第一次重新部署,我的应用程序的lib目录只显示了两个罐子。因此,在再次清理和重新部署之后,它获得了所有必要的jar,现在我的应用程序再次运行。去图。
答案 4 :(得分:0)
如果您正在使用STS并且使用spring模板项目(如MVC项目)创建了项目,那么您不会向lib目录添加任何内容。而是修改pom.xml maven配置文件。
答案 5 :(得分:0)
我只能在我的POM
中添加依赖项以便在编译时提供后解决这个问题<scope>compile</scope>
答案 6 :(得分:0)
我遇到了同样的问题,使用版本2.2.2的瓷砖。我切换到2.2.1版本,它开始工作。以下是我的依赖项:
<dependency>
<groupId>org.apache.tiles</groupId>
<artifactId>tiles-jsp</artifactId>
<version>2.2.1</version>
</dependency>
<dependency>
<groupId>org.apache.tiles</groupId>
<artifactId>tiles-core</artifactId>
<version>2.2.1</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.apache.tiles</groupId>
<artifactId>tiles-api</artifactId>
<version>2.2.1</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.apache.tiles</groupId>
<artifactId>tiles-servlet</artifactId>
<version>2.2.1</version>
</dependency>
<dependency>
<groupId>org.apache.tiles</groupId>
<artifactId>tiles-template</artifactId>
<version>2.2.1</version>
</dependency>
答案 7 :(得分:0)
检查以下jar是否在应用程序类路径上:
tiles jars的版本取决于Spring MVC的版本。例如。如果使用Spring MVC 3.2.3(org.springframework.web.servlet.view.tiles3.TilesConfigurer),则需要tile 3 jar。
答案 8 :(得分:0)
对于图块3,您应该添加
瓦片-request.jar, 公地digester.jar