Ответ 1
org.apache.tiles.startup.BasicTilesInitializer
- класс tiles-core(2.2.1).jar
. Убедитесь, что вы развернули банку tiles-core
Я пытаюсь интегрировать 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. Это самые последние версии этого сообщения.
org.apache.tiles.startup.BasicTilesInitializer
- класс tiles-core(2.2.1).jar
. Убедитесь, что вы развернули банку tiles-core
Для плиток 3 используйте класс org.springframework.web.servlet.view.tiles3.TilesConfigurer
. Убедитесь, что у вас это в spring webmvc
.
Если вы используете maven, вы можете добавить эту зависимость, чтобы решить проблему:
<dependency>
<groupId>org.apache.tiles</groupId>
<artifactId>tiles-servlet</artifactId>
<version>2.2.2</version>
</dependency>
Я не собираюсь извиняться за оживление прочного потока.
У меня есть проект Spring MVC, построенный в Eclipse Helios.
Я закрыл Helios на несколько дней, а затем снова открыл его. Когда я запускал свое приложение, у меня было то же исключение, что и выше: java.lang.NoClassDefFoundError: org/apache/tiles/startup/BasicTilesInitializer.
Мое решение состояло в том, чтобы очистить каталог развертывания на интегрированном сервере Tomcat, а затем повторно развернуть приложение. В первый раз, когда я передислоцировался, в моем приложении lib dir было показано только две банки. Поэтому, после очистки и повторного развертывания, он получил всю необходимую банку, и теперь мое приложение снова запускается. Наведите указатель мыши.
Если вы используете STS и создали свой проект с использованием проекта шаблона spring (например, MVC one), вы ничего не добавляете в каталог lib. Вместо этого вы изменяете конфигурационный файл pom.xml maven.
Я мог бы решить это только после того, как я добавил зависимость, которая будет предоставлена во время компиляции в моем POM
<scope>compile</scope>
У меня была такая же проблема, используя версию 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>
Проверьте, находятся ли следующие классы jar на пути класса приложения:
Версия баннеров для плиток зависит от версии Spring MVC. Например. Если используется Spring MVC 3.2.3 (org.springframework.web.servlet.view.tiles3.TilesConfigurer), то необходимо использовать 3 баночки.
Для плиток 3 вы должны добавить
плитки-request.jar, Обще-digester.jar