Package nablarch.fw.web.httpserver
package nablarch.fw.web.httpserver
-
ClassesClassDescriptionJetty12対応の
HttpServerを生成するファクトリ実装クラス。Jetty12対応のHttpServerサブクラス。HttpSession.invalidate()の呼び出しを遅延させるFilter実装クラス。HttpRequestTestSupportHandlerでは、 テストクラスとJetty上で実行されるテスト対象間でのExecutionContextのコピーを行っている。 テスト実行中にセッションがinvalidateされた場合、Jetty 12ではExecutionContextの 書き戻し時にIllegalStateExceptionがスローされてしまう。 これを回避するためには、HttpSession.invalidate()が実行されるタイミングを遅らせる必要がある。 サーブレットフィルタ(本クラス)を差し込んで、ここでHttpServletRequestをラップする。 ラップしたHttpServletRequestは、セッションを要求されると、やはりラップしたHttpSessionを返却する。 このラップしたHttpSessionではHttpSession.invalidate()が呼び出されても、実際にはinvalidateをせず、 invalidateが要求されたことを記録しておく。 後続のすべての処理が終わった後、invalidateが要求された場合、実際にinvalidateを実行する。 Jetty 9 ではラップに標準APIの Proxy を用いていたが、 Jetty 12 では単純なラップクラスを使用している。 これは、 Jetty 12 が内部でinstanceofを使ってServletRequestWrapperかどうか 判定している部分があり、 Proxy を用いているとその判定条件に入れないという理由があるためである。