Posted on 2011-05-23 15:54
landor 閱讀(1072)
評論(0) 編輯 收藏 所屬分類:
編碼
最近在生產服務器遇到了個問題,在AIX上發布java web程序,jdk是IBM jdk6_64,用到了struts2.1.6,出現錯誤
2011-05-23 13:10:51,256 DEBUG [com.opensymphony.xwork2.conversion.impl.XWorkConverter] - global-level type converter for property [createTime] = none found
2011-05-23 13:10:51,256 DEBUG [com.opensymphony.xwork2.conversion.impl.XWorkConverter] - falling back to default type converter [com.opensymphony.xwork2.conversion.impl.XWorkBasicConverter@354e354e]
2011-05-23 13:10:51,257 DEBUG [com.opensymphony.xwork2.conversion.impl.XWorkConverter] - unable to convert value using type converter [com.opensymphony.xwork2.conversion.impl.XWorkBasicConverter]
Could not parse date - Class: java.text.DateFormat
File: DateFormat.java
Method: parse
Line: 348 - java/text/DateFormat.java:348:-1
at com.opensymphony.xwork2.conversion.impl.XWorkBasicConverter.doConvertToDate(XWorkBasicConverter.java:367)
at com.opensymphony.xwork2.conversion.impl.XWorkBasicConverter.convertValue(XWorkBasicConverter.java:103)
at com.opensymphony.xwork2.conversion.impl.XWorkBasicConverter.convertValue(XWorkBasicConverter.java:132)
at com.opensymphony.xwork2.conversion.impl.XWorkConverter.convertValue(XWorkConverter.java:296)
at com.opensymphony.xwork2.ognl.OgnlTypeConverterWrapper.convertValue(OgnlTypeConverterWrapper.java:28)
...
Caused by: java.text.ParseException: Unparseable date: "2011-02-23 00:00:00"
at java.text.DateFormat.parse(DateFormat.java:348)
at com.opensymphony.xwork2.conversion.impl.XWorkBasicConverter.doConvertToDate(XWorkBasicConverter.java:357)
... 81 more
本地和測試服務器都沒有問題。
telnet到服務器,執行locale -a,發現缺少中文語言包;安裝。
然后再locale -a 發現已經安裝;
下面有兩種方式修改編碼格式;
1 直接修改服務器編碼格式為GB18030或者UTF-8(視情況而定);
export LC_ALL=Zh_CN.GB18030
2 到tomcat的bin目錄下,修改catalina.sh,在最上面或者某個位置加入:
export LC_ALL=Zh_CN.GB18030
export LANG=$LC_ALL
有個地方需要注意:Zh_CN.GB18030 這幾個字符的大小寫必須和locale -a中顯示的一致;重新啟動tomcat,問題解決。