2010-09-20 47 views
0

我正試圖部署一個非常簡單的Struts應用程序WebLogic 11gR1。該應用程序已經一個名爲JSP和Welcome.jsp中此JSP包含以下標籤:Struts <bean:cookie> WebLogic 11gR1上的分標符號中斷

<bean:cookie name="" id=""/> 

相關的標籤庫是在JSP的頂部使用以下行輸入:

<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %> 

當這種標籤是在JSP內部,我有以下錯誤:

Welcome.jsp:11:24: javax.servlet.http.Cookie cannot be resolved 
<body bgcolor="white"><bean:cookie name="" id=""/> 

但是,當我刪除此標記時,Welcome.jsp工作得很好。

的JSP包括其他標記,如:

<bean:message key="welcome.heading"/> 

這些標籤的工作就好了。

完成後,ActionServletStruts也正在工作,並從應用程序開始。

我猜,必須有一個類加載器的問題,但我不明白爲什麼Struts的ActionServlet工作:javax.servlet.http.Cookiejavax.servlet.http.HttpServlet在同一封裝聲明。

也許,WebLogic中Oracle的Cookie類的實現存在問題,但它不太可能。

謝謝。

+0

你是否有任何異常?如果是這樣,你能在這裏提供嗎? – 2010-09-21 15:14:46

回答

1

javax.servlet.http.Cookie是一個接口,顯示那些正在實現Servlet API的人需要實現的結構。

該問題可能與您的WebLogic 11gR1配置/庫文件有關:我將使用Tomcat 7.0進行解釋。

在Tomcat 7.0中,在TOMCAT_HOME/lib文件夾下,有一個servlet-api.jar。該jar允許Tomcat支持Java Servlet API規範(並且在javax/servlet/Cookie下的目錄中包含Cookie.class)。

您的WebLogic 11gR1必須具有符合Servlet API(如Tomcat的servlet-api.jar)的Servlet容器庫。我從來沒有使用WebLogic,但是如果你有一個lib文件夾(顯然是WL_HOME/server/lib),確保有一個servlet api(我認爲weblogic.jar包含servlet api實現)。

另外,請檢查您的WAR文件中是否包含類似servlet的servlet(例如servlet-api.jar,eclipse servlet jars等),因爲它可能會與WebLogic的servlet庫發生衝突。

+0

我已經檢查過我的WAR中沒有servlet庫(Maven scope:provided)。正如我在問題中所說的,WebLogic提供了一個帶有javax.servlet.http.Cookie和javax.servlet.http.HttpServlet的servlet庫,但它不能按預期工作。 – etiennepeiniau 2010-09-21 13:48:41

相關問題