在将应用程序部署到 Weblogic 服务器时获取"java.lang.NoClassDefFoundError: weblogic/application/ApplicationStateListe



在weblogic-appliations.xml中添加侦听器"ADFApplicationStateListener"后获得NoClassDefFoundError。

早期的weblogic应用程序.xml具有侦听器"ADFApplicationLifecycle Listener"。我能够使用此侦听器部署应用程序。但根据以下链接中 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)

ApplicationStateListener 作为以下错误修复的一部分引入 Weblogic 服务器:-

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

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

我的 Weblogic 服务器(版本 10.3.6.0)未应用于具有上述错误修复的补丁(补丁 56MM)。

因此,如果要继续使用 ApplicationStateListener,我必须应用补丁,否则我必须继续使用 ApplicationLifecycle Listener。

最新更新