Wicket。ドメイン直下で公開するとき
過去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