假如你现在还在为自己的技术担忧,假如你现在想提升自己的工资,假如你想在职场上获得更多的话语权,假如你想顺利的度过35岁这个魔咒,假如你想体验BAT的工作环境,那么现在请我们一起开启提升技术之旅吧,详情请点击http://106.12.206.16:8080/qingruihappy/index.html
一,异常现象
1 com.bill99.inf.ibatis.DBException: queryForList error::sqlId=orgOrderAssetsMapping.queryModelOrgOrderAssetsMapping param:com.bill99.boss.domain.org.model.OrderAssetsMapping@51ab0a47 2 at com.bill99.inf.ibatis.SqlMapDao.queryForList(SqlMapDao.java:155) 3 at com.bill99.inf.ibatis.SqlMapDao.queryForObject(SqlMapDao.java:195) 4 at com.bill99.boss.domain.org.dao.OrderAssetsMappingDao.findOrderAssetsMappingByModel(OrderAssetsMappingDao.java:40) 5 at com.bill99.boss.domain.org.dao.OrderAssetsMappingDao$$FastClassBySpringCGLIB$$9e640e6c.invoke(<generated>) 6 at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204) 7 at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:700) 8 at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) 9 at org.springframework.aop.framework.adapter.AfterReturningAdviceInterceptor.invoke(AfterReturningAdviceInterceptor.java:51) 10 at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) 11 at org.springframework.aop.framework.adapter.MethodBeforeAdviceInterceptor.invoke(MethodBeforeAdviceInterceptor.java:51) 12 at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) 13 at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:91) 14 at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) 15 at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:633) 16 at com.bill99.boss.domain.org.dao.OrderAssetsMappingDao$$EnhancerBySpringCGLIB$$a4a208a3.findOrderAssetsMappingByModel(<generated>) 17 at com.bill99.boss.domain.org.service.impl.OrderAssetsMappingServiceImpl.findOrderAssetsMappingByModel(OrderAssetsMappingServiceImpl.java:42) 18 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 19 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 20 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 21 at java.lang.reflect.Method.invoke(Method.java:606) 22 at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317) 23 at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183) 24 at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) 25 at org.springframework.aop.framework.adapter.MethodBeforeAdviceInterceptor.invoke(MethodBeforeAdviceInterceptor.java:51) 26 at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) 27 at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:91) 28 at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) 29 at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204) 30 at com.sun.proxy.$Proxy216.findOrderAssetsMappingByModel(Unknown Source) 31 at com.bill99.boss.domain.org.service.AssetsMappingCache.getColNameByFiled(AssetsMappingCache.java:52) 32 at com.bill99.boss.domain.org.service.impl.AssetsProxyServiceImpl.covertFiledNameToColName(AssetsProxyServiceImpl.java:131) 33 at com.bill99.boss.domain.org.service.impl.AssetsProxyServiceImpl.covertParams(AssetsProxyServiceImpl.java:88) 34 at com.bill99.boss.domain.org.service.impl.AssetsProxyServiceImpl.createAssetsBean(AssetsProxyServiceImpl.java:43) 35 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 36 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 37 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 38 at java.lang.reflect.Method.invoke(Method.java:606) 39 at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317) 40 at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183) 41 at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) 42 at org.springframework.aop.framework.adapter.MethodBeforeAdviceInterceptor.invoke(MethodBeforeAdviceInterceptor.java:51) 43 at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) 44 at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:91) 45 at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) 46 at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204) 47 at com.sun.proxy.$Proxy217.createAssetsBean(Unknown Source) 48 at MdpTest.test(MdpTest.java:40) 49 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 50 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 51 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 52 at java.lang.reflect.Method.invoke(Method.java:606) 53 at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50) 54 at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) 55 at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47) 56 at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) 57 at org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:74) 58 at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:83) 59 at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:72) 60 at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:231) 61 at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:88) 62 at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) 63 at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) 64 at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) 65 at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) 66 at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) 67 at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61) 68 at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:71) 69 at org.junit.runners.ParentRunner.run(ParentRunner.java:363) 70 at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:174) 71 at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50) 72 at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) 73 at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467) 74 at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683) 75 at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390) 76 at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197) 77 Caused by: com.ibatis.common.jdbc.exception.NestedSQLException: 78 --- The error occurred while executing query. 79 --- Check the select t.id as "id",t.product_code as "productCode",t.filed_name as "filedName", t.col_name as "colName" from r_order_assets_mapping t where 1=1 and t.product_code=? and t.filed_name=? order by t.id desc . 80 --- Check the SQL Statement (preparation failed). 81 --- Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up. 82 at com.ibatis.sqlmap.engine.mapping.statement.MappedStatement.executeQueryWithCallback(MappedStatement.java:201) 83 at com.ibatis.sqlmap.engine.mapping.statement.MappedStatement.executeQueryForList(MappedStatement.java:139) 84 at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(SqlMapExecutorDelegate.java:578) 85 at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(SqlMapExecutorDelegate.java:552) 86 at com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.queryForList(SqlMapSessionImpl.java:118) 87 at com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.queryForList(SqlMapClientImpl.java:94) 88 at com.bill99.inf.ibatis.SqlMapDao.queryForList(SqlMapDao.java:151) 89 ... 74 more 90 Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up. 91 at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 92 at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) 93 at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 94 at java.lang.reflect.Constructor.newInstance(Constructor.java:526) 95 at com.mysql.jdbc.Util.handleNewInstance(Util.java:409) 96 at com.mysql.jdbc.Util.getInstance(Util.java:384) 97 at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1015) 98 at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:989) 99 at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:984) 100 at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:929) 101 at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2412) 102 at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:787) 103 at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:49) 104 at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 105 at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) 106 at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 107 at java.lang.reflect.Constructor.newInstance(Constructor.java:526) 108 at com.mysql.jdbc.Util.handleNewInstance(Util.java:409) 109 at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:357) 110 at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:285) 111 at java.sql.DriverManager.getConnection(DriverManager.java:571) 112 at java.sql.DriverManager.getConnection(DriverManager.java:187) 113 at org.springframework.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriverManager(DriverManagerDataSource.java:173) 114 at org.springframework.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriver(DriverManagerDataSource.java:164) 115 at org.springframework.jdbc.datasource.AbstractDriverBasedDataSource.getConnectionFromDriver(AbstractDriverBasedDataSource.java:153) 116 at org.springframework.jdbc.datasource.AbstractDriverBasedDataSource.getConnection(AbstractDriverBasedDataSource.java:119) 117 at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:111) 118 at org.springframework.jdbc.datasource.TransactionAwareDataSourceProxy$TransactionAwareInvocationHandler.invoke(TransactionAwareDataSourceProxy.java:224) 119 at com.sun.proxy.$Proxy399.prepareStatement(Unknown Source) 120 at com.ibatis.sqlmap.engine.execution.DefaultSqlExecutor.prepareStatement(DefaultSqlExecutor.java:519) 121 at com.ibatis.sqlmap.engine.execution.DefaultSqlExecutor.executeQuery(DefaultSqlExecutor.java:173) 122 at com.ibatis.sqlmap.engine.mapping.statement.MappedStatement.sqlExecuteQuery(MappedStatement.java:221) 123 at com.ibatis.sqlmap.engine.mapping.statement.MappedStatement.executeQueryWithCallback(MappedStatement.java:189) 124 ... 80 more 125 Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure 126 127 The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server. 128 at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 129 at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) 130 at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 131 at java.lang.reflect.Constructor.newInstance(Constructor.java:526) 132 at com.mysql.jdbc.Util.handleNewInstance(Util.java:409) 133 at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1122) 134 at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:344) 135 at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2334) 136 ... 102 more 137 Caused by: java.net.ConnectException: Connection timed out: connect 138 at java.net.DualStackPlainSocketImpl.connect0(Native Method) 139 at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:79) 140 at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339) 141 at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200) 142 at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182) 143 at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172) 144 at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) 145 at java.net.Socket.connect(Socket.java:579) 146 at java.net.Socket.connect(Socket.java:528) 147 at java.net.Socket.<init>(Socket.java:425) 148 at java.net.Socket.<init>(Socket.java:241) 149 at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:256) 150 at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:293) 151 ... 103 more
二,解决方法
有下面的导致的
1 <bean id="bossDS" 2 class="org.springframework.jdbc.datasource.DriverManagerDataSource" 3 p:driverClassName="org.gjt.mm.mysql.Driver" 4 p:url="jdbc:mysql://192.168.126.147:3306/appmobile?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8" 5 p:username="root" p:password="111111" />
或者
1 <bean id="bossDS" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 2 <property name="driverClassName"><value>oracle.jdbc.OracleDriver</value></property> 3 <property name="url"><value>jdbc:oracle:thin:@caij-b815c8aab6:1521:cui</value></property> 4 <property name="username"><value>cuishen</value></property> 5 <property name="password"><value>cuishen</value></property> 6 </bean>
改成
1 <bean id="bossDS" 2 class="org.apache.commons.dbcp.BasicDataSource" 3 destroy-method="close"> 4 <property name="driverClassName" value="com.mysql.jdbc.Driver"/> 5 <property name="url" value="jdbc:mysql://192.168.126.147:3306/boss?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8"/> 6 <property name="username" value="root"/> 7 <property name="password" value="111111"/> 8 <!--maxActive: 最大连接数量--> 9 <property name="maxActive" value="150"/> 10 <!--minIdle: 最小空闲连接--> 11 <property name="minIdle" value="5"/> 12 <!--maxIdle: 最大空闲连接--> 13 <property name="maxIdle" value="20"/> 14 <!--initialSize: 初始化连接--> 15 <property name="initialSize" value="30"/> 16 <!-- 连接被泄露时是否打印 --> 17 <property name="logAbandoned" value="true"/> 18 <!--removeAbandoned: 是否自动回收超时连接--> 19 <property name="removeAbandoned" value="true"/> 20 <!--removeAbandonedTimeout: 超时时间(以秒数为单位)--> 21 <property name="removeAbandonedTimeout" value="10"/> 22 <!--maxWait: 超时等待时间以毫秒为单位 1000等于60秒--> 23 <property name="maxWait" value="1000"/> 24 <!-- 在空闲连接回收器线程运行期间休眠的时间值,以毫秒为单位. --> 25 <property name="timeBetweenEvictionRunsMillis" value="10000"/> 26 <!-- 在每次空闲连接回收器线程(如果有)运行时检查的连接数量 --> 27 <property name="numTestsPerEvictionRun" value="10"/> 28 <!-- 1000 * 60 * 30 连接在池中保持空闲而不被空闲连接回收器线程--> 29 <property name="minEvictableIdleTimeMillis" value="10000"/> 30 <property name="validationQuery" value="SELECT 1"/> 31 </bean>
主要就是
1 <property name="validationQuery" value="SELECT 1" /> 2 <property name="testOnBorrow" value="true"/>
下面这两行代码在起作用
假如是连接池的话则需要下面的配置
1 <property name="initialPoolSize" value="10"/> 2 <property name="maxPoolSize" value="${cache.maxPoolSize}"/> 3 <property name="testConnectionOnCheckin" value="false"/> 4 <property name="testConnectionOnCheckout" value="true"/> 5 <property name="preferredTestQuery" value="SELECT 1"/>