2012-01-09 13 views
1

私のタイムゾーンでは午後が楽です。Apache Tilesを使用してください

私は1年以上実稼働しているアプリケーションサーバーでJ2EE 1.3バージョンを実行しています。現在、レイアウトからコンテンツを分離するためにApache Tilesフレームワークを使用しようとしています。 STRUTSフレームワークを実装する以下のライブラリ -struts1.2.6 -struts-core-1.3.10 -struts-extras-1.3.10.jar -struts-taglib-1.3.10のWEB-INF/libにあります。私の悪夢が始まっこの導入後

をjarファイル:私は私に次のコードを追加したタイル設定するには 1)ストラットを-config.xmlの:

<action path="/tilesTest" 
     parameter="aDef" 
     type="org.apache.struts.actions.ForwardAction" /> 

<controller processorClass="org.apache.struts.tiles.TilesRequestProcessor" /> 

    <plug-in className="org.apache.struts.tiles.TilesPlugin" > 
    <set-property property="definitions-config" value="/WEB-INF/tilesdefs.xml" /> 
    <set-property property="moduleAware" value="true" /> 
    </plug-in> 

'aDef'パラメータは、tilesdefs.xmlで定義されています。 私は、ブラウザでのアクションを呼び出すと、それは私に次の例外がスローされます。

java.lang.NoSuchMethodErrorの:org.apache.struts.config.ForwardConfig.getContextRelative()Z org.apache.struts.tiles .TilesRequestProcessor.processForwardConfig(TilesRequestProcessor.java:289)

は、調査の後、私は次のように言って、ポストを見つけました:

はストラットコア-1.3.8.jarを見つけるだけでなく、するアプリケーションのlibフォルダをチェックstruts.jar。このため例外がスローされたためです。 struts.jarにはforwardConfigクラスとgetContextRelative()メソッドがあります。 struts-core-1.3.8.jarにはforwardConfigクラスがありますが、getContextRelative()メソッドはありません。 これは問題を引き起こしていました。 したがって、1.3.8のバージョンが使用されるようにstruts.jarを削除してください。 は - 私は、同じ2つのlibsを持って物乞いで語ら同様さらにアプリケーションのlib

に支柱-エキストラ-1.3.8.jarを追加し、唯一の問題は、それが持ってはstruts.jar libにありますタイルパッケージ、struts-core-1.3.8はそのパッケージを持っていません。 このアプリケーションでタイルを実行するにはどうすればよいですか?

申し訳ありませんが質問の拡張子が、私はすべての状況を説明する必要があります。 よろしくお願いします。 私を助けようとしている人にアドバイスをお願いします。

+1

実行しようとしているタイルのバージョンは何ですか?なぜあなたはStruts 1.2.6とStruts 1.3.10を組み合わせようとしていますか?まず、Strutsのバージョンを選択します。 –

答えて

2

クラスパスを修正しました。クラスパスに2つの異なるバージョンのStrutsを用意するのはあまり意味がありません。 Struts 1.3.10のタイルクラスは、struts-tiles-1.3.10.jarにstruts-1.3.10とバンドルされています。

関連する問題