【问题标题】:Jenkins Maven Job CharsetJenkins Maven 作业字符集
【发布时间】:2015-04-17 21:46:57
【问题描述】:

我正在使用 Spring Test 来测试我的 Spring 应用程序,它基本上是一个提供 JSON 和其他一些上传媒体的 REST Web 服务。

单元测试在所有开发人员的机器上运行良好,其中一些测试 JSON 响应中返回的字符串,其中一小部分测试特殊字符。

应用程序已完全配置为对所有内容使用 UTF-8,但是 JSON 响应返回的字符集错误,因此测试失败。

我尝试在/etc/default/jenkins 上配置以下行:

JAVA_ARGS="-Djava.awt.headless=true -Dfile.encoding=UTF8"

但我仍然得到相同的结果。

在运行特定测试时,我也有机会看到 Charset.defaultCharset() 是什么...它看起来像 US-ASCII...

谁能告诉我我做错了什么?

【问题讨论】:

  • 没有看到你的代码和maven pom文件我怎么知道?
  • 谢谢,我去拿代码,发现出了什么问题,大声笑。看我的回答

标签: spring maven jenkins character-encoding spring-test


【解决方案1】:

我发现了问题所在。

在我的 Spring Test 配置中,我正在读取一个 DML.sql 文件来创建初始测试数据,初始化数据库的行是这样的:

<jdbc:initialize-database data-source="dataSource">
    <jdbc:script location="classpath:sql/DML.sql" />
</jdbc:initialize-database>

这使我的配置依赖于服务器字符集,就我而言,我的服务器中设置了那个奇怪的“US-ASCII”。

我通过将encoding 属性设置为UTF-8 使其独立:

<jdbc:initialize-database data-source="dataSource">
    <jdbc:script location="classpath:sql/DML.sql" encoding="UTF-8" />
</jdbc:initialize-database>

因此,来自 H2 数据库的值可以针对带有特殊字符的值进行测试。

【讨论】:

    猜你喜欢
    • 2013-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-09
    • 2020-09-08
    • 2021-11-22
    相关资源
    最近更新 更多