0

プロジェクトを 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 を使用しています。

4

1 に答える 1

0

WebLogic はすでに JSTL がバンドルされた状態で出荷されています。Web アプリケーションは、WebLogic にデプロイするときにバンドルする必要はありません。この特定の例外は、Web アプリケーションに、WebLogic が提供するバージョンよりも古いバージョンの JSTL がバンドルされていることを示しています。

Web アプリケーションのフォルダーから JSTL ライブラリをすべて削除する必要があります。/WEB-INF/libこれには、バージョンに応じてjstl.jarandstandard.jarまたはjstl-api.jarandが含まれます。jstl-impl.jar

于 2012-05-28T20:18:13.340 に答える