症状:
访问WebSphere Portal在浏览器生成弹出式calendar,其月份显示为中文。由于应用程序对日期的校验是针对英文格式设计的,所以客户端无法正确提交被格式化后的日期参数。经研究,此calendar的日期信息是根据server locale格式化的,因此需要把portal的缺省locale设置成en_US,从而在不修改应用代码的前提下跑通此程序。
实验:
1. 因为操作系统为中文Windows 2000 Server,想到的第一个办法是在控制面板中更改区域设置,把OS的locale设为“英语(美国)”。重启机器,启动portal后,问题依旧;
2. 修改startServer.bat里调用的setupCmdLine.bat,添加“set LANG=en”;无效;
3. 修改startServer.bat的Java 启动参数,加上“-Duser.language=en”,重启Portal;无效;
4. 最终解决方案:修改portal的安装配置文件:”
分析:
WebSphere Portal在安装时,检测当前操作系统locale,并写入配置文件。此后每次portal server启动,读取此参数并调用Locale.setDefault()覆盖JVM的缺省值。