我在本地安装了此设置,在将xml字符串插入sql表中的xml类型列时遇到此错误。请回顾并分享您的想法以解决此问题。
注意
:我将SAXBuilder用于xml document,并在将该xml文档作为参数传递之前使用format.setEncoding(“UTF-16”)。
另外要注意的是,当我使用tomcat 8和9运行应用程序时,我没有看到任何这样的问题。只有在与WebSphere集成之后,我才看到这个问题。
服务器
:Websphere Application Server 8.5.5.14
SQL服务器
:2014年
使用JDBC
:sqlJdbc41.jar和sqljdbc4.jar
使用目标IBM JDK
:jdk1.7_64号
错误详细信息
:
Cause SQL Exception Info for exception at level 0 - SQL State: 'S0001'; SQL Error Number: '9402'; SQL Error Text: 'XML parsing: line 1, character 39, unable to switch the encoding
com.microsoft.sqlserver.jdbc.SQLServerException: XML parsing: line 1, character 39, unable to switch the encoding
at com.ibm.ws.rsadapter.jdbc.WSJdbcPreparedStatement.pmiExecuteUpdate(WSJdbcPreparedStatement.java:1295)
at com.ibm.ws.rsadapter.jdbc.WSJdbcPreparedStatement.executeUpdate(WSJdbcPreparedStatement.java:836)
尝试了以下选项,但我没有帮上忙。
更新了WebSphere\AppServer\Properties\encoding.Properties(WAS)文件,将此条目en=ISO-8859-1保留为en=UTF-8。
也尝试了以上与UTF-16以及。
也尝试在JVC泛型参数中更新以下内容。
-Dclient.encoding.override=UTF-8
-Dfile.encoding=UTF-8编码
由于我的应用程序使用tomcat,所以我不希望通过使用CAST/或传递前缀为N'xxxmlxx'的xml string来更改任何代码来更正xml字符串。我很快也会尝试修改代码。同时,任何其他的想法都会有帮助。
我需要尝试使用最新的jdbc jar(mssql-jdbc-6.2.2.jre7.jar)吗?
我需要尝试使用websphere bundled sdk 1.8吗?