【发布时间】:2012-01-09 18:45:22
【问题描述】:
在我的时区下午好。
我正在开发一个已经投入生产一年多的项目,应用程序服务器运行的是 J2EE 1.3 版本。现在我正在尝试使用 apache tile 框架将内容与布局分开。该项目在WEB-INF/lib 实现 STRUTS 框架的以下库 -struts1.2.6 -struts-core-1.3.10 -struts-extras-1.3.10.jar -struts-taglib-1.3.10.jar
在这个介绍之后,我的噩梦开始了: 1) 要配置 Tiles,我将以下代码添加到我的 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-core-1.3.8.jar 以及 struts.jar。正是因为如此,才引发了异常。 struts.jar 具有 forwardConfig 类和 getContextRelative() 方法。 struts-core-1.3.8.jar 有 forwardConfig 类,但没有 getContextRelative() 方法。 这导致了这个问题。 因此删除 struts.jar 以便使用 1.3.8 版本。 -- 另外添加struts-extras-1.3.8.jar到应用程序库
就像我在乞讨中所说的那样,我有两个相同的库,唯一的问题是,struts.jar 库有tile 包,struts-core-1.3.8 没有那个包。 那么我应该怎么做,在这个应用程序中运行图块?
很抱歉问题扩展,但我必须解释所有情况。 最好的祝福 提前感谢任何试图帮助我的人
【问题讨论】:
-
您要运行哪个版本的 Tiles?你为什么要结合 Struts 1.2.6 和 Struts 1.3.10?!首先,选择一个 Struts 版本。