我已经使用this讨论中描述的解决方案来实现BackgroundJobManager作为我的JSF bean类内部的类。我还创建了一个ABCTask(也是一个内部类)作为将在BackgroundJobManager的预定时间运行的线程。我有一个要求将消息推送到JSF页面,但是从任务类ABCTask这样做会导致NPE。同样的事情对外部bean有效,所以我确信这与这个内部类和bean的上下文有关。如果有人知道这个解决方案,将不胜感激。显示来自管理bean的内部类的消息
我的内部类的代码如下:
public class ABCTask implements Runnable {
public ABCTask() {
}
@Override
public void run() {
setTimeoutOccuredFlag(true);
try {
if (getActiveControlledAgent().isEventLogRunning()) {
getActiveControlledAgent().setEventLogRunning(false);
}
printTimeoutMessage();
logger_o.fine("Now leaving the ABCTask ...");
} catch (Exception e) {
logger_o.error("An error while idling "+e.getMessage());
}
}
}
的$ printTimeoutMessage()如下:
void printTimeoutMessage() {
FacesUtils.addErrorMessage(MESSAGES.getString("common.timeoutOccured"));
}
封装bean的范围是什么,你如何试图访问内部类和堆栈跟踪在哪里? – kolossus 2013-03-12 18:01:54