2011-04-27 5 views
0

안녕하세요. jsf에 새로 온 것입니다. 그렇다면 이것이 가난한 질문 인 경우 사과드립니다. 저는 현재 기본적인 애플리케이션 데이터를 얻기 위해 웹 서비스를 통해 데이터베이스에 액세스해야하는 학교 프로젝트에 참여하고 있습니다. 메서드를 통해이 데이터에 액세스 한 다음 데이터베이스에서 최신 결과를 반환하는 클래스가 있습니다.시간 간격으로 애플리케이션 빈에서 데이터베이스를 폴링하는 JSF

내가 원하는 것은 데이터베이스에서 update 메소드를 호출하는 스레드를 생성하는 것입니다. run 메소드는 이와 유사하게 보입니다. 여기에서 애플리케이션 bean을 얻은 다음 그 애플리케이션의 refresh 메소드를 호출합니다.

theFacesContext = FacesContext.getCurrentInstance();
ApplicationBean app = (ApplicationBean)theFacesContext.getELContext().getELResolver().getValue(theFacesContext.getELContext(), null, applicationbean);
app.getDBValues();

스레드는 다음 루프 응용 프로그램 콩이 파괴되었을 때 false로 설정 될 변수를 기반으로한다. 내 오류 스레드가 facescontext 느슨한 것입니다. 나는 사람들이 요청한 스레드를 유지해야하는 라인에 대해 뭔가 말하고있는 게시물을 보았습니다.하지만 그게 무슨 뜻인지는 잘 모르겠습니다. 어떤 제안이라도 도움이 될 것입니다.

답변

0

FacesContext은 (는) 새로운 스레드에서 사용할 수 없습니다. 이것은 ThreadLocal에 저장되고 요청 당 시작되기 때문입니다.

원하는 콩을 가져 와서 새 스레드에 전달할 수 있으므로 더 이상 거기의 얼굴 컨텍스트에 의존하지 않게됩니다.

관련 문제