Package nablarch.fw.web.httpserver
package nablarch.fw.web.httpserver
-
ClassDescriptionJetty12対応の
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 を用いているとその判定条件に入れないという理由があるためである。