C3P0 连接池错误【已解决】-An exception occurred while acquiring a poolable resource. Will retry.

C3P0 连接池出错

今天在学习Spring MyBatis 整合时报错
异常如下:

[com.mchange.v2.resourcepool.BasicResourcePool]-An exception occurred while acquiring a poolable resource. Will retry.
java.sql.SQLException: ORA-01017: invalid username/password; logon denied

	at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:439)
	at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:388)
	at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:381)
	at oracle.jdbc.driver.T4CTTIfun.processError(T4CTTIfun.java:564)
	at oracle.jdbc.driver.T4CTTIoauthenticate.processError(T4CTTIoauthenticate.java:431)
	at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:436)
	at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:186)
	at oracle.jdbc.driver.T4CTTIoauthenticate.doOAUTH(T4CTTIoauthenticate.java:366)
	at oracle.jdbc.driver.T4CTTIoauthenticate.doOAUTH(T4CTTIoauthenticate.java:752)
	at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:359)
	at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:531)
	at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:221)
	at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32)
	at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:503)
	at com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:134)
	at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:182)
	at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:171)
	at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.acquireResource(C3P0PooledConnectionPool.java:137)
	at com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1014)
	at com.mchange.v2.resourcepool.BasicResourcePool.access$800(BasicResourcePool.java:32)
	at com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1810)
	at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)
org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException: 
### Error querying database.  Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is java.sql.SQLException: Connections could not be acquired from the underlying database!
### The error may exist in UserMapper.xml
### The error may involve com.Spring.Mapper.UserMapper.SearUser
### The error occurred while executing a query
### Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is java.sql.SQLException: Connections could not be acquired from the underlying database!

	at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:77)
	at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:446)
	at com.sun.proxy.$Proxy10.selectOne(Unknown Source)
	at org.mybatis.spring.SqlSessionTemplate.selectOne(SqlSessionTemplate.java:166)
	at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:83)
	at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:59)
	at com.sun.proxy.$Proxy11.SearUser(Unknown Source)
	at com.Spring.Service.UserServiceImpl.SearUser(UserServiceImpl.java:20)
	at SpringTest.test(SpringTest.java:12)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
	at org.junit.runner.JUnitCore.run(JUnitCore.java:160)
	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69)
	at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:33)
	at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:220)
	at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:53)

Process finished with exit code -1

出现的情况是C3P0连接池一直连接数据库,但是一直连接不上 所以频繁连接

具体解决方法如下:
检查db.propreties 文件

正确写法:

jdbc.driver=oracle.jdbc.driver.OracleDriver
jdbc.url=jdbc:oracle:thin:@//localhost:1521/MMH
jdbc.username=MMH
jdbc.password=0124

注:此处一定要加jdbc. !!!!!!

Spring 配置目录

    <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
        <!-- SpringEL 语法 ${key} -->
        <property name="driverClassName" value="${jdbc.driver}" />
        <property name="url" value="${jdbc.url}" />
        <!-- ${username}如果key是username,name 默认spring框架调用的当前操作系统的账号 解决方案:可以统一给key加一个前缀 -->
        <property name="username" value="${jdbc.username}" />
        <property name="password" value="${jdbc.password}" />
    </bean>

需要配置的属性自行配置

