2011-02-15 116 views
12

我一直在试图将Spring(3.0.4和3.0.5)MVC与Apache Tiles(2.1.2,2.1.4和2.2.2)集成到一起无济于事。在任何情况下,我得到了以下错误:Spring 3 MVC和Apache Tiles 2集成错误

java.lang.NoClassDefFoundError:组织/阿帕奇/瓷砖/启动/ BasicTilesInitializer

按照Tiles文档,BasicTilesInitializer已被弃用。我认为Spring的最新版本TilesConfigurer会引用正确的类,但它没有,我仍然得到相同的错误。

我使用下面的配置设置瓷砖在我的春天MVC应用程序:

<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> 

理想情况下,我想获得春天3.0.5与2.2.2瓷砖工作。他们是这篇文章的最新版本。

回答

10

org.apache.tiles.startup.BasicTilesInitializer是一类tiles-core(2.2.1).jar。检查您是否部署了tiles-core罐子

+0

砖芯被引用,但不解决问题 – 2011-02-15 13:49:50

0

如果您使用STS并且使用Spring模板项目(如MVC)创建了项目,那么您不会向lib目录添加任何内容。而是修改pom.xml maven配置文件。

8

如果您正在使用Maven,那么你可以为了增加这种依赖关系来解决问题:

<dependency> 
    <groupId>org.apache.tiles</groupId> 
    <artifactId>tiles-servlet</artifactId> 
    <version>2.2.2</version> 
</dependency> 
19

瓷砖3,使用类org.springframework.web.servlet.view.tiles3.TilesConfigurer。确保你在spring webmvc有。

1

我不会为恢复陈旧的线程而道歉。

我有一个在Eclipse Helios中构建的Spring MVC项目。
我关闭了Helios几天,然后今天重新打开。当我运行我的应用程序时,我得到了与上面相同的异常:java.lang.NoClassDefFoundError:org/apache/tiles/startup/BasicTilesInitializer。

我的解决方案是清理集成Tomcat服务器上的部署目录,然后重新部署应用程序。我第一次重新部署时,我的应用程序的lib目录只显示了两个罐子。所以在清理和重新部署之后,它会得到所有必需的jar,现在我的应用程序再次运行。去搞清楚。

0

我只能解决这个问题后,我加入依赖于在编译的时候在我的POM提供

<scope>compile</scope> 
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> 
0

检查下列罐子应用程序类路径上:

  1. 公地的BeanUtils
  2. 公共沼气池
  3. log4j的
  4. SLF4J的API
  5. slf4j-log4j12
  6. tiles-api
  7. 瓷砖核心
  8. 砖,JSP
  9. 砖,servlet的
  10. 瓷砖,瓷砖的模板罐子

版本是依赖于Spring MVC中的版本。例如。如果使用Spring MVC 3.2.3(org.springframework.web.servlet.view.tiles3.TilesConfigurer),则需要3个罐子。

0

瓷砖3,你应该添加

tiles-request.jar, commons-digester.jar