Attempt to refer to a unregistered pool by its alias '**'

      启动服务器时,报错:

ERROR [(logicalcobwebs.proxool.ProxoolDriver)] Problem
org.logicalcobwebs.proxool.ProxoolException: Attempt to refer to a unregistered pool by its alias 'oracle'

 

       Attempt to refer to a unregistered pool by its alias '**',意思是:试图引用一未注册别名为**的连接池,在网上查阅资料试图找出原因,现将其总结如下:

 

1、proxool.xml中配置的连接池加载成功,但在用连接池的时候,用自己写的java文件中调用出现的问题,就是写了一个main方法,然后用"java Application"运行,就会报Attempt to refer to a unregistered pool by its alias ‘test’ ,但是在JSP页面里并不会报错。问题的关键就是在这里,连接池的应用本来就是要通过服务器调用的,如果你在java文件中调用,就没有涉及到服务器,这样就会报错了!

如果你在java文件中用下面这种方式加载连接池是可用的:

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的配置问题:

<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最先加载即可。

 

         报错原因大致总结为以上四种,若还有其它原因,欢迎大家补充!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值