1

我在同一台服务器上部署了几个 Web 应用程序。我想从 app2 访问 app1 中有一个 JSP。我在 tomcat 中启用了跨上下文访问并尝试了这个 JSTL 标记:

<c:import url="/pages/myJSP.jsp" context="/app1" />

使用myJSP.jsp一些 struts2 标签本身。

我还确保所需的库位于 app1 和 app2 的 lib 目录中。但是在运行时,app2 的页面不会呈现,我看到了这个错误:

引起:java.lang.ClassCastException:com.opensymphony.xwork2.ognl.OgnlValueStack 无法在 org.apache.struts2.views.jsp.TagUtils.getStack(TagUtils.java: 53) 在 org.apache.struts2.views.jsp.StrutsBodyTagSupport.getStack(StrutsBodyTagSupport.java:44) 在 org.apache.struts2.views.jsp.ComponentTagSupport.doStartTag(ComponentTagSupport.java:48)

知道为什么吗?如果我将 jsp 复制到 app2 并使用相同的 c:import 标签引用它,它就可以正常工作!

4

1 回答 1

1

你不应该做这样的事情。Web 应用程序受到保护并相互隔离,以便在同一个容器中运行。有关进一步的描述和说明,请参阅指南。

如果要共享来自不同模块的资源,则需要在构建时复制它们。

于 2013-05-01T09:09:30.220 回答