V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
hujianxin
V2EX  ›  程序员

Tomcat 部署 Springboot 应用时,不支持中文问题。

  •  
  •   hujianxin · 2016-12-06 19:13:34 +08:00 · 2189 次点击
    这是一个创建于 2907 天前的主题,其中的信息可能已经有所发展或是发生改变。

    大家好,今天使用 Tomcat 部署一个 Springboot 应用时出现了不支持中文问题,还请有经验的前辈帮忙

    问题描述:

    1. 我的这个 Spring boot 程序使用 maven 打成 war 包放到了 Tomcat8 里面。
    2. 应用中,前端使用 ajax 获取后端的一个数据,这个数据包括中文字符串。如果包含中文字符串则报错。 报的错误不容易分析: Caused by: java.sql.SQLSyntaxErrorException: ORA-00911: invalid character ,但是我经过一步步推断,发现当后端发送数据包含中文字符串时就会报错。不出意外就是这个原因了。
    3. 我使用嵌入在 Springboot 里面的 tomcat 调试程序是没有问题的。
    4. 我使用嵌入在 springboot 里面的 tomcat ,将整个应用打成 jar 包,使用 java -jar 运行也是没有问题的。

    请教各位前辈,如果有遇到过这个问题的,还请指点迷津,感谢。

    第 1 条附言  ·  2016-12-06 19:59:05 +08:00
    傻了,又看了一下,貌似不是 tomcat 的问题(我也不知道),我看着觉着是 oracle 或者 hibernate 的问题。在使用 spring boot data jpa 的一个 dao 函数访问 oracle 的时候出现的问题,`ORA-00911: invalid character`。就是这个问题导致的。

    但是奇怪的是,我使用内部 tomcat 独立启动就没有这个问题啊。。。。
    9 条回复    2017-10-26 23:44:45 +08:00
    echo1937
        1
    echo1937  
       2016-12-06 19:20:51 +08:00
    会不会是 tomcat 配置文件中没有设置字符集为 UTF-8 ?
    hujianxin
        2
    hujianxin  
    OP
       2016-12-06 19:24:43 +08:00
    @echo1937 查了半天也没查到结果,哭,请问在 tomcat 配置文件里设置呢,还是在应用方设置呢?
    lonenol
        3
    lonenol  
       2016-12-06 19:32:34 +08:00
    server.xml connector 里边吧 URIEncoding 设置成 utf8
    hujianxin
        4
    hujianxin  
    OP
       2016-12-06 20:00:03 +08:00
    @echo1937 @lonenol 感谢回复,我已经分不清是 tomcat 的问题了,还是 hibernate oracle 的问题了,在问题补充里面我补充了描述,谢谢。
    wanghaa
        5
    wanghaa  
       2016-12-07 09:08:52 +08:00 via Android
    tomcat8 默認的就是 utf-8 ,肯定不是 tomcat 的問題
    vjnjc
        6
    vjnjc  
       2016-12-07 11:10:39 +08:00
    貌似 spring framework 里面有一个序列化的时候中文的问题,你用 spring boot 应该也用 springmvc 了吧
    Miy4mori
        7
    Miy4mori  
       2016-12-07 14:05:24 +08:00 via Android
    是 get 请求的参数乱码吧,三楼说的对。
    hujianxin
        8
    hujianxin  
    OP
       2016-12-07 17:10:23 +08:00
    @wanghaa @vjnjc @Miy4mori 谢谢回复了,是 hibernate 的问题。
    jack80342
        9
    jack80342  
       2017-10-26 23:44:45 +08:00
    最近翻译了 Spring Boot 最新的官方文档,欢迎👏Fork,https://www.gitbook.com/book/jack80342/spring-boot/details
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4551 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 09:54 · PVG 17:54 · LAX 01:54 · JFK 04:54
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.