我正在尝试在 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.Cookie
和javax.servlet.http.HttpServlet
是在同一个包中声明。
也许,WebLogic中的Cookie
类的Oracle实现存在问题,但这种可能性很小。
感谢。
答案 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库冲突。