Я пытаюсь настроить службу, которая прослушивает сервер RabbitMQ, и я настроил код, используя Пример кода RabbitMQ от Github , который включает в себя следующий try-with-resources
блок
try (Connection connection = factory.newConnection();
Channel channel = connection.createChannel()) {
// code here
}
Когда я использую тот же код и собираю и запускаю этот сервис, используя java -cp myJar.jar MyService
, он просто запускается и сразу заканчивается (а echo $?
возвращает 0)
Однако, если я заменю блок следующим, тогда он будет работать нормально с той же командой, и я смогу запустить слушатель экземпляра RabbitMQ
try {
Connection connection = factory.newConnection();
Channel channel = connection.createChannel());
// code here
}
То же самое происходит, даже когда я создаю соединения с базой данных
try (Connection connection = dataSource.getConnection()) {
//code here
}
терпит неудачу, но
try {
Connection connection = dataSource.getConnection();
//code here
}
отлично работает и позволяет мне использовать соединение для ввода записей в БД.
Почему это происходит? Я использую OpenJDK 11.0.2
, и этот сервис является автономным, но остальная часть кодовой базы - это API отдыха, управляемый JAX-RS, если это помогает.