Java DropwizardAppRule类规则在测试完成后不会释放连接

Java DropwizardAppRule类规则在测试完成后不会释放连接,java,junit,jersey,dropwizard,Java,Junit,Jersey,Dropwizard,我使用Dropwizard对用Java编写的RESTful应用程序进行了一些集成测试。测试套件运行正常,直到最终挂起,我得到了一个异常,异常为C3P0PooledConnectionPoolManager:java.sql.SQLNonTransientConnectionException:连接太多 我使用C3P0Registry.getPooledDataSources()确定每次测试后都没有清理连接,但我将问题误诊为没有关闭jersey响应实体,如下所述: 许多测试只检查一个状态代码,因此

我使用Dropwizard对用Java编写的RESTful应用程序进行了一些集成测试。测试套件运行正常,直到最终挂起,我得到了一个异常,异常为
C3P0PooledConnectionPoolManager
java.sql.SQLNonTransientConnectionException:连接太多

我使用
C3P0Registry.getPooledDataSources()
确定每次测试后都没有清理连接,但我将问题误诊为没有关闭jersey响应实体,如下所述:

许多测试只检查一个状态代码,因此对我来说这是有意义的(在链接中,它声明:“如果您不读取实体,那么您需要通过
response.close()
”手动关闭响应)。然而,在解决了这个问题并确保每个实体都已关闭之后,我仍然在测试之间获得持久连接

我使用
DropwizardAppRule
作为类规则,在每次测试运行开始和结束时创建后,我可以调用关闭与规则关联的客户端,但连接保持打开状态。我的
C3P0ConnectionPool
在运行的每个测试类中获得3个连接,我无法找到一种方法来阻止它随着添加的每个新类而增长

类规则片段:

    @ClassRule
    public static final DropwizardAppRule<MicroServiceCoreConfiguration> RULE =
            new DropwizardAppRule<>(App.class, ResourceHelpers.resourceFilePath("./config.yml"));
@ClassRule
公共静态最终删除规则=
新的DropwizardAppRule(App.class,ResourceHelpers.resourceFilePath(“./config.yml”);
将使用所请求的任何信息进行更新