Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

session

初歩的な質問かも知れませんが、皆さんのお力をお借りしたいです。

現在Fedora8、apache、tomcatでWebサーバを組んでおり、このシステム上で、Webアプリケーション(jspのみ)を作成しております。
その後、システムの移行が必要となりまして、それを機にホスト名とIPを変えようということになりました。

そして、移行したまではよかったのですが、
「http//サーバIP/sample/test.jsp」
では正常に動作するのですが、
「http//ホスト名/sample/test.jsp」
で接続すると、javaのsessionオブジェクトが無効?になってしまい、それ以降のページが正しく表示されません。

サーバ側のホスト名の設定等は完了しております。
どなたか、ご教授いただけるよう、よろしくお願いいたします。

15

回答

1881

閲覧

15件の回答

評価

0

どうしてSessionが関係していると判断したのか、
理由を説明してくれないかな。

ホスト名はDNSに登録してあるんだろうね。

評価

0

ついでに、いわゆるsessionというものが具体的にどういう仕組みなのかが分かれば、理由も分かるかもね。

評価

0

不良社員さん回答有難うございます。
>どうしてSessionが関係していると判断したのか、
>理由を説明してくれないかな。

理由はsessionを使用しているページが正常に動作しないためです。
デバッグしましたところ、ページ遷移した時点で、セットしたsessionが破棄されてしまっているようです。

>ホスト名はDNSに登録してあるんだろうね。
ホストはDNSに登録済みです。

$さん回答有難うございます。
>ついでに、いわゆるsessionというものが具体的にどういう仕組みなのかが分かれば、理由も分かるかもね。 

私の頭の中では同一プロセス内で使用可能な変数のようなものという考え方をしているのですが。。

評価

0

初歩というよりも、常識の問題じゃないかな。

以前からDNSを使っていたんなら、
ホスト名を以前のものに設定すればいいじゃない。
古い方も当然改名する。

Sessionなんぞ関係なくて、
ホスト名かIPアドレスが変わったので、
リンク切れが起こってるだけなんじゃないの?

評価

0

不良社員さま

>以前からDNSを使っていたんなら、
>ホスト名を以前のものに設定すればいいじゃない。
>古い方も当然改名する。
以前は、
http//サーバIP/sample/test.jsp
この方法のみで接続していました。
DNSの方には、今回初めて登録しています。

>Sessionなんぞ関係なくて、
>ホスト名かIPアドレスが変わったので、
>リンク切れが起こってるだけなんじゃないの?
ページの表示等は、IPとホスト名で接続した場合
正常に出来ています。

ただsessionを使用している、部分だけ正しく処理されないみたいです。

評価

0

全然関係ないかも…。
apacheのhttpd.confのServerNameは、
どうなってますかね…
ホスト名:ポート になってますかね…

いや、それとsessionが関係あるかといわれると、
アレなのですが。


評価

0

確かに、俺はリンク切れとしか書いてないけどね。

どんなエラーなのか、画面やログの説明もないし。

憶測の続きで書くけど、
プログラム中で遷移先の指定がハードコーディングしてあって、
そのアドレスが以前のままなんじゃない。

評価

0

もしかしたらもしかするから、
まずはsessionの最小コード(jspのみ)で試してみるべし。
ってのはいかがでしょう

http://www.javaroad.jp/servletjsp/sj_jsp8.htm

評価

0

コロさま回答有難うございます
>全然関係ないかも…。
>apacheのhttpd.confのServerNameは、
>どうなってますかね…
>ホスト名:ポート になってますかね…

httpd.conf確認してみました。
ServerName サーバホスト名(フルネーム名):80
のようになってました。
この状態はおかしいのでしょうか?;;

>もしかしたらもしかするから、
>まずはsessionの最小コード(jspのみ)で試してみるべ>し。
>ってのはいかがでしょう
>http://www.javaroad.jp/servletjsp/sj_jsp8.htm

こちら試してみました。
やはり、sessionオブジェクトが破棄?されているようで、2回目のページは表示されません。



不良社員さま回答有難うございます。

>どんなエラーなのか、画面やログの説明もないし。
>憶測の続きで書くけど、
>プログラム中で遷移先の指定がハードコーディングし>てあって、
>そのアドレスが以前のままなんじゃない。
遷移先の方は相対パスで指定してありますので、まず間違いは無いと思うんですが・・・。

評価

0

おかしくないですー(・ェ・`)あってますそれで。

こうなったら、jsp内で、
System.getPropertyでホスト名取得してみて、
ちゃんと認識されているか確認してみては?

何度も無駄足を踏ませていたらゴメンナサイ。

評価

0

コロさま回答有難うございます。

System.getPropertyでホスト名取得してみましたが、
正しく取得できました・・・。

何がなにやら。。。

>何度も無駄足を踏ませていたらゴメンナサイ。

いえいえ、貴重なご意見有難うございます。

評価

0

sessionはうまくいかないのはとりあえず少し置いておいて、
http://www.thinkit.co.jp/cert/article/0604/7/8/2.htm

cookieの送受信はできますか?
クライアント側のくっきーが無効になってるとか…

評価

0

コロさま回答有難うございました。

なんとか解決いたしました。
原因は・・・ホスト名にアンダースコアを使用していたのですが、IEの使用でアンダースコアをホスト名に使用すると、クッキーを取得できないみたいです。
その結果、セッションが常に新しいオブジェクトを作り続けてたみたいです。。。

まいくろそふとにやられました・・・。
親身になっていただだき、皆様有難うございました。

評価

0

>IEの使用でアンダースコアをホスト名に使用すると、クッキーを取得できない
RFC的にはURLにアンダースコアは認められていないから、不正なホスト名への対策として有効、という話だったな。
だいぶ前に、いろんなところで話題になってたよ。
理由があることだから、Microsoftのせいとは一概には言えない。

しかし、まさかそれが関係してるとはね。

評価

0

クッキーがダメでしたかー。
しかもその原因がアンダースコア(・ェ・)!
入れたことないのではじめて聞きましたー


クッキーがダメなら、
sessionIdをencodeURLでくっつけて渡す方法もありますよ。ご存知かもしれませんが。

何にせよ、解決できてよかったですー。

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。