Java 在Tomcat中使用JNDI关闭连接

Java 在Tomcat中使用JNDI关闭连接,java,spring,tomcat,jndi,Java,Spring,Tomcat,Jndi,在Tomcat9和JDK1.8下运行,使用Spring5,我试图配置一个JNDI连接来获取数据源 如果我通过XML配置Spring,我就得到了我的数据源,一切看起来都很好。我在applicationContext.xml中配置了数据源,如下所示: <jee: jndi-lookup id = "dataSource" jndi-name = "jdbc / yages" resource-ref = "true" /> 数据源似乎创建正确,但与数据库的连接似乎已关闭

在Tomcat9和JDK1.8下运行,使用Spring5,我试图配置一个JNDI连接来获取数据源

如果我通过XML配置Spring,我就得到了我的数据源,一切看起来都很好。我在applicationContext.xml中配置了数据源,如下所示:

<jee: jndi-lookup id = "dataSource" jndi-name = "jdbc / yages"
        resource-ref = "true" />
数据源似乎创建正确,但与数据库的连接似乎已关闭。 但是,如果我使用数据源,通过XML对其进行配置,它对我来说工作得很好,这就是为什么我认为它既不是数据库连接的问题,也不是Tomcat配置的问题

知道为什么连接被关闭了吗

谢谢。

我找到了解决办法。 使用此指令创建Bean是非常困难的

@Bean(name = "dataSource", destroyMethod = "")

问题是Spring需要取消部署、销毁Bean并关闭连接。为了避免这种情况,我必须更改Spring的默认行为。

为什么要在数据源上调用getConnection?还要看一看,在您提供的内容中,我没有看到这与打开连接有任何关系,错误具体是关于关闭数据源的。这可能表明它一开始从未成功打开过。配置中的jndi名称看起来很奇怪,它真的有空格吗?我调用getConnection,只是为了测试。如果连接关闭,那么Java会抛出一个异常。
@Bean(name = "dataSource", destroyMethod = "")