Уже подключено Исключение при запуске трикотажного приложения внутри контейнера докеров

Я пытаюсь докеризовать трикотажное приложение, которое действует как сервер REST и клиент. Приложение, похоже, ведет себя по-разному при работе внутри контейнера докеров.

Я могу выполнить запрос к не докеризованной службе (A). Проблема возникает, когда я пытаюсь выполнить запрос на другом не докеризованном сервере REST (B), используя в обоих случаях клиентский API JAX-RS:

// common code - for contacting both A & B services
private static final Client client = ClientBuilder.newClient().register(JacksonFeature.class);  

// inside the method called for each request
WebTarget target = client.target(location);
// for each query param : target = target.queryParam(..);
logger.info("This is logged successfully");
Response resp = target.request(MediaType.APPLICATION_JSON_TYPE).method(method, Entity.json(payloadBean));
logger.info("This is NOT logged for B service");

На данный момент я получаю javax.ws.rs.ProcessingException: Already connected ... Caused by: java.lang.IllegalStateException: Already connected

Я использую один файл Dockerfile, в котором я устанавливаю oracle-java-8 и (Tomcat или Jetty) точно так же, как я делал это на хосте перед докером, где все работает нормально!

SSL точно не задействован.

Запуск моего приложения на той же виртуальной машине со службой B приводит к такому же поведению.

Служба A — это трикотаж, а B — django, но это не должно быть связано с проблемой, поскольку обе они являются службами REST.

Любая идея о том, как я могу отладить эту ситуацию?


person stelios    schedule 14.04.2016    source источник


Ответы (1)


Прошу прощения за спам, как оказалось это была очень глупая ошибка:

service A location was an IP address
service B location was an uknown dns name to the container

Таким образом, передача --add-host B_fqdn:B_internal_IP в docker run решила проблему

person stelios    schedule 14.04.2016
comment
На всякий случай кому-то поможет: у меня была аналогичная проблема, но в моем случае обе службы были в одном контейнере, но они не знали, поэтому добавление дополнительного хоста решило ее. - person CTodea; 10.02.2017