0

レンダリングされたタグで使用する (JSP ベースの) カスタム EL 関数を作成しました。この関数はブール値を返し、ページ コンポーネントをページにレンダリングする必要があるかどうかを決定します。<%@ taglib uri = "/WEB-INF/mine.tld" prefix = "g" %> を使用して jsp ページにインポートします。

すべてが jsp ページの最初のロードで完璧に機能します。ボタンをクリックすると、フォームが送信され、「クラスローダーが見つかりません: EL 関数を実装するクラス」や「関数が見つかりません」などのエラーが発生します。ここで何が起こっているのですか?何が修正されますか?


関数を実装するクラス (com.util.WebContextLoader) は、ユーティリティ クラスとして戦争に含まれます。

以下はスタックトレースです。

09:22:31,112 ERROR [STDERR] java.lang.ClassNotFoundException: No ClassLoaders found for: com.util.WebContextLoader
09:22:31,112 ERROR [STDERR]     at org.jboss.mx.loading.LoadMgr3.beginLoadTask(LoadMgr3.java:212)
09:22:31,112 ERROR [STDERR]     at org.jboss.mx.loading.RepositoryClassLoader.loadClassImpl(RepositoryClassLoader.java:521)
09:22:31,112 ERROR [STDERR]     at org.jboss.mx.loading.RepositoryClassLoader.loadClass(RepositoryClassLoader.java:415)
09:22:31,112 ERROR [STDERR]     at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
09:22:31,112 ERROR [STDERR]     at java.lang.Class.forName0(Native Method)
09:22:31,112 ERROR [STDERR]     at java.lang.Class.forName(Class.java:169)
09:22:31,112 ERROR [STDERR]     at org.apache.el.lang.FunctionMapperImpl$Function.getMethod(FunctionMapperImpl.java:147)
09:22:31,112 ERROR [STDERR]     at org.apache.el.lang.FunctionMapperImpl.resolveFunction(FunctionMapperImpl.java:53)
09:22:31,112 ERROR [STDERR]     at org.apache.el.parser.AstFunction.getValue(AstFunction.java:71)
09:22:31,112 ERROR [STDERR]     at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
09:22:31,112 ERROR [STDERR]     at org.apache.jasper.el.JspValueExpression.getValue(JspValueExpression.java:101)
09:22:31,112 ERROR [STDERR]     at javax.faces.component.UIComponentBase.isRendered(UIComponentBase.java:390)
09:22:31,112 ERROR [STDERR]     at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1018)
09:22:31,112 ERROR [STDERR]     at javax.faces.component.UIForm.processDecodes(UIForm.java:209)
09:22:31,112 ERROR [STDERR]     at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1026)
09:22:31,112 ERROR [STDERR]     at javax.faces.component.UIViewRoot.processDecodes(UIViewRoot.java:540)
09:22:31,112 ERROR [STDERR]     at com.sun.faces.lifecycle.ApplyRequestValuesPhase.execute(ApplyRequestValuesPhase.java:78)
09:22:31,112 ERROR [STDERR]     at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
09:22:31,112 ERROR [STDERR]     at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
09:22:31,112 ERROR [STDERR]     at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265)
09:22:31,112 ERROR [STDERR]     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
09:22:31,112 ERROR [STDERR]     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
09:22:31,112 ERROR [STDERR]     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
09:22:31,112 ERROR [STDERR]     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
09:22:31,112 ERROR [STDERR]     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
09:22:31,112 ERROR [STDERR]     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
09:22:31,112 ERROR [STDERR]     at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
09:22:31,112 ERROR [STDERR]     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
09:22:31,112 ERROR [STDERR]     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
09:22:31,112 ERROR [STDERR]     at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
09:22:31,112 ERROR [STDERR]     at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
09:22:31,112 ERROR [STDERR]     at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:182)
09:22:31,112 ERROR [STDERR]     at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:432)
09:22:31,112 ERROR [STDERR]     at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
09:22:31,112 ERROR [STDERR]     at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
09:22:31,112 ERROR [STDERR]     at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
09:22:31,112 ERROR [STDERR]     at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
09:22:31,112 ERROR [STDERR]     at org.apache.catalina.authenticator.SingleSignOn.invoke(SingleSignOn.java:420)
09:22:31,112 ERROR [STDERR]     at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
09:22:31,112 ERROR [STDERR]     at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262)
09:22:31,112 ERROR [STDERR]     at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
09:22:31,112 ERROR [STDERR]     at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
09:22:31,112 ERROR [STDERR]     at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446)
09:22:31,112 ERROR [STDERR]     at java.lang.Thread.run(Thread.java:619)


09:22:31,112 WARN  [lifecycle] org.apache.jasper.el.JspELException: /register.jsp(45,2) '#{g:displayPageComponent('registrationPage', 'regUnit')}' Function 'g:displayPageComponent' not found
javax.faces.FacesException: org.apache.jasper.el.JspELException: /register.jsp(45,2) '#{g:displayPageComponent('registrationPage', 'regUnit')}' Function 'g:displayPageComponent' not found
    at javax.faces.component.UIComponentBase.isRendered(UIComponentBase.java:393)
    at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1018)
    at javax.faces.component.UIForm.processDecodes(UIForm.java:209)
    at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1026)
    at javax.faces.component.UIViewRoot.processDecodes(UIViewRoot.java:540)
    at com.sun.faces.lifecycle.ApplyRequestValuesPhase.execute(ApplyRequestValuesPhase.java:78)
    at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
    at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
    at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:182)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:432)
    at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
    at org.apache.catalina.authenticator.SingleSignOn.invoke(SingleSignOn.java:420)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446)
    at java.lang.Thread.run(Thread.java:619)
Caused by: org.apache.jasper.el.JspELException: /register.jsp(45,2) '#{g:displayPageComponent('registrationPage', 'regUnit')}' Function 'g:displayPageComponent' not found
    at org.apache.jasper.el.JspValueExpression.getValue(JspValueExpression.java:107)
    at javax.faces.component.UIComponentBase.isRendered(UIComponentBase.java:390)
    ... 34 more
4

2 に答える 2

0

java.lang.ClassNotFoundException:次のClassLoaderが見つかりません:com.util.WebContextLoader

com.util.WebContextLoader関数クラスには、直接のクラスパス近傍では使用できないと呼ばれる依存関係があるようです。

これが断続的に発生するということは、クラスパスが、異なるクラスローダーによってロードされたクラスパス全体に広がる重複したクラス/ライブラリで汚染されていることを示しています。クラスパスのクリーンアップを開始します。JRE/libJRE/lib/extおよびのすべてのWebアプリケーション固有のクラス/ライブラリを削除しserver/libます。

于 2010-04-23T16:11:29.477 に答える
0

私はこれらのスレッドでこの問題の解決策を見つけました。

http://community.jboss.org/message/46380

http://community.jboss.org/message/46385

解決策は、pomに次の依存関係を追加して、戦争の/ web-inf/libフォルダーにjasper-el-6.0.18.jarをドロップすることです。

org.apache.tomcat jasper-el 6.0.18

この依存関係には、「el-api-6.0.18.jar」も含まれます(http://repo1.maven.org/maven2/org/apache/tomcat/jasper-el/6.0.18/jasper-el-6.0を参照)。 18.pom)、除外する必要があります。

于 2010-07-30T14:47:17.827 に答える