2012-01-09 63 views
1

我的時區下午好。使用Apache Tiles

我正在生產一年以上的項目,應用服務器正在運行J2EE 1.3版本。現在我正嘗試使用apache tiles框架將內容從佈局中分離出來。在WEB-INF/lib中實現STRUTS框架的以下庫: -struts1.2.6 -struts-core-1.3.10 -struts-extras-1.3.10.jar -struts-taglib-1.3.10。罐子

此介紹我的噩夢開始後: 1)配置I下面的代碼添加到我的瓷磚struts-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)

調查後,我發現一個帖子說以下內容:

經過申請lib文件夾中找到的struts-核心1.3.8.jar以及的struts.jar。正因爲如此,拋出了異常。 struts.jar有forwardConfig類和getContextRelative()方法。 struts-core-1.3.8.jar有forwardConfig類,但沒有getContextRelative()方法。 這是造成這個問題。 因此刪除struts.jar以便使用1.3.8版本。 - 另外添加的struts-額外-1.3.8.jar到應用的lib

就像我在乞討,我有兩個相同的庫說,唯一的問題是,它是的struts.jar LIB有tiles包,struts-core-1.3.8沒有那個包。 那麼我想要做什麼,在這個應用程序中運行瓷磚?我不得不解釋所有情況。 致以問候 感謝任何試圖幫助我的人

+1

你試圖運行什麼版本的瓷磚?你爲什麼要把Struts 1.2.6和Struts 1.3.10結合起來?首先,選擇一個Struts版本。 – 2012-01-09 19:08:37

回答

2

修復您的類路徑。在classpath中有兩個不同版本的Struts沒有什麼意義。 Struts 1.3.10的tiles類是struts-tiles-1.3.10.jar與struts-1.3.10捆綁在一起的。