2011-02-15 66 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

相關問題