今天在整理2013年的工作时的一个项目,修改了数据库连接,初始化数据库,部署运行报错,主要原因是阿里巴巴druid报错,导致DataSource初始化失败。

druid报错日志:

Caused by: java.lang.IllegalArgumentException: String length must be a multiple of four.
at com.alibaba.druid.util.Base64.base64ToByteArray(Base64.java:122)
at com.alibaba.druid.util.Base64.base64ToByteArray(Base64.java:107)
at com.alibaba.druid.filter.config.ConfigTools.decrypt(ConfigTools.java:150)
at com.alibaba.druid.filter.config.ConfigFilter.decrypt(ConfigFilter.java:197)
... 79 more

我想到可能的原因是:

1、jdk版本问题。

2、tomcat版本问题。

3、MySQL版本太新,导致mysql驱动和druid需要升级。

4、记录数据库连接信息的.properties文件编码问题。

然后,我对可能的问题进行一一尝试。发现问题未解决。

最后,我去仔细看了下spring配置文件里有关druid的配置。心中一万个草泥马。

<!-- 解密密码必须要配置的项 --><property name="filters" value="config" /><property name="connectionProperties" value="config.decrypt=true" />

居然使用了druid的加解密功能。数据库连接密码是通过druid加密的,然后druid解密再访问数据库。怪不得报得错误是有关字符加解密编码的错误。

当时修改数据库配置信息的时候,心里想把密码搞得那么复杂干嘛?当时就没想到这是druid的加密。

https://github.com/alibaba/druid/wiki/%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98

String length must be a multiple of four.相关推荐

  1. Warning message:In a + b : longer object length is not a multiple of shorter object length

    Warning message:In a + b : longer object length is not a multiple of shorter object length 目录 Warnin ...

  2. pandas使用query函数基于dataframe字符串数据列中字符串的长度筛选dataframe的数据行(specific column string length)

    pandas使用query函数基于dataframe字符串数据列中字符串的长度筛选dataframe的数据行(select dataframe rows based on specific colum ...

  3. string.length_C.中的String.Length属性示例

    string.length C#String.Length属性 (C# String.Length property) String.Length property is used to get th ...

  4. String.length() 与 String.getBytes().length

    String.length() 返回字符串的字符个数,一个中文算一个字符: String.getBytes().length 返回字符串的字节长度,一个中文两个字节: String的getBytes( ...

  5. java oracle 中文长度,Java String length 和 Oracle varchar2 长度对应关系

    1.Oracle数据库:char和varchar2和nvarchar2区别 常规情况下,对于字符串类型的数据列,在oracle设计表时设置为byte来进行储存. 1>CHAR和VARCHAR2区 ...

  6. 某某读书搜索__DATA__分析

    1.分析 打开控制台分析接口数据,通过"社会学(第八版)" 没有找到相关数据,观察xhr发现也没有数据,这时数据很可能是html返回的,但是数据加密了! 查看源代码分析 控制台搜索 ...

  7. unity打包webgl PC端和移动端使用

    测试版本unity5.6.3版本 PC端浏览器    win10自带的浏览器 (谷歌没能打开-----肯定是可以的,暂时没去找办法) 移动端安卓(无ios手机)     主机局域网内做iis再使用移动 ...

  8. 国密sm4js整理,js 调用,易语言调用

    今天在研究项目的时候,发现有项目开始使用sm4国密加密了 所以记录一下这个加密的例子 var sKey = "JeF38U9wT9wlMfs2"; var sm4 = new JS ...

  9. string 类的常用方法 substring indexof length

    string 集中常用的方法: substring public String substring(int beginIndex)返回一个新的字符串,它是此字符串的一个子字符串.该子字符串始于指定索引 ...

最新文章

  1. 洛谷P1092 虫食算
  2. C#最小化到托盘+双击托盘恢复+禁止运行多个该程序
  3. class ts 扩展方法_一些让程序保持可扩展的 TypeScript 技巧
  4. [转]那些年我还不懂:IList,ICollection,IEnumerable,IEnumerator,IQueryable
  5. 天气预报的Ajax效果
  6. 全面介绍Windows内存管理机制及C++内存分配实例(三):虚拟内存
  7. java马克思手稿_java 循环嵌套解决一元,二元,三元方程(增长率,鸡兔同笼,马克思手稿)...
  8. 关于 C++ 中输入输出的猜想
  9. RESTful开发风格
  10. 框架升级后某个类型所在程序集发生转移,应用还能正常运行吗?
  11. xilinx sdk打开库函数查看具体定义Open Declaration或者ctrl+鼠标左键
  12. 理解Java的几张图
  13. 2019数模美赛规则
  14. 【ArcPy视频教程】基于 ArcGIS Pro 的 ArcPy 教程(录制中)
  15. iOS 开发:知识地图(不定期更新)
  16. 环境和社会风险分类c类_风险分类
  17. word文档表格后面的空白页怎么删除?
  18. 安卓手机如何更改开机 关机 动画
  19. 問題の解決策 [USACO18JAN]Lifeguards P(题解)
  20. win 10 输入法自定义切换快捷键(rime)

热门文章

  1. 打印狗的健康值Java_嵌入式狗的JAVA之路 HTML 补课
  2. Linux升级glibc版本汉字乱码,Linux CentOS6升级glibc库过程
  3. java sound 多线程同一音频文件_Java在编程语言中占据何等优势?
  4. mysql 分组查询原理,MySQL分組查詢Group By實現原理詳解
  5. 生活中java继承例子_简单继承例子:java
  6. python几何拼贴画_图形几何图形拼贴画
  7. Linux 修改用户名的主目录 家目录
  8. 微软宣布 Edge 浏览器将切换至 Chromium 内核
  9. Kubernetes在上汽集团云平台及AI方面的应用
  10. Day31 python基础--网络编程基础-socketserver