zac*_*ung 9 tomcat7 spring-boot
我有一个有数据源的应用程序.每次我从管理器GUI取消部署应用程序时,数据源都将被关闭.当我尝试重新部署时,数据源保持关闭并抛出以下异常:
{
"status" : "DOWN",
"error" : "org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is java.sql.SQLException: Data source is closed"
}
Caused by: java.sql.SQLException: Data source is closed
at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1362) ~[tomcat-dbcp.jar:7.0.53]
at org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044) ~[tomcat-dbcp.jar:7.0.53]
at org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.getConnection(DatasourceConnectionProviderImpl.java:139) ~[hibernate-core-4.3.1.Final.jar:4.3.1.Final]
at org.hibernate.internal.AbstractSessionImpl$NonContextualJdbcConnectionAccess.obtainConnection(AbstractSessionImpl.java:380) ~[hibernate-core-4.3.1.Final.jar:4.3.1.Final]
at org.hibernate.engine.jdbc.internal.LogicalConnectionImpl.obtainConnection(LogicalConnectionImpl.java:228) ~[hibernate-core-4.3.1.Final.jar:4.3.1.Final]
... 81 common frames omitted
Run Code Online (Sandbox Code Playgroud)
重新启动服务器可以解决此问题,但这对于生产应用程序来说不是可接受的解决方案.
我有一个不同的应用程序与不同的数据源具有相同的问题.
两个应用程序都使用Spring Boot版本1.1.4和Tomcat 7.其中一个应用程序转换为Spring Boot,并且在转换之前没有数据源问题.
下面是我在Spring Boot Application.java文件中创建数据源的方法.
@Bean()
public DataSource dataSource() {
return new JndiDataSourceLookup().getDataSource("com.datasource.CONSUMER");
}
Run Code Online (Sandbox Code Playgroud)
我如何阻止这种情况发生?
And*_*son 22
这不是Spring Boot特有的,它是标准的Spring行为.
默认情况下,Spring会推断bean的destroy方法.从javadoc@Bean:
为方便用户,容器将尝试针对从该
@Bean方法返回的对象推断出destroy 方法.例如,给定一个@Bean返回Apache Commons DBCPBasicDataSource的close()方法,容器将注意到该对象上可用的方法并自动将其注册为destroyMethod.这种"破坏方法推理"目前仅限于检测名为"close"或"shutdown"的公共,非arg方法.
javadoc继续描述如何禁用此行为:
要禁用特定的destroy方法推断
@Bean,请指定一个空字符串作为值,例如@Bean(destroyMethod="")
您需要更新您的dataSource()方法:
@Bean(destroyMethod="")
public DataSource dataSource() {
return new JndiDataSourceLookup().getDataSource("com.datasource.CONSUMER");
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7369 次 |
| 最近记录: |