2013-05-01 36 views
1

我有幾個Web應用程序部署在同一臺服務器上。 app1中有一個我想從app2訪問的JSP。我能在tomcat交叉背景下訪問並試用了此JSTL標籤:Struts2跨上下文JSP訪問使用c:import拋出ClassCastException

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

myJSP.jsp使用了一些Struts2的標籤本身。

我還確保所需的庫位於app1和app2的lib目錄中。在運行期間,雖然,app2的頁面不會呈現,我看到這個錯誤:

Caused by: java.lang.ClassCastException: com.opensymphony.xwork2.ognl.OgnlValueStack cannot be cast to com.opensymphony.xwork2.util.ValueStack at org.apache.struts2.views.jsp.TagUtils.getStack(TagUtils.java:53) at org.apache.struts2.views.jsp.StrutsBodyTagSupport.getStack(StrutsBodyTagSupport.java:44) at org.apache.struts2.views.jsp.ComponentTagSupport.doStartTag(ComponentTagSupport.java:48)

任何想法爲什麼?如果我將jsp複製到app2並使用相同的c:import標記引用它,則它工作得很好!

回答

1

你不應該這樣做。 Web應用程序相互保護並隔離,以在同一個容器中運行。有關詳細說明和說明,請參閱this指南。

如果你想共享來自不同模塊的資源,你需要在構建時複製它們。

+0

如何在構建時複製它們? maven是否有這個選項? – mystarrocks 2013-05-01 09:17:02

+0

使用Ant你可以做到這一點,還有一個Maven與Ant集成的選項。 – 2013-05-01 09:21:04

+0

似乎無法找到任何參考,得到一個? – mystarrocks 2013-05-01 09:25:05

相關問題