在weblogic-appliations.xml中添加侦听器“ADFApplicationStateListener”后获取NoClassDefFoundError。
早期的weblogic-applications.xml有监听器“ADFApplicationLifecycleListener”。我能够使用此侦听器部署应用程序。 但是,根据以下链接中JDeveloper文档的“自定义ADF应用程序部署要求”部分中指定的要求,我已使用“ADFApplicationStateListener”侦听器进行了配置。 http://www.oracle.com/technetwork/developer-tools/jdev/documentation/121200-rn-1917713.html
如何解决此错误?
谢谢,
戈帕尔。
Caused by: java.lang.NoClassDefFoundError: weblogic/application/ApplicationStateListener
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:295)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
at weblogic.utils.classloaders.GenericClassLoader.loadClass(GenericClassLoader.java:179)
at weblogic.utils.classloaders.FilteringClassLoader.findClass(FilteringClassLoader.java:101)
at weblogic.utils.classloaders.FilteringClassLoader.loadClass(FilteringClassLoader.java:86)
at java.lang.ClassLoader.loadClass(ClassLoader.java:295)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
at weblogic.utils.classloaders.GenericClassLoader.loadClass(GenericClassLoader.java:179)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:247)
at weblogic.application.internal.flow.BaseLifecycleFlow$CreateListenerAction.run(BaseLifecycleFlow.java:140)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
at weblogic.application.internal.flow.BaseLifecycleFlow$BaseAction.invoke(BaseLifecycleFlow.java:104)
at weblogic.application.internal.flow.HeadLifecycleFlow.createListener(HeadLifecycleFlow.java:117)
答案 0 :(得分:2)
ApplicationStateListener作为以下错误修复的一部分在Weblogic服务器中引入: -
这里的错误是在weblogic服务器中停止应用程序时没有用于清理ADF资源的回调。 实际上,ApplicationLifecycleListener的postStop()方法将在删除或取消部署应用程序时执行此操作。
但是当应用程序只需要重新启动时,即停止应用程序并再次启动它(无需取消部署和部署),那么ADF MDS相关资源清理就没有回调。 因此,引入ApplicationStateListener以在停止应用程序时进行资源清理回调。
我的Weblogic服务器(版本10.3.6.0)未应用具有上述错误修复的补丁(补丁56MM)。
因此,如果要继续使用ApplicationStateListener,我必须应用补丁,否则我必须继续使用ApplicationLifecycleListener。