過去2つほど書いてみたこの悩み。
http://d.hatena.ne.jp/nigredo/20080804
http://d.hatena.ne.jp/nigredo/20080805
まず、経緯として自分のアプリケーションは仮想ホストを使ってサブドメイン直下をアプリケーションルートとしている。こんな感じに。
http://foo.bar.com/
↑
これでアプリケーションにアクセスする。
このとき書いたserver.xmlはこんな感じだった。
<Host name="foo.bar.com" > <Context path="" unpackWARs="true" autoDeploy="true" docBase="C:\hoge/....../approot" debug="0" /> </Host>
だけど、なぜか自分が実装した戻るボタンだけがうまくいかず404となってしまう。戻るの実装がおかしいのかなと思い、色々と実装方法を調べてみたけど、どうもうまくいかない。戻るボタンだけど単にページ内でsetResponsePage(Page.class)してるだけなのに。
そう思い、いつもはIEで確認している所をFireFoxで確認してみるとなんとうまくいく!!アレ??と思い、よく現象を見ると戻る処理ではなく、ドメイントップに向かう遷移がおかしいことに気づく。で、もしかしてと思い、同じような経験をClickでもした事があって、あのときはClickServletに修正を入れたが、今回はserver.xmlの設定を見直してみることに
で、できたのがこれ。
<Host name="foo.bar.com" unpackWARs="true" autoDeploy="true" appBase="C:\hoge/....../approot"> <Context path="" docBase="app.war" debug="0"/> </Host>
調べてみると今まで使っていた設定は間違っていた事に気づき、これで、正しいはずだと思い、再起動してみると、ドメインルートでアクセスできた。でもIEだけがやっぱりおかしい。
どこに問題があるかは分からないけど、今回はしょうがなく、ドメインルートでアクセスを諦めて、アプリケーションディレクトリを見せるようにする事とする。でも、どこが悪いんだろうなぁ。
最終的にはコレで運用
<Host name="foo.bar.com" unpackWARs="true" autoDeploy="true" appBase="C:\hoge/....../approot"> <Context path="/app" docBase="app.war" debug="0"/> </Host>
こんな感じでアクセスになる
http://foo.bar.com/app