Java 在wildfly关机时使用数据源

Java 在wildfly关机时使用数据源,java,spring,jboss,datasource,wildfly,Java,Spring,Jboss,Datasource,Wildfly,我试图在关闭Wildfly服务器时对数据库执行一些更新 不幸的是,我用来更新数据库的数据源似乎在取消部署应用程序之前被关闭了 以下是相关代码: @PreDestroy public void shutdown() { logger.debug("|||||||||||||||||||||||||||||||| Closing GatewayDAO"); System.out.println("Closing GatewayDAO "); Session session

我试图在关闭Wildfly服务器时对数据库执行一些更新

不幸的是,我用来更新数据库的数据源似乎在取消部署应用程序之前被关闭了

以下是相关代码:

@PreDestroy
public void shutdown()
{
    logger.debug("|||||||||||||||||||||||||||||||| Closing GatewayDAO");
    System.out.println("Closing GatewayDAO ");

    Session session = getSession();
    Query query =  session.createQuery("UPDATE Gateway gw SET gw.status = 0, gw.lastActivity = NOW()");
    query.executeUpdate();
}
如您所见,我使用弹簧破坏检测

在Wildfly控制台中:

[...]

[WF] 11:58:22,794 INFO  [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-8) WFLYJCA0010: Unbound data source [java:jboss/datasources/RfBerry]

[...]


[WF] 11:58:23,500 INFO  [stdout] (ServerService Thread Pool -- 271) Closing GatewayDAO
[WF] 11:58:23,550 WARN  [org.hibernate.engine.jdbc.spi.SqlExceptionHelper] (ServerService Thread Pool -- 271) SQL Error: 0, SQLState: null
[WF] 11:58:23,550 ERROR [org.hibernate.engine.jdbc.spi.SqlExceptionHelper] (ServerService Thread Pool -- 271) javax.resource.ResourceException: IJ000470: You are trying to use a connection factory that has been shut down: java:jboss/datasources/RfBerry
[WF] 11:58:23,556 WARN  [org.springframework.context.annotation.CommonAnnotationBeanPostProcessor] (ServerService Thread Pool -- 271) Invocation of destroy method failed on bean with name 'gatewayDAOImpl': org.hibernate.exception.GenericJDBCException: Unable to acquire JDBC Connection
我不知道在应用程序取消部署后是否可以让wildfly关闭数据源


注意:当我刚刚取消部署应用程序并保持服务器打开时,代码就可以工作。

您也可以尝试使用
@DependsOn(“数据源”)

尝试注入数据源以生成对此的依赖关系。例如,
@Resource(lookup=“java:/app/datasource”)数据源数据源我已经试过了,它并没有解决我的问题,如果我尝试发送sql QueriesNot工作,会话仍然关闭,同样的错误,我不知道问题是在我的应用程序上还是spring就是这样工作的。。。