日期:2014-05-17  浏览次数:20783 次

spring加载jdbc.properties配置文件,读取整数报错。
配置如下:
<context:property-placeholder location="classpath:jdbc.properties" />

<bean id="dataSourse"
class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="${driverClassName}" />
<property name="url" value="${url}" />
<property name="username" value="${username}" />
<property name="password" value="${password}" />
<!-- 连接池启动时的初始值 -->
<property name="initialSize" value="${initialSize}" />
<!-- 连接池的最大值 -->
<property name="maxActive" value="${maxActive}" />
<!-- 最大空闲值.当经过一个高峰时间后,连接池可以慢慢将已经用不到的连接慢慢释放一部分,一直减少到maxIdle为止 -->
<property name="maxIdle" value="${maxIdle}" />
<!-- 最小空闲值.当空闲的连接数少于阀值时,连接池就会预申请去一些连接,以免洪峰来时来不及申请 -->
<property name="minIdle" value="${minIdle}" />
</bean>


报错:
java.lang.NumberFormatException: For input string: "${initialSize}"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
at java.lang.Integer.parseInt(Integer.java:447)
at java.lang.Integer.valueOf(Integer.java:553)

------解决方案--------------------
你的jdbc.properties里有initialSize这个属性吗?
------解决方案--------------------
${initialSize}看看这个是不是有字符或者空格啥的。
------解决方案--------------------
<property name="username" value="${username}" />
<property name="password" value="${password}" />

name 这些可以读出,看下和 ${initialSize} 有什么不同
------解决方案--------------------
你jdbc.properties文件里有initialSize这个属性吗
------解决方案--------------------
引用:
Quote: 引用:

你的jdbc.properties里有initialSize这个属性吗?

这是jdbc.properties的配置:
initialSize=1
maxActive=500
maxIdle=20
minIdle=10
刚才没仔细看,他提示转换的是转换出现问题,你的initialSize=1后边是不是有空格之类的,也可能是因为回车的关系,不行你把initialSize=1放到最后一行
------解决方案--------------------
还是写死吧<property name="initialSize" value="30" />
------解决方案--------------------
java.lang.NumberFormatException: For input string: "${initialSize}"
这个异常你应该知道吧,不行你换个名字,你取名aaa=3,然后<property name="initialSize" value="${aaa}" />试试