this 토론에 설명 된 솔루션을 사용하여 BackgroundJobManager를 내 JSF bean 클래스의 내부 클래스로 구현했습니다. 또한 ABCTask (내부 클래스)를 BackgroundJobManager의 예약 된 시간에 실행되는 스레드로 만들었습니다. JSF 페이지에 메시지를 푸시해야한다는 요구 사항이 있지만 ABCTask 태스크 클래스에서 그렇게하면 NPE가 생성됩니다. 바깥 쪽 빈에 대해서도 똑같은 일이 일어납니다. 그래서이 클래스는이 내부 클래스와 빈의 컨텍스트와 관련이 있다고 확신합니다. 누군가가 이것을위한 해결책을 안다면 고맙겠습니다.관리 대상 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"));
}
엔 클로징 빈의 범위는 무엇입니까? 내부 클래스에 액세스하는 방법과 스택 추적은 어디에 있습니까? – kolossus