この状況は、Web アプリケーションで Spring をバージョン 2.1 から Spring 3.0.x にアップグレードしようとしたときに発生しました。Spring 3.0.x は struts-tiles 1.3 をサポートしていません。Apache Tiles 2.x が必要です。そのため、Struts-Tiles 1.3 を Apache Tiles 2.x にアップグレードする必要もあります。Apache tiles にはこの移行ガイドがあり、この作業に役立ちました。ただし、移行ガイドには記載されていない壁にぶつかったようです。詳細は次のとおりです。
これは、使用していた tilesConfigurer です。
<bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles.TilesConfigurer">
<property name="factoryClass">
<value>org.apache.struts.tiles.xmlDefinition.I18nFactorySet</value>
</property>
<property name="definitions">
<list>
<value>/WEB-INF/tiles-defs.xml</value>
</list>
</property>
</bean>
このクラスtiles.TilesConfigurer
はSpring 3.0.xで非推奨になったため、使用するように変更しましたorg.springframework.web.servlet.view.tiles2.TilesConfigurer
現在廃止されている tiles.TilesConfigurer とは異なり、 にはメソッドがありませんtiles2.TilesConfigurer
。setFactoryClass(..)
したがって、Bean の初期化が失敗します。
tiles2.TilesConfigurer
私はapiを調べました。これには現在メソッドがsetDefinitionsFactoryClass(..)
あり、setPreparerFactoryClass(..)
. ここでどれが関連しているかを判断できないだけでなく、 に相当するクラスが見つかりませんorg.apache.struts.tiles.xmlDefinition.I18nFactorySet
。Tiles 2.2 で直接利用できるこのようなものはありますか、それとも Tiles 2.2 で利用できる同等のものを使用して、既存のコードの一部を再検討する必要がありますか?
任意のポインタをいただければ幸いです。