Jar*_*red 5 java db2 websphere hibernate
我有一个表,其中有一列 XML 类型。当我从 Windows 上的 WebSphere 中运行的 servlet 向该表中插入一条记录时,插入成功。但是,当我在 AIX 上的 WebSphere 中运行完全相同的代码时,出现以下异常:
com.ibm.db2.jcc.c.SqlException: Illegal Conversion: Can not convert from "java.lang.String" to "java.sql.Blob"
at com.ibm.db2.jcc.c.r.a(r.java:695)
at com.ibm.db2.jcc.c.uf.b(uf.java:927)
at com.ibm.db2.jcc.c.uf.setString(uf.java:910)
at com.ibm.ws.rsadapter.spi.InternalGenericDataStoreHelper.psSetString(InternalGenericDataStoreHelper.java:554)
at com.ibm.ws.rsadapter.jdbc.WSJdbcPreparedStatement.setString(WSJdbcPreparedStatement.java:1662)
at org.hibernate.type.StringType.set(StringType.java:49)
at org.hibernate.type.NullableType.nullSafeSet(NullableType.java:154)
at org.hibernate.type.NullableType.nullSafeSet(NullableType.java:131)
at org.hibernate.persister.entity.AbstractEntityPersister.dehydrate(AbstractEntityPersister.java:2015)
at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2261)
... 33 more
Run Code Online (Sandbox Code Playgroud)
我正在针对 DB2 版本 9、z/OS 数据库运行 WebSphere 6.1。
由于平台差异,这感觉很像编码问题。但谁知道呢。有什么建议吗?
事实证明这是 JDBC 驱动程序配置的“问题”。
在同一 JVM 中运行的另一个应用程序被配置为使用 v8 JDBC 驱动程序。我的配置为使用 v9 JDBC 驱动程序。但由于类加载的工作方式,类路径上的第一个加载了两者(恰好是 v8 驱动程序,它不适用于我的应用程序。)
解决方法是将两个应用程序切换为使用 v9 驱动程序(这很好,因为它应该完全向后兼容。)
| 归档时间: |
|
| 查看次数: |
4111 次 |
| 最近记录: |