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 が正しいクラスを参照すると思いましたが、そうではなく、同じエラーが発生します。
次の構成を使用して、SpringMVCアプリでタイルをセットアップしています。
<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>
理想的には、Spring3.0.5をTiles2.2.2で動作させたいと思います。これらは、この投稿の時点での最新バージョンです。
_org.Apache.tiles.startup.BasicTilesInitializer
_はtiles-core(2.2.1).jar
のクラスです。 _tiles-core
_ jarをデプロイしたことを確認してください
タイル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>
古いスレッドを復活させたことをお詫びするつもりはありません。
EclipseHeliosにSpringMVCプロジェクトが組み込まれています。
Heliosを数日間シャットダウンしてから、今日再開しました。アプリを実行すると、上記と同じ例外が発生しました:Java.lang.NoClassDefFoundError:org/Apache/tiles/startup/BasicTilesInitializer。
私の解決策は、統合されたTomcatサーバーのデプロイディレクトリをクリーンアップしてから、アプリを再デプロイすることでした。初めて再デプロイしたとき、アプリのlibディレクトリには2つのjarしか表示されませんでした。そのため、クリーンアップして再度デプロイした後、必要なすべてのjarが取得され、アプリが再び実行されます。図に行きます。
タイルのバージョン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がアプリケーションのクラスパスにあるかどうかを確認します。
タイルjarのバージョンは、SpringMVCのバージョンによって異なります。例えば。 Spring MVC 3.2.3(org.springframework.web.servlet.view.tiles3.TilesConfigurer)を使用する場合は、タイル3のjarファイルが必要です。
STSを使用していて、Springテンプレートプロジェクト(MVCプロジェクトなど)を使用してプロジェクトを作成した場合は、libディレクトリに何も追加しません。代わりに、pom.xmlmaven構成ファイルを変更します。
POMでコンパイル時に提供される依存関係を追加した後でのみ、これを解決できました。
<scope>compile</scope>
タイル3の場合、追加する必要があります
tiles-request.jar、commons-digester.jar