Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java IO错误:在部署JAR文件后,连接在spring引导中超时?_Java_Spring_Spring Boot_Spring Data Jpa_Embedded Tomcat 7 - Fatal编程技术网

Java IO错误:在部署JAR文件后,连接在spring引导中超时?

Java IO错误:在部署JAR文件后,连接在spring引导中超时?,java,spring,spring-boot,spring-data-jpa,embedded-tomcat-7,Java,Spring,Spring Boot,Spring Data Jpa,Embedded Tomcat 7,我已经在我的服务器上部署了jar文件,该文件是从spring启动应用程序创建的。因此,我们使用了嵌入式tomcat 我已经在1-java类中为此应用程序设置了以下数据库配置 import org.apache.commons.dbcp.BasicDataSource; ... @Bean public DataSource dataSource() { //DriverManagerDataSource dataSource = new DriverMan

我已经在我的
服务器上部署了
jar
文件,该文件是从
spring启动应用程序创建的。因此,我们使用了
嵌入式tomcat

我已经在1-
java
类中为此
应用程序设置了以下
数据库配置

import org.apache.commons.dbcp.BasicDataSource;
    ...
    @Bean
    public DataSource dataSource() {
        //DriverManagerDataSource dataSource = new DriverManagerDataSource();
        BasicDataSource dataSource = new BasicDataSource();
        dataSource.setDriverClassName(environment.getRequiredProperty("spring.datasource.driverClassName"));
        dataSource.setUrl(environment.getRequiredProperty("spring.datasource.url"));
        dataSource.setUsername(environment.getRequiredProperty("spring.datasource.username"));
        dataSource.setPassword(environment.getRequiredProperty("spring.datasource.password"));
        dataSource.setMaxActive(10);
        dataSource.setMaxIdle(3);
        dataSource.setMaxWait(environment.getRequiredProperty("spring.datasource.tomcat.max-wait"));
        dataSource.setTestOnBorrow(environment.getRequiredProperty("spring.datasource.tomcat.test-on-borrow"));
        dataSource.setInitialSize(environment.getRequiredProperty("spring.datasource.tomcat.initial-size"));
        return dataSource;
    }
我注意到,在部署最初的几分钟时,它工作得很好。但经过一段时间后,它开始出现以下错误

     WARN   SQL Error: 17002, SQLState: 08006
     ERROR  IO Error: Connection timed out (Read failed)
     WARN   SQL Error: 0, SQLState: null
     ERROR  Already closed.
     ERROR  Forwarding to error page from request [/client] due to exception [Could not commit Hibernate transaction; nested exception is org.hibernate.TransactionException: Unable to commit against JDBC Connection]
    org.springframework.transaction.TransactionSystemException: Could not commit Hibernate transaction; nested exception is org.hibernate.TransactionException: Unable to commit against JDBC Connection
        at org.springframework.orm.hibernate5.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:586) ~[spring-orm-4.3.6.RELEASE.jar!/:4.3.6.RELEASE]
        at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:761) ~[spring-tx-4.3.6.RELEASE.jar!/:4.3.6.RELEASE]
        at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:730) ~[spring-tx-4.3.6.RELEASE.jar!/:4.3.6.RELEASE]
        at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:504) ~[spring-tx-4.3.6.RELEASE.jar!/:4.3.6.RELEASE]
        at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:292) ~[spring-tx-4.3.6.RELEASE.jar!/:4.3.6.RELEASE]
        at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96) ~[spring-tx-4.3.6.RELEASE.jar!/:4.3.6.RELEASE]
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) ~[spring-aop-4.3.6.RELEASE.jar!/:4.3.6.RELEASE]
        at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:136) ~[spring-tx-4.3.6.RELEASE.jar!/:4.3.6.RELEASE]
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) ~[spring-aop-4.3.6.RELEASE.jar!/:4.3.6.RELEASE]
        at org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$CrudMethodMetadataPopulatingMethodInterceptor.invoke(CrudMethodMetadataPostProcessor.java:133) ~[spring-data-jpa-1.11.0.RELEASE.jar!/:?]
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) ~[spring-aop-4.3.6.RELEASE.jar!/:4.3.6.RELEASE]
        at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92) ~[spring-aop-4.3.6.RELEASE.jar!/:4.3.6.RELEASE]
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) ~[spring-aop-4.3.6.RELEASE.jar!/:4.3.6.RELEASE]
        at org.springframework.data.repository.core.support.SurroundingTransactionDetectorMethodInterceptor.invoke(SurroundingTransactionDetectorMethodInterceptor.java:57) ~[spring-data-commons-1.13.0.RELEASE.jar!/:?]
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) ~[spring-aop-4.3.6.RELEASE.jar!/:4.3.6.RELEASE]
        at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:213) ~[spring-aop-4.3.6.RELEASE.jar!/:4.3.6.RELEASE]
        at com.sun.proxy.$Proxy129.findUserWithCompanyInfo(Unknown Source) ~
