私の Web アプリケーション環境: Struts 1.3.8 + Java JDK 1.6 + Tomcat 5.0.28 + WAFFLE 認証
以下に説明するプロセス:
1. access /test_project/testAction.do to execute business logic in Struts Action handler, then save some attributes in session
2. forward to /test_project/test.jsp
3. open an applet in test.jsp, pass data to it from /test_project/TestSerlvet Servlet response. The Servlet will get attributes first from session, then response to client with xml data
Tomcat 5.0.28 では、問題なく動作します。Tomcat 7 でアプリケーションを実行しようとすると、TestServlet のセッション属性から値を取得できません。Tomcat 7 で見つけた tomcat ログ ファイルを確認した後、/test_project/testSerlvet を取得すると、セキュリティ パッケージが別のポートに再接続し、新しいセッションが生成され、前のセッションのすべての値が失われます。ログは次のとおりです。
/** start*/
10-Nov-2011 13:02:01 INFO {?:?} - GET /test_project/testAction.do, contentlength: -1
10-Nov-2011 13:02:01 INFO {?:?} - authorization required
10-Nov-2011 13:02:01 INFO {?:?} - GET /test_project/testAction.do, contentlength: -1
10-Nov-2011 13:02:01 INFO {?:?} - security package: Negotiate, connection id: 172.24.19.227:12755
10-Nov-2011 13:02:01 INFO {?:?} - token buffer: 53 byte(s)
10-Nov-2011 13:02:02 INFO {?:?} - continue token: TlRMTVNTUAACAAAACgAKADgAAAAFwomiaZrsOyIGARbofjQBAAAAALAAsABCAAAABQEoCgAAAA9FAEEARQBEADEAAgAKAEUAQQBFAEQAMQA
BABAAQwBRAEIAWQAwADAAMwAxAAQAJABwAGUAdAByAG8AbABlAHUAbQBwAGwAYQBjAGUALgBjAG8AbQADADYAQwBRAEIAWQAwADAAMwAxAC4AcABlAHQAcgBvAGwAZQB1AG0AcABsAGEAYwBlAC4AYwBvAG0ABQA
kAHAAZQB0AHIAbwBsAGUAdQBtAHAAbABhAGMAZQAuAGMAbwBtAAAAAAA=
10-Nov-2011 13:02:02 INFO {?:?} - continue required: true
10-Nov-2011 13:02:02 INFO {?:?} - GET /test_project/testAction.do, contentlength: -1
10-Nov-2011 13:02:02 INFO {?:?} - security package: Negotiate, connection id: 172.24.19.227:12755
10-Nov-2011 13:02:02 INFO {?:?} - token buffer: 72 byte(s)
10-Nov-2011 13:02:02 INFO {?:?} - continue required: false
10-Nov-2011 13:02:02 INFO {?:?} - successfully logged in user: *********
/** the block below is only in Tomcat 7 log*/
/** begin block*/
10-Nov-2011 13:31:18 INFO {?:?} - GET /test_project/TestServlet, contentlength: -1
10-Nov-2011 13:31:18 INFO {?:?} - authorization required
10-Nov-2011 13:31:18 INFO {?:?} - GET /test_project/TestServlet, contentlength: -1
10-Nov-2011 13:31:18 INFO {?:?} - security package: NTLM, connection id: 172.24.19.227:12883
10-Nov-2011 13:31:18 INFO {?:?} - token buffer: 53 byte(s)
10-Nov-2011 13:31:18 INFO {?:?} - continue token: TlRMTVNTUAACAAAACgAKADgAAAAFwomiJ+N+gNVCR+wo2DwBAAAAALAAsABCAAAABQEoCgAAAA9FAEEARQBEADEAAgAKAEUAQQBFAEQAMQA
BABAAQwBRAEIAWQAwADAAMwAxAAQAJABwAGUAdAByAG8AbABlAHUAbQBwAGwAYQBjAGUALgBjAG8AbQADADYAQwBRAEIAWQAwADAAMwAxAC4AcABlAHQAcgBvAGwAZQB1AG0AcABsAGEAYwBlAC4AYwBvAG0ABQA
kAHAAZQB0AHIAbwBsAGUAdQBtAHAAbABhAGMAZQAuAGMAbwBtAAAAAAA=
10-Nov-2011 13:31:18 INFO {?:?} - continue required: true
10-Nov-2011 13:31:18 INFO {?:?} - GET /test_project/TestServlet, contentlength: -1
10-Nov-2011 13:31:18 INFO {?:?} - security package: NTLM, connection id: 172.24.19.227:12883
10-Nov-2011 13:31:18 INFO {?:?} - token buffer: 72 byte(s)
10-Nov-2011 13:31:18 INFO {?:?} - continue required: false
10-Nov-2011 13:31:18 INFO {?:?} - successfully logged in user: *********
/** end block*/
/** codes below is same in both Tomcat 5.0.28 and Tomcat 7*/
10-Nov-2011 13:31:18 INFO {TestServlet.java:66} - ~~~~~~~~~>>> Start Point <<<~~~~~~~~~~
セキュリティ パッケージが Tomcat 7 で新しい接続を開くのに、Tomcat 5 では接続を維持するのはなぜですか? 問題の内容と解決方法を知っている人はいますか?
前もって感謝します。