У меня есть веб-приложение, написанное на gwt, и я использую базу данных PostgreSQL в бэкэнде. Когда я делаю новый сеанс на сервере, я настраиваю c3p0 и получаю соединение jdbc:
ComboPooledDataSource source = new ComboPooledDataSource();
Properties connectionProps = new Properties();
connectionProps.put("user", "username");
connectionProps.put("password", "password");
source.setProperties(connectionProps);
source.setJdbcUrl("some jdbc url that works");
и когда я закрываю сеанс на сервере, я закрываю ComboPooledDataSource.
Однако ... когда я нажимаю желтую кнопку "перезагрузить веб-сервер" в режиме разработки GWT и обновляю свою страницу, я получаю следующее предупреждение и кучу последующих ошибок, мешающих мне получить соединение с базой данных:
ПРЕДУПРЕЖДЕНИЕ: Mbean C3P0Registry уже зарегистрирован. Это, вероятно, означает, что приложение, использующее c3p0, было не развернуто, но не все PooledDataSources были закрыты до отмены развертывания. Это может привести к утечке ресурсов с течением времени. Пожалуйста, позаботьтесь о том, чтобы закрыть все PooledDataSources.
То, что я предполагаю, означает, что перезагрузка веб-сервера не закрыла созданный мной ComboPooledDataSource (вероятно, безопасное предположение). Есть ли способ заставить его сделать это, чтобы я мог получить соединение после перезагрузки веб-сервера?