项目中的publish功能在tomcat下跑的没问题。现在有个新的客户,需要应用可以跑在Jboss下。publish功能主要对一个Dialog做publish时,需要填写日期和note,然后点save即可存入数据库。现在当填写完日期,比如"11/02/2009"和note后,提交报如下异常(部分):
org.jboss.util.NestedRuntimeException: Unparseable date: "11/02/2009"; - nested throwable: (java.text.ParseException: Unparseable date: "11/02/2009")
at org.jboss.util.propertyeditor.DateEditor.setAsText(DateEditor.java:134)
at org.springframework.beans.TypeConverterDelegate.doConvertTextValue(TypeConverterDelegate.java:374)
at org.springframework.beans.TypeConverterDelegate.doConvertValue(TypeConverterDelegate.java:350)
at org.springframework.beans.TypeConverterDelegate.convertIfNecessary(TypeConverterDelegate.java:173)
at org.springframework.beans.TypeConverterDelegate.convertIfNecessary(TypeConverterDelegate.java:138)
调试了一下,发现是在对Dialog这个model的Date类型的字段做set动作是发上的。
因为在Tomcat下没问题而且日志中并没有应用的代码记录,看到有‘org.jboss.util.propertyeditor.DateEditor.setAsText’,怀疑是jboss应用了自己的日期程序。网上google一通,靠谱的解决方法是给Jboss加个启动参数 -Dorg.jboss.util.propertyeditor.DateEditor.format=dd/MM/yyyy,使用format后面的值而不是DateEditor本身默认的格式。比如 run.sh -Dorg.jboss.util.propertyeditor.DateEditor.format=dd/MM/yyyy 。 貌似这是个临时的解决方案,如果应用中有不同的日期格式要求,应该还需要更专业的做法。