今天在整理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

今天在整理2013年的工作时的一个项目,修改了数据库连接,初始化数据库,部署运行报错,主要原因是阿里巴巴druid报错,导致DataSource初始化失败。druid报错日志:Caused by: java.lang.IllegalArgumentException: String length must be a multiple of four.at com.alibaba.dru
具体报错内容如下: java.lang.IllegalArgumentException: String length must be a multiple of four. at com.alibaba.druid.util.Base64.base64ToByteArray(Base64.java:128) ~[druid-0.2.8.jar:0.2.8] at com.alibaba.druid.util.Base64.base64ToByteArray(Base64.java:110) ~[druid
C语言头文件 STRING .HC语言头文件 STRING .HC语言头文件 STRING .HC语言头文件 STRING .HC语言头文件 STRING .HC语言头文件 STRING .HC语言头文件 STRING .HC语言头文件 STRING .HC语言头文件 STRING .HC语言头文件 STRING .HC语言头文件 STRING .HC语言头文件 STRING .HC语言头文件 STRING .HC语言头文件 STRING .HC语言头文件 STRING .HC语言头文件 STRING .HC语言头文件 STRING .HC语言头文件 STRING .HC语言头文件 STRING .HC语言头文件 STRING .HC语言头文件 STRING .HC语言头文件 STRING .HC语言头文件 STRING .HC语言头文件 STRING .HC语言头文件 STRING .HC语言头文件 STRING .HC语言头文件 STRING .HC语言头文件 STRING .HC语言头文件 STRING .HC语言头文件 STRING .HC语言头文件 STRING .HC语言头文件 STRING .HC语言头文件 STRING .HC语言头文
public static void main( String [] args) { String haystack = "aaaaasdfasof"; String needle = "df"; char[] hs = haystack.toCharArray(); int hl = hs. length ; char[] ns = needle.toCharArray(); int nl = ns. length ; //haystack是空字符串时needle是空返回0否则-1 if (0 >= hl) { System
spring boot 打包之后出现的        Unable to find a single main class from the following candidates 原因是因为你可能写了两个main函数,你得去掉一个,注释一下。
1. kibana No Default Index Pattern Warning 当访问kibana页面时,出现下面的信息:Warning No default index pattern. You must select or create one to continue. Unable to fetch mapping. Do you have indices matching t
这个错误信息表示,"listener"参数必须是函数类型。收到的类型是字符串。 说明你在调用这个函数的时候, listener 的参数类型传入的是字符串类型,但是该函数的定义里面的listener的参数需要是 function类型. 如果你希望 listener 是函数,您需要将其作为一个函数传递,而不是字符串。