WebLogic 9.2:java.lang.NoClassDefFoundError:javax / el / ValueExpression

时间:2012-05-29 19:21:06

标签: jstl weblogic9.x

我在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)

1 个答案:

答案 0 :(得分:3)

您的webapp显然包含JSTL 1.2库。 JSTL 1.2需要Servlet 2.5 / JSP 2.1。提到的missing class是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。因此,您不需要在Web应用程序中捆绑任何JSTL库。因此,要解决此特定问题,您只需要从webapp 删除 JSTL 1.2库(如果适用,还可以将web.xml更改为符合Servlet 2.4而不是Servlet 2.5) 。然后,webapp将使用Weblogic捆绑的JSTL 1.1。