druid1.1.22即以上版本需要JDK1.8。
JDK1.7,升级为DRUID版本1.1.21
在1.1.1及其以下版本下面配置没有问题。
部分配置
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"
init-method="init" destroy-method="close">
<!-- 基本属性 url、user、password -->
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.decrypt.password}" />
<!-- 配置监控\加密统计拦截的filters -->
<property name="filters" value="stat,config" />
<property name="connectionProperties" value="config.decrypt=true;config.decrypt.key=${jdbc.decrypt.publickey}" />
<!-- 配置初始化大小、最小、最大 -->
<property name="initialSize" value="1" />
<property name="minIdle" value="1" />
<property name="maxActive" value="200" />
<!-- 配置获取连接等待超时的时间 -->
<property name="maxWait" value="60000" />
<!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 -->
<property name="timeBetweenEvictionRunsMillis" value="60000" />
<!-- 配置一个连接在池中最小生存的时间,单位是毫秒 -->
<property name="minEvictableIdleTimeMillis" value="300000" />
<property name="validationQuery" value="SELECT 'x'" />
主要就是这部分
<property name="validationQuery" value="SELECT 'x'" /
>
将DRUID版本升级到1.1.21版本的时候报错。
报错内容如下:
org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading 非法访问:此Web应用程序实例已停止。无法加载[oracle/sql/converter_xcharset/lx20354.glb]。为了调试以及终止导致非法访问的线程,将抛出以下堆栈跟踪。
java.lang.IllegalStateException: 非法访问:此Web应用程序实例已停止。无法加载[oracle/sql/converter_xcharset/lx20354.glb]。为了调试以及终止导致非法访问的线程,将抛出以下堆栈跟踪。
这个SQL检查在低版本的时候正常,升级后导致这个错误。需要修改正确。
我改为下面这个就可以了
<property name="validationQuery" value="SELECT 'x' from dual" />