无法切换编码错误

时间:2016-01-20 10:21:55

标签: java sql-server-2008 jpa utf-8 websphere-8

我面临一个与UTF-8编码有关的奇怪问题。

Tech Stack- IBM WAS 8.0,IBM JPA jar,SQL Server 2008

我在两个不同的基础设施上部署了相同的应用程序。我试图将xml作为xml数据类型列中的字符串保存到数据库中。但是,它适用于一个应用程序而没有任何问题,但在另一个应用程序中给出以下异常:

Caused by: org.apache.openjpa.persistence.PersistenceException: XML parsing: line 1, character 38, unable to switch the encoding {prepstmnt -99242622 UPDATE T_QT SET QT_STTS_NM = ?, QT_XML_TXT = ?, QT_NUM = ?, UPDT_TS = ? WHERE QT_ID = ? [params=?, ?, ?, ?, ?]} [code=9402, state=S0001]

尝试了以下分析问题的方法:

  1. 比较WAS管理控制台中的JVM参数。 - 两者都有空的JVM参数列表。
  2. 还尝试使用-Dclient.encoding.override=UTF-8 –Dfile.encoding=UTF-8
  3. 覆盖JVM参数
  4. 在两种环境中比较SQL Server版本。 - 没有区别
  5. 比较DB中的evn以及表/列级别的归类类型 - 无差异SQL_Latin1_General_CP1_CI_AS
  6. 试图将其中一个环境失败的xml保留到另一个环境中。 - 工作正常。
  7. 还试图找到JPA版本。它使用IBM提供的JPA库。它的版本是2.1.1,并且在env。
  8. 中都是相同的
  9. 我也知道一个解决方法。如果我删除xml标头标签然后保持该xml,它将工作正常。但是无法使用此选项,因为没有代码更改,它可以在我的某个环境中无缝地工作。
  10. 请帮助我确定应用程序或数据库服务器配置中是否还有其他任何内容或与JPA之外的应用程序服务器库相关的任何内容都可能导致此问题。

    提前致谢!

0 个答案:

没有答案