トップ «前の日記(2008-07-31) 最新 次の日記(2008-08-02)» 編集

jFD開発したりしなかったり日誌

2004|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|
2008年
8月
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31

2008-08-01 [長年日記]

_ 仕事

謎現象発生。

アプレットの起動時にブラウザで保持しているクッキーのJSESSIONIDをパラメータとして受け取って、

アプレット内でセッションを引き継いでサーバーにリクエストを投げ、その後で

JavaScriptからサーバーにリクエストを投げる、というのをやっていた。

当然同一のセッションになると思いきや、ブラウザ起動後一回目に限ってそうならない。

泣きそうになりながら調査をしたら、不思議な現象がわかった。

アプレットはCommonsのHttpClientでサーバーにデータを送信してるのだが、

HttpClientをnewした時点で、ブラウザが持ってるJSESSIONIDが変わっている。

このため、データ送信後のリクエストでは別のJSESSIONIDがサーバーに送られていて、

参照するセッションが異なってしまい、想定した動作がされてなかった。

なんだこりゃ。

どういう理由でそうなるのかさっぱりわかってないが、対策としてHttpClientをnewした後で

JSObjectを使ってクッキーを取得し直し、現在のJSESSIONIDを使ってサーバーに

リクエストを投げるようにした。

なぜそうなるのかわかららないけど、とりあえず想定した動作はするようになったか。

_ えー

所用で空手部長に電話したら、研修中の新入社員がわからないところがあるんで

質問に答えてあげて欲しい、とのこと。

さんざんお世話になった人だし快諾したんだけど、ソースを口頭で説明されてもわからないんで

「メールで送ってきて」とメアドを教えたのに、このブログのツッコミに書き込むのはあんまりですよ。

ある意味スパムよりたち悪いですってば。