[?:?]
Caused by: org.hibernate.TransactionException: Unable to commit against JDBC Connection
    at org.hibernate.resource.jdbc.internal.AbstractLogicalConnectionImplementor.commit(AbstractLogicalConnectionImplementor.java:86) ~[hibernate-core-5.0.11.Final.jar!/:5.0.11.Final]
    at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl$TransactionDriverControlImpl.commit(JdbcResourceLocalTransactionCoordinatorImpl.java:232) ~[hibernate-core-5.0.11.Final.jar!/:5.0.11.Final]
    at org.hibernate.engine.transaction.internal.TransactionImpl.commit(TransactionImpl.java:65) ~[hibernate-core-5.0.11.Final.jar!/:5.0.11.Final]
    at org.springframework.orm.hibernate5.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:582) ~[spring-orm-4.3.6.RELEASE.jar!/:4.3.6.RELEASE]
    ... 111 more
Caused by: java.sql.SQLRecoverableException: IO Error: Connection timed out (Read failed)
    at oracle.jdbc.driver.T4CConnection.doCommit(T4CConnection.java:665) ~[ojdbc6-11.2.0.3.jar!/:11.2.0.3.0]
    at oracle.jdbc.driver.PhysicalConnection.commit(PhysicalConnection.java:3901) ~[ojdbc6-11.2.0.3.jar!/:11.2.0.3.0]
    at oracle.jdbc.driver.PhysicalConnection.commit(PhysicalConnection.java:3907) ~[ojdbc6-11.2.0.3.jar!/:11.2.0.3.0]
    at org.apache.commons.dbcp.DelegatingConnection.commit(DelegatingConnection.java:301) ~[commons-dbcp-1.2.2.jar!/:1.2.2]
    at org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.commit(PoolingDataSource.java:200) ~[commons-dbcp-1.2.2.jar!/:1.2.2]
    at org.hibernate.resource.jdbc.internal.AbstractLogicalConnectionImplementor.commit(AbstractLogicalConnectionImplementor.java:80) ~[hibernate-core-5.0.11.Final.jar!/:5.0.11.Final]
    at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl$TransactionDriverControlImpl.commit(JdbcResourceLocalTransactionCoordinatorImpl.java:232) ~[hibernate-core-5.0.11.Final.jar!/:5.0.11.Final]
    at org.hibernate.engine.transaction.internal.TransactionImpl.commit(TransactionImpl.java:65) ~[hibernate-core-5.0.11.Final.jar!/:5.0.11.Final]
    at org.springframework.orm.hibernate5.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:582) ~[spring-orm-4.3.6.RELEASE.jar!/:4.3.6.RELEASE]
    ... 111 more
