[Wicket-ja-user 259] Re: AbortWithWebErrorCodeException内の日本語

Back to archive index

Tsutomu Yano benbr****@mac*****
2008年 12月 3日 (水) 02:46:26 JST


矢野です。

Jettyを使ってやってみたところ、再現しました。
表示されているページはJettyのエラーページで、ソースをみたところ、Jettyのエラーページは
HTTPヘッダに文字コードとしてISO-8859-1を指定してしまうために、日本語が文字化けするようです。

Wicketから処理がはなれたあとにJettyで起こっている問題です。
Wicketで対処するよりはコンテナで対処するほうがいいでしょう。

サーブレットコンテナでは、web.xmlを使ってHTTPステータスコードごとにエラーページを指定できる
ようになっています。
Jettyももちろん(サーブレットコンテナですから)web.xmlをきちんと参照するので、ここで設定すれば
HTTPステータスコードごとに任意のエラーページを表示できます。

web.xmlに次のようなタグを加えると、/WEB-INF/error500.jsp に遷移します。


    <error-page>
        <error-code>500</error-code>
        <location>/WEB-INF/error500.jsp</location>
    </error-page>

ここではJSPにしましたが、HTMLでもOKのはずです。

試してみてくださいな。


On 2008/11/29, at 10:24, Osamu Otani wrote:

> 矢野さま
>
>
> getString()から日本語メッセージを取得しても、直接書いても同じ状況です。
>
>
>> ・ディプロイしているAPサーバはなにか?(Tomcat? Glassfish?)
>
> jetty-6.1.4を使っています。
>
>
>> ・Applicationクラスのinit()メソッドで、getRequestCycleSettings().setResponseRequestEncoding()
>> メソッドを使って出力エンコーディングを指定しているかしてないか。してるなら何にしてるか。
>
> init()では、
> getRequestCycleSettings().setResponseRequestEncoding( "utf-8" );
> getMarkupSettings().setDefaultMarkupEncoding( "utf-8" );
> やら、mountBookmarkablePage()、IResourceSettings#addResourceFolder()、IResourceSettings#setResourceStreamLocator()
> を設定しています。
>
>
>> ・Apache HTTP ServerなどとAPサーバを組み合わせて使っているか、APサーバだけで使っているか。
>
> jetty-6.1.4だけです。
>



---------------------------------------------------
矢野 勉(やの つとむ)
電子メール:benbrand_at_mac.com
---------------------------------------------------




Wicket-ja-user メーリングリストの案内
Back to archive index