Package nablarch.fw.web.httpserver


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