maven 使用spring连接池问题 Attempt to refer to a unregistered

    最近把一个普通的java项目要转为maven管理的项目,结果提示错误:Attempt to refer to a unregistered pool by its alias 'xx',从网上找了好多解决问题,其中也有同学列举出了几种解决方式:(红色字体是从网上找的)

1、proxool.xml中配置的连接池加载成功,但在用连接池的时候,用自己写的java文件中调用出现的问题,就是写了一个main方法,然后用"java Application"运行,就会报Attempt to refer to a unregistered pool by its alias ‘test’ ,但是在JSP页面里并不会报错。问题的关键就是在这里,连接池的应用本来就是要通过服务器调用的,如果你在java文件中调用,就没有涉及到服务器,这样就会报错了!
如果你在java文件中用下面这种方式加载连接池是可用的:
[java] view plaincopy
Class.forName("org.logicalcobwebs.proxool.ProxoolDriver");  
Connection conn  = DriverManager.getConnection("proxool.别名:driver:url","用户名","密码");  
(注意:DriverManager.getConnection中多了几个条件:1、driver。2、url。3、用户名。4、密码。并且分清楚他们之间的冒号和逗号。)
但是这种方式会每次运行的时候加载连接池,用完就会释放。所以大家用连接池的时候,不要在java文件中去测试连接池是否可用,应该写一个jsp页面,问题就此解决!
 
2、proxool.xml的内容是在其他文件里复制内容过来的,报错,新建一个proxool.xml,完全手写各个配置,然后重启服务。
 
3、.xml配置文件出现中文,即使已经注释掉。解决办法:将.xml配置文件中的中文注释删净。
 
4、web.xml中,proxool的配置问题:
[html] view plaincopy
<servlet>  
    <servlet-name>ServletConfigurator</servlet-name>  
    <servlet-class>  
        org.logicalcobwebs.proxool.configuration.ServletConfigurator  
    </servlet-class>  
    <init-param>  
        <param-name>xmlFile</param-name>  
        <param-value>WEB-INF/proxool.xml</param-value>  
    </init-param>  
    <load-on-startup>0</load-on-startup>  
</servlet>  
 这里的问题出在<load-on-startup>0</load-on-startup>,我们先来了解一下<load-on-startup>元素,它是用来标记容器是否在启动的时候就加载这个servlet(实例化并调用其init()方法),它的值必须是一个整数,表示servlet应该被载入的顺序,当值为0或者大于0时,表示容器在应用启动时就加载并初始化这个servlet,当值小于0或者没有指定时,则表示容器在该servlet被选择时才会去加载。正数的值越小,该servlet的优先级越高,应用启动时就越先加载。当值相同时,容器就会自己选择顺序来加载。所以,<load-on-startup>x</load-on-startup>,中x的取值1,2,3,4,5代表的是优先级(而非启动延迟时间)。这里将0改为1保证了proxool配置的servlet最先加载即可。

 
       但是按照上面的说的,还是报同样的错误,于是,我怀疑是不是由于改成maven项目了,发布到tomcat的时候,系统没有找到proxool文件,结果也不是。最后发现是pom文件中对mysql的驱动包引用错误了。

     解决问题的思路还是太窄了,还差得远呢。。。。。。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值