2012-09-13 3 views
0

weblogic 서버에서 실행중인 내 스프링 웹 응용 프로그램에서 아래 코드를 사용하고 있습니다.requestcontextholder 동시 액세스

RequestContextHolder.getRequestContext() .getExternalContext().getNativeRequest()).getSession()

나는 RequestContextHolder가 시작하는 동안 requestContext을 저장하고 단계를 다시 시작 ThreadLocal를 사용하는 것을 알고있다.

이제는 한 스레드가 다른 스레드의 requestContext에 액세스 할 수있는 원격 가능성이 있습니다 (스레드가 웹 로직 또는 다른 이유로 인해 재사용 될 수 있음).

+0

마지막으로 스레딩 문제의 근본 원인을 찾았습니다. SWF 버전 (2.2.1)에 버그가있었습니다. ExpressionParser는 thread-safe [JIRA Link] (https://jira.springsource.org/browse/SWF-1437)가 아닙니다. SWF를 2.3.0으로 업그레이드하면이 문제가 해결됩니다. – Vinayak

답변

1

SWF 2.3.0으로 업그레이드하면 문제가 해결되었습니다 (스레드간에 공유 된 데이터) SWF 버전 (2.2.1)에 버그가있었습니다. ExpressionParser는 스레드로부터 안전하지 않습니다 (JIRA).

관련 문제