Spring 3 MVC и Apache Tiles 2 Ошибка интеграции - PullRequest
13 голосов
/ 15 февраля 2011

Я пытался интегрировать Spring (3.0.4 и 3.0.5) MVC с Apache Tiles (2.1.2,2.1.4 и 2.2.2), но безрезультатно. В каждом случае я получаю следующую ошибку:

java.lang.NoClassDefFoundError: org / apache / tile / startup / BasicTilesInitializer

Согласно документации Tiles, BasicTilesInitializer устарел. Я полагал, что последняя версия Spring * TilesConfigurer будет ссылаться на правильный класс, но это не так, и я все еще получаю ту же ошибку.

Я использую следующую конфигурацию для настройки Tiles в моем приложении Spring 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>

В идеале я бы хотел, чтобы Spring 3.0.5 работал с Tiles 2.2.2. Это последние версии на этот пост.

Ответы [ 9 ]

19 голосов
/ 06 сентября 2012

Для плиток 3 используйте класс org.springframework.web.servlet.view.tiles3.TilesConfigurer.Убедитесь, что у вас есть это в spring webmvc.

10 голосов
/ 15 февраля 2011

org.apache.tiles.startup.BasicTilesInitializer это класс tiles-core(2.2.1).jar.Убедитесь, что вы развернули tiles-core jar

8 голосов
/ 18 января 2012

Если вы используете maven, вы можете добавить эту зависимость для решения проблемы:

<dependency>
     <groupId>org.apache.tiles</groupId>
     <artifactId>tiles-servlet</artifactId>
     <version>2.2.2</version>
</dependency>  
1 голос
/ 11 октября 2012

Я не собираюсь извиняться за восстановление устаревшего потока.

У меня есть проект Spring MVC, созданный в Eclipse Helios.
Я выключил Helios на несколько дней, а затем снова открыл его сегодня.Когда я запустил свое приложение, я получил то же исключение, что и выше: java.lang.NoClassDefFoundError: org / apache /iles / startup / BasicTilesInitializer.

Моим решением было очистить каталог развертывания на интегрированном сервере Tomcatзатем повторно разверните приложение.В первый раз, когда я переустанавливал, lib dir моего приложения показывал только две банки.Поэтому после очистки и повторного развертывания он получил все необходимые баночки, и теперь мое приложение снова запускается.Пойди разберись.

0 голосов
/ 05 октября 2016

Для плиток 3 вы должны добавить

iles-request.jar, commons-digester.jar

0 голосов
/ 14 сентября 2013

Проверьте, находятся ли следующие jar-файлы в пути к классам приложения:

  1. commons-beanutils
  2. commons-digester
  3. log4j
  4. slf4j-api
  5. slf4j-log4j12
  6. плитка-API
  7. плитка-ядро
  8. плитка-jsp
  9. плитка-сервлет
  10. tile-template

Версия фишек зависит от версии Spring MVC.Например, если используется Spring MVC 3.2.3 (org.springframework.web.servlet.view.tiles3.TilesConfigurer), то требуются 3 плитки банок.

0 голосов
/ 02 мая 2013

У меня была такая же проблема, при использовании плиток версии 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 голосов
/ 29 декабря 2012

Я мог решить эту проблему только после добавления зависимости, которая должна быть предоставлена ​​во время компиляции в моем POM

<scope>compile</scope>
0 голосов
/ 27 мая 2011

Если вы используете STS и создали свой проект с использованием проекта шаблона Spring (например, MVC), то вы ничего не добавляете в каталог lib. Вместо этого вы изменяете конфигурационный файл pom.xml maven.

...