【问题标题】:Is it possible to encode URL of jdbc connection string?是否可以对 jdbc 连接字符串的 URL 进行编码?
【发布时间】:2017-08-22 14:04:52
【问题描述】:

我正在使用一种内部自动化工具来填充配置文件。由于该工具的一些问题,我不得不对 URL 字符串值进行编码:

sonar.jdbc.url=jdbc:mysql://<server>:3306/sonar_db?useUnicode=true%26characterEncoding=utf8%26rewriteBatchedStatements=true%26useConfigs=maxPerformance

但是当我这样做时,得到异常:

原因:org.apache.commons.dbcp.SQLNestedException:无法创建 PoolableConnectionFactory(仅限连接属性“useUnicode” 接受以下形式的值:“真”、“假”、“是”或“否”。价值 'true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance' 不在此集合中。)

【问题讨论】:

  • 我看不出你是如何“编码”任何东西的。在我看来,您的内部工具似乎无法正确解析事物。如果没有使用的代码,那将是盲目的猜测。您可以通过用分号 (;) 分隔来使其工作,但这是假设 ? 之后的所有内容都被盲目地传递给 DBCP 配置属性 connectionProperties(还要确保包括结束 ; )
  • 对不起,我的 jdbc uri 错误,我已经更新了。
  • 如果这是由PropertiesResourceBundle 读取的属性文件,您应该使用反斜杠来转义=。服务器不会像你想要的那样理解%26。如果确实存在问题,请修复该工具,这似乎不太可能。
  • 谢谢大家,我最终不得不在工具本身中解决这个问题,找不到任何其他替代方案

标签: url jdbc sonarqube encode


【解决方案1】:

您是否尝试将&amp;amp;/%26 替换为&amp;amp;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-27
    • 2013-12-07
    相关资源
    最近更新 更多