我已經使用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