String length must be a multiple of four.
今天在整理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.相关推荐
- 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 ...
- pandas使用query函数基于dataframe字符串数据列中字符串的长度筛选dataframe的数据行(specific column string length)
pandas使用query函数基于dataframe字符串数据列中字符串的长度筛选dataframe的数据行(select dataframe rows based on specific colum ...
- string.length_C.中的String.Length属性示例
string.length C#String.Length属性 (C# String.Length property) String.Length property is used to get th ...
- String.length() 与 String.getBytes().length
String.length() 返回字符串的字符个数,一个中文算一个字符: String.getBytes().length 返回字符串的字节长度,一个中文两个字节: String的getBytes( ...
- java oracle 中文长度,Java String length 和 Oracle varchar2 长度对应关系
1.Oracle数据库:char和varchar2和nvarchar2区别 常规情况下,对于字符串类型的数据列,在oracle设计表时设置为byte来进行储存. 1>CHAR和VARCHAR2区 ...
- 某某读书搜索__DATA__分析
1.分析 打开控制台分析接口数据,通过"社会学(第八版)" 没有找到相关数据,观察xhr发现也没有数据,这时数据很可能是html返回的,但是数据加密了! 查看源代码分析 控制台搜索 ...
- unity打包webgl PC端和移动端使用
测试版本unity5.6.3版本 PC端浏览器 win10自带的浏览器 (谷歌没能打开-----肯定是可以的,暂时没去找办法) 移动端安卓(无ios手机) 主机局域网内做iis再使用移动 ...
- 国密sm4js整理,js 调用,易语言调用
今天在研究项目的时候,发现有项目开始使用sm4国密加密了 所以记录一下这个加密的例子 var sKey = "JeF38U9wT9wlMfs2"; var sm4 = new JS ...
- string 类的常用方法 substring indexof length
string 集中常用的方法: substring public String substring(int beginIndex)返回一个新的字符串,它是此字符串的一个子字符串.该子字符串始于指定索引 ...
最新文章
- 洛谷P1092 虫食算
- C#最小化到托盘+双击托盘恢复+禁止运行多个该程序
- class ts 扩展方法_一些让程序保持可扩展的 TypeScript 技巧
- [转]那些年我还不懂:IList,ICollection,IEnumerable,IEnumerator,IQueryable
- 天气预报的Ajax效果
- 全面介绍Windows内存管理机制及C++内存分配实例(三):虚拟内存
- java马克思手稿_java 循环嵌套解决一元,二元,三元方程(增长率,鸡兔同笼,马克思手稿)...
- 关于 C++ 中输入输出的猜想
- RESTful开发风格
- 框架升级后某个类型所在程序集发生转移,应用还能正常运行吗?
- xilinx sdk打开库函数查看具体定义Open Declaration或者ctrl+鼠标左键
- 理解Java的几张图
- 2019数模美赛规则
- 【ArcPy视频教程】基于 ArcGIS Pro 的 ArcPy 教程(录制中)
- iOS 开发:知识地图(不定期更新)
- 环境和社会风险分类c类_风险分类
- word文档表格后面的空白页怎么删除?
- 安卓手机如何更改开机 关机 动画
- 問題の解決策 [USACO18JAN]Lifeguards P(题解)
- win 10 输入法自定义切换快捷键(rime)
热门文章
- 打印狗的健康值Java_嵌入式狗的JAVA之路 HTML 补课
- Linux升级glibc版本汉字乱码,Linux CentOS6升级glibc库过程
- java sound 多线程同一音频文件_Java在编程语言中占据何等优势?
- mysql 分组查询原理,MySQL分組查詢Group By實現原理詳解
- 生活中java继承例子_简单继承例子:java
- python几何拼贴画_图形几何图形拼贴画
- Linux 修改用户名的主目录 家目录
- 微软宣布 Edge 浏览器将切换至 Chromium 内核
- Kubernetes在上汽集团云平台及AI方面的应用
- Day31 python基础--网络编程基础-socketserver