Я пытаюсь докеризовать трикотажное приложение, которое действует как сервер 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.
Любая идея о том, как я могу отладить эту ситуацию?