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

本人最近因为用c3p0连接池时,总是有内存泄露(应该是我自己的问题,但找了好久都没有找到在哪里泄露),想到prolool的管理界面可以查看连接状态以及泄露状态,于是便想将c3p0换成proxool。

 

具体配置我就不多说了,网上垃圾的,好的一大堆,自己找一下就可以了。我只说说我出现的错误。

 

正如标题所写,其中文字面意思是“试图引用别名为 'xxx'的连接池是未被注册的 ”。怎么理解呢?根据这句话来说,我们一般想到的就是启动顺序。于是我查看了web.xml,发现proxool的配置是最先启动的,说明不是这个问题。接着我在网上搜索资料,大部分都千篇一律。。。找了大量资料,主要说法有以下几种:

1、直接在java类中用main方法执行才会出现这个问题

2、复制了别人的代码出现该问题,自己手写,问题解决

3、

<listener>
    <listener-class>
  org.springframework.web.context.ContextLoaderListener
    </listener-class>
 </listener>

说的是在applicationContext.xml里如果用<listener>就不行,需要换成下面的配置:

<servlet>
  <servlet-name>contextConfigLocation</servlet-name>
  <servlet-class>
   org.springframework.web.context.ContextLoaderServlet
  </servlet-class>
  <load-on-startup>2</load-on-startup>
 </servlet>

 

事实证明换了错误更多了,可能是我们其他的配置不同。

4、还有重写proxool的,因为<listener>的加载会先于proxool,所以某位大牛自己写了一个jar,说导进去就可以,还得把下面这段配置换成他定义的配置

    <!-- 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/spring-configure/proxool.xml</param-value> 
        </init-param> 
        <load-on-startup>1</load-on-startup> 
    </servlet>

他的配置我没记,因为换了还是报错,不起作用。

 

 

那么上述几种权威说法,我认为有意义的只有3、4,不过仍然无法解决我报错的问题。绞尽脑汁,突然灵光一闪:想起自己原来配置hibernate+struts+proxool时,proxool.xml里如果出现中文 就会出错,即使注释也不可以 ,于是马上着手将配置文件中的中文注释一删而净。果然问题解决!

错误提示"An attempt was made to access a socket in a way forbidden by its access permissions"通常是由于端口被占用导致的。这个错误提示表明Nginx无法访问指定的端口,因为该端口的访问权限被限制了。\[1\] 要解决这个问题,可以按照以下步骤进行操作: 1. 打开命令提示符(cmd)并以管理员身份运行。 2. 使用命令"netstat -ano"查看80端口的使用情况。\[3\] 3. 使用命令"netstat -ano | findstr "80""找到占用80端口的进程的PID(Process ID)。\[3\] 4. 使用命令"net stop http"强制停止占用80端口的进程。\[3\] 5. 如果无法终止PID为4的进程,可能是80端口被系统程序占用。可以在"此电脑"->"管理"->"服务"中找到"World Wide Web发布服务",停止并将启动方式设置为手动。\[3\] 6. 如果安装了SQL Server,请关闭部分SQL服务。\[3\] 7. 使用命令"netstat -ano"再次检查是否还有80端口。如果已经没有了80端口,重新启动Nginx即可。\[3\] 8. 如果以上方法都无法解决问题,可以尝试更改Nginx监听的端口号。在nginx.conf文件中将监听的端口80修改为其他未被占用的端口,例如8090,然后重新启动Nginx。\[3\] 通过以上步骤,您应该能够解决"An attempt was made to access a socket in a way forbidden by its access permissions"错误,并成功启动Nginx服务。 #### 引用[.reference_title] - *1* [Nginx无法启动 -10013: An attempt was made to access a socket in a way forbidden by its access ...](https://blog.csdn.net/ningfeng8899/article/details/128896444)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [解决:An attempt was made to access a socket in a way forbidden by its access permissions和无法终止 ...](https://blog.csdn.net/zch981964/article/details/128266227)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值