2013-09-05 47 views
1

在weblogic-appliations.xml中添加侦听器“ADFApplicationStateListener”后,获取NoClassDefFoundError。将应用程序部署到Weblogic服务器时获取“java.lang.NoClassDefFoundError:weblogic/application/ApplicationStateListener”

早期的weblogic-applications.xml具有监听器“ADFApplicationLifecycleListener”。我能够用这个侦听器部署应用程序。 但是,根据下面链接中JDeveloper文档的“自定义ADF应用程序部署要求”中指定的要求,我已使用“ADFApplicationStateListener”侦听器进行了配置。
http://www.oracle.com/technetwork/developer-tools/jdev/documentation/121200-rn-1917713.html

如何解决此错误?

谢谢,
Gopal。

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) 

回答

2

ApplicationStateListener是在WebLogic Server介绍如下错误修正的一部分: -

这里的错误是没有回调清理ADF资源,同时停止在WebLogic服务器的应用程序。 实际上,ApplicationLifecycleListener的postStop()方法将在删除或取消部署应用程序时执行此操作。

但是,当应用程序只需要重新启动时,即停止应用程序并重新启动(无需取消部署&),则不会回调ADF MDS相关资源清理。 因此,ApplicationStateListener被引入以在停止应用程序时对资源清理进行回调。

我的Weblogic服务器(版本10.3.6.0)不适用于具有上述错误修复的修补程序(修补程序56MM)。

所以,如果想继续使用ApplicationStateListener,我必须应用该补丁,否则我必须继续使用ApplicationLifecycleListener。

相关问题