WebLogic 11gR1 </bean:cookie>上的Struts <bean:cookie>标记中断

时间:2010-09-20 15:59:50

标签: java cookies struts weblogic classloader

我正在尝试在 WebLogic 11gR1 上部署一个非常简单的 Struts 应用。该应用程序有一个名为Welcome.jsp的JSP,该JSP包含以下标记:

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

使用以下行将关联的taglib导入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"/>

这些标签工作得很好。

要完成, Struts ActionServlet也在使用该应用程序。

我猜测必须存在类加载问题,但我不明白为什么 Struts ActionServlet正在运行:javax.servlet.http.Cookiejavax.servlet.http.HttpServlet是在同一个包中声明。

也许,WebLogic中的Cookie类的Oracle实现存在问题,但这种可能性很小。

感谢。

1 个答案:

答案 0 :(得分:1)

javax.servlet.http.Cookie是一个界面,显示了实现Servlet API的人需要实现的结构。

问题可能在于您的WebLogic 11gR1配置/ libary:我将使用Tomcat 7.0进行解释。

在Tomcat 7.0中,在TOMCAT_HOME/lib文件夹下,有一个servlet-api.jar。该jar允许Tomcat支持Java Servlet API规范(并且在目录中包含Cookie.class,在javax / servlet / Cookie下)。

您的WebLogic 11gR1必须具有符合Servlet API的Servlet容器库(如Tomcat的servlet-api.jar)。我从来没有使用过WebLogic,但如果你有一个lib文件夹(显然是WL_HOME/server/lib),请确保某处有一个servlet api(我认为weblogic.jar包含servlet api实现)。

另外,请检查WAR文件中没有类似servlet的servlet(例如servlet-api.jar,eclipse servlet jar等),因为它可能与WebLogic的servlet库冲突。