2012-05-25 55 views
0

我正嘗試將項目遷移到weblogic 10.3(jdev 11g)。該項目運行成功,我唯一需要做的就是更新構建腳本,創建耳朵並將其上傳到服務器。遷移到jdev 11g時出現jstl錯誤

但奇怪的是,代碼突然停止工作。要麼它不能找到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 1.1/1.2:在遷移大多數項目時,我確實可以使用此選項來升級jstl。可能這個項目已經在使用最新的jstl。

回答

0

WebLogic已經捆綁了JSTL。部署到WebLogic時,webapp不需要捆綁它。這個特殊的異常表明你的web應用依然依然捆綁JSTL,它的版本比WebLogic提供的版本舊。

您需要刪除從您的webapp的/WEB-INF/lib文件夾中的任何JSTL庫。這包括jstl.jarstandard.jarjstl-api.jarjstl-impl.jar,具體取決於版本。

相關問題