Java ApplicationException无法转换为Throwable
我正在编写一个在Oracle Web Logic Server上运行的Java EE应用程序,我需要扩展ApplicationLifeCycleStener类,以创建自己的侦听器类,以便在启动应用程序之前分析一些系统变量。如果在初始分析过程中出现问题,我必须阻止应用程序的启动 这是我的密码:Java ApplicationException无法转换为Throwable,java,netbeans,weblogic,Java,Netbeans,Weblogic,我正在编写一个在Oracle Web Logic Server上运行的Java EE应用程序,我需要扩展ApplicationLifeCycleStener类,以创建自己的侦听器类,以便在启动应用程序之前分析一些系统变量。如果在初始分析过程中出现问题,我必须阻止应用程序的启动 这是我的密码: import weblogic.application.ApplicationException; import weblogic.application.ApplicationLifecycleEvent
import weblogic.application.ApplicationException;
import weblogic.application.ApplicationLifecycleEvent;
import weblogic.application.ApplicationLifecycleListener;
public class WebLogicListener extends ApplicationLifecycleListener {
@Override
public void preStart(ApplicationLifecycleEvent ale) throws ApplicationException {
//...
}
}
方法PressStart重写了一个超类方法,但此时我在部署EAR文件时出现了一个运行时错误,这个错误是“不兼容的类型:ApplicationException无法转换为Throwable”。IDE(NetBeans 8)也会通知此错误,但它不会阻止EAR的编译
如果我浏览库(wls api.jar)并查看ApplicationException类,我会看到它扩展了weblogic.utils.ErrorCollectionException,该类可以在。无论如何,如果在我的代码中尝试导入类ErrorCollectionException,则我有以下不同的包:
import weblogic.management.utils.ErrorCollectionException;
这是可行的,但我不能使用它,因为我需要引发ApplicationException来重写该方法,并在出现错误时停止应用程序
我的环境:
- jdk 1.6.0_45
- WebLogic服务器版本10.3.6.0
- NetBeans 8
任何人都可以提供帮助?文档中没有提到应用程序LifecycleListener#启动前方法签名中的throws-子句:事实上,如果我在没有throws子句的情况下重写该方法,它就可以工作,但我不理解为什么超类在方法签名中有这个throws子句,但在没有它的情况下它仍然可以工作。我认为错误“不兼容类型:ApplicationException无法转换为Throwable”意味着不同的东西。无论如何,我也可以在不使用ApplicationException的情况下使用该方法,但主要问题是:如果出现错误,我如何通知应用程序不要启动,而不引发任何异常?您所说的“我必须阻止启动”是什么意思。你有时间问题吗?如果是这样的话,有比你建议做的更简单的方法。我的意思是,我必须停止应用程序,以便在启动阶段出现错误时,没有人可以使用它。无论如何,这似乎是NetBeans的一个问题。