<think>嗯,我现在遇到了一个应用错误:“Application error: a client-side exception has occurred while loading 192.168.2.233 (see the browser console for more information)”。我需要解决这个问题。首先,我应该理解这个错误信息的意思。它提到客户端异常,所以问题可能出在前端代码,比如JavaScript错误,而不是服务器端的问题。用户被提示查看浏览器控制台获取更多信息,这应该是关键步骤。 接下来,我需要按照用户的指示打开浏览器的控制台。通常可以通过右键点击页面,选择“检查”或者“查看页面源代码”,然后切换到“控制台”选项卡。在控制台中,可能会有红色的错误信息,这些信息能帮助定位问题所在。 可能的常见原因有哪些呢?首先,可能是JavaScript代码中存在语法错误或者运行时错误,比如未定义的变量、函数调用错误等。其次,可能是资源加载失败,比如某些脚本文件、样式表或者图片没有正确加载,导致应用崩溃。第三,前端框架的问题,比如React、Vue或Angular在渲染组件时出错,可能由于状态管理不当或组件生命周期方法中的错误。第四,网络问题,比如跨域请求被阻止(CORS),或者API请求失败,导致前端无法获取必要的数据。第五,浏览器缓存问题,旧版本的代码或缓存的文件可能导致应用运行异常。 针对这些可能的原因,我应该如何逐一排查呢?首先,检查控制台中的具体错误信息,看看是否有明确的错误描述,比如哪个文件哪一行出了问题。如果是语法错误,可能需要检查对应的代码行。如果是资源加载失败,检查网络请求是否成功,确保所有资源文件路径正确,服务器可访问。如果使用前端框架,查看是否有组件渲染错误,比如未处理的异常或错误的props传递。如果是网络请求问题,确认API端点是否正确,是否有CORS头设置,以及后端服务是否正常运行。此外,清除浏览器缓存,强制重新加载页面(Ctrl + F5 或 Cmd + Shift + R)可能解决缓存导致的问题。 如果控制台中的错误信息不够明确,可能需要进一步调试。例如,在代码中使用console.log语句输出变量的值,检查是否有未定义或意外的值。使用断点调试工具逐步执行代码,观察哪里出现异常。如果是生产环境的问题,可能需要查看source map文件来定位压缩后的代码中的错误位置。 另外,检查是否有第三方库或依赖项的问题。有时候,库的版本更新可能导致兼容性问题,或者CDN上的资源不可用。确保所有依赖库的版本正确,并且资源链接有效。 如果问题仍然存在,可能需要查看前端应用的构建过程是否有问题。比如,Webpack、Babel等工具在打包过程中是否报错,导致生成的静态文件不完整或错误。检查构建日志,确认没有编译错误或警告。 还有可能的是环境配置问题,比如开发环境和生产环境的配置不同,导致某些功能在部署后失效。检查环境变量、API基地址等配置是否正确。 总结一下,解决这个错误的步骤应该是:1. 打开浏览器控制台,查看详细的错误信息;2. 根据错误信息定位问题根源;3. 检查相关代码、资源加载、网络请求等;4. 清除缓存,重新加载;5. 调试代码,验证修复方案。如果自己无法解决,可以将错误信息提供给开发团队进一步处理。</think>### 分步排查指南:解决客户端异常错误 `Application error: a client-side exception has occurred` #### 1. **查看浏览器控制台** - **操作步骤**: - 右键点击页面 → 选择 `检查` (Chrome/Firefox) 或 `查看元素` → 切换到 `控制台(Console)` 选项卡。 - **目标**:获取具体错误信息(如堆栈跟踪、文件名、行号)。 #### 2. **常见错误类型及解决方案** | **错误类型** | **可能原因** | **解决方案** | |------------------------|---------------------------|-----------------------------------------------------------------------------| | **语法错误** | 缺少括号、拼写错误等 | 根据控制台报错位置修正代码(如 `Uncaught SyntaxError`)。 | | **未定义变量/函数** | 变量未声明或作用域错误 | 检查变量命名、导入导出(如 `Uncaught ReferenceError: x is not defined`)。 | | **资源加载失败** | 文件路径错误或服务器未响应 | 检查网络请求状态码(404/500),修正资源路径或确保服务器运行。 | | **框架渲染错误** | React/Vue组件状态异常 | 检查组件生命周期、`props`传递(如 `Cannot read property 'map' of undefined`)。 | | **CORS跨域错误** | 后端未配置跨域头 | 后端设置 `Access-Control-Allow-Origin` 或通过代理转发请求。 | #### 3. **关键排查步骤** - **步骤1:检查网络请求** - 在浏览器开发者工具中,切换到 `网络(Network)` 选项卡。 - 刷新页面,观察是否有请求标红(状态码 ≥400)。 - 重点关注 `.js`、`.css` 文件或 API 请求是否失败。 - **步骤2:清除浏览器缓存** - 使用快捷键 `Ctrl + Shift + R`(Windows)或 `Cmd + Shift + R`(Mac)强制刷新。 - **步骤3:验证依赖项** - 检查 `package.json` 中库的版本是否兼容。 - 重新安装依赖:删除 `node_modules` → 运行 `npm install` 或 `yarn install`。 #### 4. **代码调试技巧** - **添加日志**:在关键代码位置插入 `console.log`,例如: ```javascript useEffect(() => { console.log("Data loaded:", data); // 检查数据是否成功获取 }, [data]); ``` - **断点调试**:在浏览器 `Sources` 面板中设置断点,逐步执行代码。 #### 5. **示例错误分析** - **错误信息**: ``` Uncaught TypeError: Cannot read property 'length' of null at App.js:15 ``` - **解读**:`App.js` 第15行尝试读取 `null` 的 `length` 属性。 - **修复**:添加空值检查: ```javascript if (data && data.length > 0) { // 安全操作数据 } ``` #### 6. **高级排查(生产环境)** - **启用Source Maps**: - 确保构建工具(如Webpack)生成 `*.map` 文件。 - 在浏览器中映射压缩代码到原始代码,方便定位错误- **监控工具**:集成Sentry/Bugsnag捕获客户端异常。 #### 7. **若仍无法解决** - 将以下信息提供给开发团队: - 浏览器控制台完整错误截图。 - 复现步骤及设备环境(浏览器版本、操作系统)。 - 相关代码片段或Git提交记录。 --- 通过以上步骤,可系统化定位并解决客户端异常问题。若需进一步协助,请提供具体错误日志。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值