it-swarm-ru.tech

Spring 3 MVC и Apache Tiles 2 Ошибка интеграции

Я пытался интегрировать 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. Они самые последние версии на этот пост.

13
Athens Holloway

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

10
Ralph

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

19
iowatiger08

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

<dependency>
     <groupId>org.Apache.tiles</groupId>
     <artifactId>tiles-servlet</artifactId>
     <version>2.2.2</version>
</dependency>  
8
Carlos

Я не собираюсь извиняться за возрождение несвежей темы.

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

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

1
J Slick

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

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

  1. викисклада BeanUtils
  2. обще-варочного
  3. log4j
  4. sLF4J-апи
  5. sLF4J-log4j12
  6. плитка-апи
  7. плитка-жильный
  8. плитка-JSP
  9. плитка-сервлет
  10. плитка-шаблон

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

0
Avinash Kadam

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

0
Gene De Lisa

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

<scope>compile</scope>
0
Manmohan

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

плитка-запрос.jar, Обще-digester.jar

0
Lokanad