1

我在 Windows XP Professional 上运行 WebLogic 9.2。

部署我的“acme”webapp (acme.war) 时出现以下错误。但是,将相同的 acme.war 部署到 Tomcat 6 或 7 时我没有问题。

在谷歌搜索之间,我相信原因可能是 weblogic 有一些过时的库。

如果能帮助我识别这些库以及将它们存放到哪个 weblogic 目录,我将不胜感激。

提前非常感谢。

Error 500--Internal Server Error

java.lang.NoClassDefFoundError: javax/el/ValueExpression
    at org.apache.taglibs.standard.tag.common.core.SetSupport.doEndTag(SetSupport.java:155)
    at jsp_servlet._jsp.__header._jsp__tag12(__header.java:610)
    at jsp_servlet._jsp.__header._jsp__tag11(__header.java:575)
    at jsp_servlet._jsp.__header._jsp__tag2(__header.java:271)
    at jsp_servlet._jsp.__header._jspService(__header.java:145)
    at weblogic.servlet.jsp.JspBase.service(JspBase.java:34)
    at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
    at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:283)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:175)
    at weblogic.servlet.internal.RequestDispatcherImpl.invokeServlet(RequestDispatcherImpl.java:530)
    at weblogic.servlet.internal.RequestDispatcherImpl.include(RequestDispatcherImpl.java:459)
    at weblogic.servlet.jsp.PageContextImpl.include(PageContextImpl.java:159)
    at jsp_servlet._jsp.__login._jspService(__login.java:77)
    at weblogic.servlet.jsp.JspBase.service(JspBase.java:34)
    at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
    at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:283)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:175)
    at weblogic.servlet.internal.RequestDispatcherImpl.invokeServlet(RequestDispatcherImpl.java:530)
    at weblogic.servlet.internal.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:266)
    at org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:238)
    at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:262)
    at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1180)
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:950)
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852)
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)
    at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:778)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:743)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
    at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
    at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:283)
    at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
    at gov.noaa.nsd.controller.security.AuthenticationFilter.doFilter(AuthenticationFilter.java:83)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3270)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
    at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2019)
    at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:1925)
    at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1394)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:181)
4

1 回答 1

3

您的 webapp 显然包含 JSTL 1.2 库。JSTL 1.2 需要 Servlet 2.5 / JSP 2.1。提到的缺失类是 JSP/EL 2.1 的一部分。然而,Weblogic 9.2 是一个旧的 Servlet 2.4 / JSP 2.0 容器(Tomcat 6 是一个 Servlet 2.5 容器,而 Tomcat 7 是一个 Servlet 3.0 容器)。

事实上,在部署到 Servlet 2.4 容器时,您应该使用 JSTL 1.1。但是 Weblogic 本身作为一个“成熟的”Java EE 应用服务器已经捆绑了 JSTL。所以你不需要在你的 webapp 中捆绑任何 JSTL 库。因此,要解决这个特殊问题,您只需从您的 webapp中删除web.xmlJSTL 1.2 库(如果适用,还可以将其更改为 Servlet 2.4 兼容而不是 Servlet 2.5 兼容)。然后,webapp 将使用 Weblogic 捆绑的 JSTL 1.1。

于 2012-05-30T02:44:16.120 回答