1

編集:JSF 実装: Mojorra 2.1.9

Web アプリケーションの動作がおかしい。アプリをサーバー マシンにデプロイすると、ベネズエラ標準時間で時間が表示されます。このように Sun Aug 05 11:46:26 VET 2012

問題は、私がベネズエラにいないということです。サーバーマシンのタイムゾーン構成を確認しましたが、正しいです。ローカル マシンでアプリを実行しても、まったく問題はありません。時刻は正確です。しかし、配備されたときの時間は間違っています。

以下のコンテキスト パラメータを web.xml に入れましたが、役に立ちません。私にはわからない問題は何ですか

<context-param>
    <param-name>javax.faces.DATETIMECONVERTER_DEFAULT_TIMEZONE_IS_SYSTEM_TIMEZONE</param-name>
    <param-value>true</param-value>
</context-param>
4

2 に答える 2

1

JSF 日時コンバーターは、デフォルトで UTC を使用します。そのコンテキスト パラメータを設定した場合にのみ、デフォルトでシステムのタイムゾーン (基盤となるサーバー プラットフォームのタイムゾーン) になります。問題のサーバーは、デフォルトでベネズエラのタイムゾーンが設定されているようです (おそらく、ベネズエラでホストされていて、自分が何をしているのかわからないサーバー管理者によって管理されているためでしょうか?)。

カスタム コンバーターや の属性を設定するなどして、JSF のデフォルトの日時コンバーターまたはその設定をオーバーライドしていないと仮定すると、そのコンテキスト パラメーターを削除すると、具体的な問題が解決するはずです。timeZone<f:convertDateTime>

それでも問題が解決しない場合は、JSF 実装をアップグレードしてみてください (ただし、Mojarra でこれに関連するバグを覚えていないため、Mojarra を使用している場合、アップグレードによって問題が解決するとは思いません。ただし、MyFaces についてはわかりません)、またはページ全体ですべてのタグのtimeZone属性を明示的に設定してみてください。<f:convertDateTime>

于 2012-08-05T16:25:24.487 に答える
0

「-Duser.timezone=Europe/Istanbul」パラメーターを指定して tomcat を開始したところ、時刻が正しくなりました。デフォルト時間がベネズエラ時間である理由がわかりませんが、これで問題は解決しました。この問題の原因を理解するために、これをさらに調べます。

于 2012-08-05T20:19:33.410 に答える