从DEV环境

时间:2016-12-16 13:42:49

标签: java mysql amazon-web-services tomcat utf-8

通过我们的REST Web服务,我想在位于AWS云上的MySql数据库中插入双字节(utf-8)字符。

我们在云上有2个db实例:

  1. 本地
  2. dev的
  3. 我们在Windows机器上使用Tomcat服务器并在数据库级别对utf-8支持进行了所有必需的更改,一切正常,我们可以通过本地tomcat的代码插入/更新/获取特殊字符(而本地数据库仅位于云端。)

    但是当我们尝试通过点击部署在AWS EC2 UniBox DEV环境中的相同服务来插入特殊字符时,该环境指向DEV实例的DB,该实例也位于与本地数据库实例相同的云上,我们将在下面提到错误:

    {
      "errorCode": 500,
      "message": "Database Connection/SQL Error.",
      "error": "CallableStatementCallback; uncategorized SQLException for SQL [{call sp_sign_up_insert(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)}]; SQL state [HY000]; error code [1366]; Incorrect string value: '\\xAC\\xED\\x00\\x05t\\x00...' for column 'host_first_name' at row 1; nested exception is java.sql.SQLException: Incorrect string value: '\\xAC\\xED\\x00\\x05t\\x00...' for column 'host_first_name' at row 1"
    }
    

    我们已经从Tomcat的server.xml配置了数据库的连接详细信息,并且开发环境的server.xml上也存在相同的条目。

    我通过参考blogs调整DEV环境中server.xml的条目来尝试了很多东西 还有更多,但没有任何工作......

    如果有人能够提出可能是因为我们面临的问题可能是什么原因,那就是DEV env在本地工作时完全没问题的原因。

    先谢谢!!! 真正需要你的输入:)

1 个答案:

答案 0 :(得分:0)

看起来像Incorrect string value: '\\xAC\\xED\\x00\\x05t\\x00...' for columnInvalid utf8 character string: 'ACED00'的MySQL / MariaDB错误意味着您的代码中可能有一个错误。

AC ED 00 ..是Java序列化对象的前几个字节,这意味着您正在尝试将不支持类型的Java对象绑定到SQL查询(还要记住,原始数组不适合绑定到SQL)。

Mapping SQL and Java Types中所述,某些Java类型可以绑定到SQL。

相关问题