arcanum_jp’s blog

おっさんの日記

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