迁移到jdev 11g时出现jstl错误

时间:2012-05-25 14:52:17

标签: jstl weblogic-10.x jdeveloper

我正在尝试将项目迁移到weblogic 10.3(jdev 11g)。该项目运行成功,我唯一需要做的就是更新创建ear的构建脚本并将其上传到服务器。

但奇怪的是,代码突然停止了工作。它无法找到jstl标记库,或者有多个版本的标记库。我努力但却无法解决它。我得到的错误是:

java.lang.NoSuchFieldError: deferredExpression
    at org.apache.taglibs.standard.tag.common.core.ForEachSupport.release(ForEachSupport.java:196)
    at jsp_servlet._login.__login._jspService(__login.java:350)
    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:300)
    at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at myFilters.loginFilter.doFilter(loginFilter.java:74)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:413)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at org.displaytag.filter.ResponseOverrideFilter.doFilter(ResponseOverrideFilter.java:125)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:111)
    at java.security.AccessController.doPrivileged(Native Method)
    at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:313)
    at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:413)
    at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:94)
    at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:161)
    at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:136)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3715)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3681)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
    at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2277)
    at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2183)
    at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1454)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)

提前致谢。我相信很多人在迁移时一定遇到过这个jstl问题。同时在导入代码时,我没有选择转到jstl 1.1 / 1.2:在迁移大多数项目时,我确实得到了升级jstl的选项。可能这个项目已经在使用最新的jstl。

1 个答案:

答案 0 :(得分:0)

WebLogic已经捆绑了JSTL。部署到WebLogic时,webapp不需要将其捆绑。此特殊异常表示您的webapp仍然捆绑了JSTL,其版本比WebLogic提供的版本旧。

您需要从webapp的/WEB-INF/lib文件夹删除任何JSTL库。这包括jstl.jarstandard.jarjstl-api.jarjstl-impl.jar,具体取决于版本。