2

我在 jboss 4.2.3 上部署了一个 java webapp,它曾经使用 Struts 2.0 库。我最近将它升级到 Struts 2.3.4 并更新了所有代码以使用新版本。

在我的本地工作站上,我开始收到错误,这些错误涉及我删除的依赖于旧版本 Struts 的代码。当我清除位于以下位置的 JBoss 预编译 JSP 文件夹的内容时,这些错误消失了:

jboss\server\<name_of_my_instance>\work\jboss.web\localhost\_\org\apache\jsp

今天,我将新版本部署到我们的生产网络服务器。我清除了 JSP 预编译目录(如上所列)的内容并重新启动了网络服务器。

每当用户访问我修改以删除 Struts 2.0 标记(并用 Struts 2.3.4 替换它们)的页面时,他们都会收到关于 Struts 无法找到 Struts 2.0 文件的服务器错误。我无法在我的本地实例上重现这些错误。

有没有人对我的本地和生产网络服务器之间的配置不同有任何想法?如何强制生产服务器读取我部署的新 webapp?

注意 - 我使用的是展开部署(不是 WAR),有问题的页面使用包含文件。这是一个例子:

myInclude.inc

<s:if test="%{userIsAdmin}">
    <%-- Show some toolbar --%>
</s:if>

我的文件.jsp

<%@ include file="myInclude.inc"%>

访问 myFile.jsp 会产生堆栈跟踪,因为 JBoss 似乎没有检测到 myInclude.inc 文件已更改。旧版本的 myInclude.inc 依赖于旧的 Struts 2.0,而新版本不依赖。

4

1 回答 1

0

我真的想通了。我的部署过程被破坏了,包含文件实际上并没有发送到网络服务器。

于 2012-08-07T21:55:27.850 回答