Подтвердить что ты не робот

Spring 3 ошибки MVC и Apache Tiles 2 Integration Error

Я пытаюсь интегрировать 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 будет ссылаться на правильный класс, но это не так, и я все равно получаю ту же ошибку.

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

4b9b3361

Ответ 1

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

Ответ 2

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

Ответ 3

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

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

Ответ 4

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

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

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

Ответ 5

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

Ответ 6

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

<scope>compile</scope>

Ответ 7

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

Ответ 8

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

  • Викисклада BeanUtils
  • Обще-варочный
  • log4j
  • SLF4J-апи
  • SLF4J-log4j12
  • плитка-апи
  • плитка-ядро
  • плитка-JSP
  • плитка-сервлет
  • плитка-шаблон

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

Ответ 9

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

плитки-request.jar, Обще-digester.jar