[Seasar-user:7906] Re: [Seasar,Teeda]Session 破棄時のセッションDto参照で例外発
Yasuo Higa
[E-MAIL ADDRESS DELETED]
2007年 5月 29日 (火) 20:13:47 JST
ひがです。
> 小林 (koichik) です.
>
> 回避策としては,sessionDestroyed() メソッドの中で
> 外部コンテキストを設定するのが適当だと思いますが,
> 少々手間がかかります.
>
> 後は sessionDestroyed() メソッドの中で外部コンテキストの
> 設定を行います.
>
> public void sessionDestroyed(HttpSessionEvent se) {
> S2Container container = SingletonS2ContainerFactory.getContainer();
> ExternalContext externalContext = container.getExternalContext();
> if (externalContext == null) {
> throw new EmptyRuntimeException("externalContext");
> }
> externalContext.setRequest(new MyServletRequest(se.getSession()));
> try {
> //本来の処理
> } finally {
> externalContext.setRequest(null);
> }
> }
>
手動でDIする方法もあります。
public void sessionDestroyed(HttpSessionEvent se) {
S2Container container = SingletonS2ContainerFactory.
getContainer();
HogeService hogeService = (HogeService)
container.getComponent(HogeService.class);
HogeDto hogeDto = (HogeDto)
container.getComponent(HogeDto.class);
hogeService.setHogeDto(hogeDto);
hogeService.someMethod();
}
--
Yasuo Higa
[E-MAIL ADDRESS DELETED]
Seasar-user メーリングリストの案内