生产服务器上类型timestamp的值不正确

时间:2012-06-01 21:23:42

标签: postgresql java-ee jboss timestamp seam

我正在使用:seam 2.2.2 + hibernate + richfaces + jboss 5.1 + postgreSQL

我有一个需要从数据库加载一些数据的模块。简单。问题是,在开发上它可以正常工作,100%,但是当我在生产服务器上部署并尝试获取数据时,错误会增加:

could not read column value from result set: fechahor9_504_; Bad value for type timestamp : [C@122e5cf
SQL Error: 0, SQLState: 22007
Bad value for type timestamp : [C@122e5cf
javax.persistence.PersistenceException: org.hibernate.exception.DataException: could not execute query

[更多错误]

Caused by: org.postgresql.util.PSQLException: Bad value for type timestamp : [C@122e5cf
at org.postgresql.jdbc2.TimestampUtils.loadCalendar(TimestampUtils.java:232)

[更多错误]

Caused by: java.lang.NumberFormatException: Trailing junk on timestamp: ''
at org.postgresql.jdbc2.TimestampUtils.loadCalendar(TimestampUtils.java:226)

我无法理解为什么它适用于我的机器(开发)以及为什么不用于生产。有线索吗?有人经历过同样的问题吗?是完全相同的编译

2 个答案:

答案 0 :(得分:0)

Stefano Travelli是对的。我正在检查生产中的jBoss,并且在[jboss_dir] / common / lib上有一个旧的jdbc驱动程序来自旧的jwebstart应用程序(不是我开发的)。删除了jdbc,它工作正常。我应该检查是否仍然需要旧的应用程序,如果是,请检查它是否仍然有效,如果没有jdbc或升级版本。

答案 1 :(得分:0)

不确定驱动程序的故事是什么...... 但当我尝试将 bigint 从数据库解析为

时,我的问题就出现了
myOjbect.setDate(Date date){...}

另一个“JDBC友好”由于某种原因被忽略。

myOjbect.setDate(long date){...}

所以..删除日期设置器并保留一个可以解决问题。 这是一个很大的解决方法..但可以帮助那里的人:)