Caused by: java.net.SocketException: Connection timed out (Read failed)
    at java.net.SocketInputStream.socketRead0(Native Method) ~[?:1.8.0_121]
    at java.net.SocketInputStream.socketRead(SocketInputStream.java:116) ~[?:1.8.0_121]
    at java.net.SocketInputStream.read(SocketInputStream.java:171) ~[?:1.8.0_121]
    at java.net.SocketInputStream.read(SocketInputStream.java:141) ~[?:1.8.0_121]
    at oracle.net.ns.Packet.receive(Packet.java:300) ~[ojdbc6-11.2.0.3.jar!/:11.2.0.3.0]
    at oracle.net.ns.DataPacket.receive(DataPacket.java:106) ~[ojdbc6-11.2.0.3.jar!/:11.2.0.3.0]
    at oracle.net.ns.NetInputStream.getNextPacket(NetInputStream.java:315) ~[ojdbc6-11.2.0.3.jar!/:11.2.0.3.0]
    at oracle.net.ns.NetInputStream.read(NetInputStream.java:260) ~[ojdbc6-11.2.0.3.jar!/:11.2.0.3.0]
    at oracle.net.ns.NetInputStream.read(NetInputStream.java:185) ~[ojdbc6-11.2.0.3.jar!/:11.2.0.3.0]
    at oracle.net.ns.NetInputStream.read(NetInputStream.java:102) ~[ojdbc6-11.2.0.3.jar!/:11.2.0.3.0]
    at oracle.jdbc.driver.T4CSocketInputStreamWrapper.readNextPacket(T4CSocketInputStreamWrapper.java:124) ~[ojdbc6-11.2.0.3.jar!/:11.2.0.3.0]
    at oracle.jdbc.driver.T4CSocketInputStreamWrapper.read(T4CSocketInputStreamWrapper.java:80) ~[ojdbc6-11.2.0.3.jar!/:11.2.0.3.0]
    at oracle.jdbc.driver.T4CMAREngine.unmarshalUB1(T4CMAREngine.java:1137) ~[ojdbc6-11.2.0.3.jar!/:11.2.0.3.0]
    at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:290) ~[ojdbc6-11.2.0.3.jar!/:11.2.0.3.0]
    at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:192) ~[ojdbc6-11.2.0.3.jar!/:11.2.0.3.0]
    at oracle.jdbc.driver.T4C7Ocommoncall.doOCOMMIT(T4C7Ocommoncall.java:75) ~[ojdbc6-11.2.0.3.jar!/:11.2.0.3.0]
    at oracle.jdbc.driver.T4CConnection.doCommit(T4CConnection.java:610) ~[ojdbc6-11.2.0.3.jar!/:11.2.0.3.0]
    at oracle.jdbc.driver.PhysicalConnection.commit(PhysicalConnection.java:3901) ~[ojdbc6-11.2.0.3.jar!/:11.2.0.3.0]
    at oracle.jdbc.driver.PhysicalConnection.commit(PhysicalConnection.java:3907) ~[ojdbc6-11.2.0.3.jar!/:11.2.0.3.0]
    at org.apache.commons.dbcp.DelegatingConnection.commit(DelegatingConnection.java:301) ~[commons-dbcp-1.2.2.jar!/:1.2.2]
    at org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.commit(PoolingDataSource.java:200) ~[commons-dbcp-1.2.2.jar!/:1.2.2]
    at org.hibernate.resource.jdbc.internal.AbstractLogicalConnectionImplementor.commit(AbstractLogicalConnectionImplementor.java:80) ~[hibernate-core-5.0.11.Final.jar!/:5.0.11.Final]
    at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl$TransactionDriverControlImpl.commit(JdbcResourceLocalTransactionCoordinatorImpl.java:232) ~[hibernate-core-5.0.11.Final.jar!/:5.0.11.Final]
    at org.hibernate.engine.transaction.internal.TransactionImpl.commit(TransactionImpl.java:65) ~[hibernate-core-5.0.11.Final.jar!/:5.0.11.Final]
    at org.springframework.orm.hibernate5.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:582) ~[spring-orm-4.3.6.RELEASE.jar!/:4.3.6.RELEASE]
    ... 111 more
谁能告诉我哪里出了问题?
编程端
网络端
这究竟是
问题

我假设boot正在为您配置数据源。您可以将以下内容添加到application.properties中

spring.datasource.validation query=select 1

spring.datasource.teston-borrow=true


我将这些添加到我的配置中,它可以正常工作。请检查。

您是否在spring.datasource.url中使用autoReconnect=true?您使用的是哪个版本的spring引导?@Subh我使用的是1.5.1.spring引导的发行版将此附加到您的数据源url autoReconnect=true@pvpkiran我到底需要在哪里应用autoReconnect=true,因为我看到没有这样的财产来实现这一点。如果你知道,那就告诉我。