首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

关于不能初始化ACTION的异常以及排除的办法

2013-09-11 
关于不能初始化ACTION的错误以及排除的办法最近有测试发邮件说测试WEB前端的时候,有错误报出,我登陆服务器

关于不能初始化ACTION的错误以及排除的办法
  最近有测试发邮件说测试WEB前端的时候,有错误报出,我登陆服务器一看,错误代码如下

Error MessageUnable to instantiate Action, counterActionBean, defined for 'counterAction' in namespace '/stat'Error creating bean with name 'counterActionBean' defined in ServletContext resource [/WEB-INF/counter-context.xml]: Cannot resolve reference to bean 'counterChartService' while setting bean property 'ccs'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'counterChartService' defined in ServletContext resource [/WEB-INF/counter-context.xml]: Cannot resolve reference to bean 'counterDAO' while setting bean property 'counterDAO'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'counterDAO' defined in ServletContext resource [/WEB-INF/counter-context.xml]: Cannot resolve reference to bean 'counterDS' while setting bean property 'dataSource'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'counterDS' defined in ServletContext resource [/WEB-INF/counter-context.xml]: Error setting property values; nested exception is org.springframework.beans.PropertyBatchUpdateException; nested PropertyAccessExceptions (1) are: PropertyAccessException 1: org.springframework.beans.MethodInvocationException: Property 'initialPoolSize' threw exception; nested exception is java.sql.SQLException: Unable to start the Universal Connection Pool: oracle.ucp.UniversalConnectionPoolException: Error during pool creation in Universal Connection Pool Manager MBean


  里面的错误信息居然是在加载counter-context.xml时候的错误,并点出是 initialPoolSize 的错误,counter-context.xml文件如下
<bean id="counterDS" factory-method="getPoolDataSource" lazy-init="true"><property name="URL" value="${nbg.db.url}" /><property name="user" value="${nbg.db.user}" /><property name="password" value="${nbg.db.password}" /><property name="connectionFactoryClassName" value="oracle.jdbc.pool.OracleDataSource"/><property name="connectionPoolName" value="COUNTER_POOL" /><property name="minPoolSize" value="5" /><property name="maxPoolSize" value="10" /><property name="initialPoolSize" value="5" /><property name="inactiveConnectionTimeout" value="120" /><property name="validateConnectionOnBorrow" value="true" /><property name="maxStatements" value="10" /></bean><bean name="counterDAO" ref="counterDS" /></bean><bean name="counterChartService" ref="counterDAO" /></bean><bean name="counterActionBean" scope="request"><property name="ccs" ref="counterChartService" /></bean>

我先看了官方的文档说的是initialPoolSize 默认的是0,范围在0到integer.max_size之间,然后用sqlplus连接下oracle数据库,发现也没有问题,最后我将它这个配置注释掉,初始化不分配任何的poolsize 问题得到了解决; 原因是:服务器上的oracle不能分配这么多的连接,从而造成了错误的产生,这个问题应该是环境的问题,并不是spring的问题。


注:后来发现,果然是环境的问题,主要是用root登陆以后,不能使用sqlplus连接数据库,SQLPLUS不在root权限下面,使用env没有找到,于是修改了/etc/profile然后export了SQLPLUS,同时将ojdbc6.jar加入了/opt/nsn/nstat/lib/下面,上面counter-context.xml的initialPoolSize再加入就没有问题了, 教训是惨痛的。
我的异常网推荐解决方案:org.springframework.beans.factory.BeanCreationException:,http://www.myexception.cn/j2ee/10759.html

热点排行