2013-09-05 46 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。

相關問題