JPOS и SSLSocket: «shutdownOutput () не поддерживается» - PullRequest
0 голосов
/ 09 июля 2019

Кажется, я не могу обдумать это, поэтому прошу вашей помощи.

Мы используем JPOS для передачи некоторых сообщений между нами и деловым партнером, и мы видим ошибкио "shutdownOutput () не поддерживается в SSLSocket".Кажется, это редкая проблема, , как заметил другой разработчик в 2012 году :

Почему я первый, кто столкнулся с этой проблемой?Я предполагаю, что упускаю что-то простое.Или никто не использует SSL с jpos.Или никто не закрывает соединения ...

В последующем обсуждении упоминается вопрос здесь на SO , но предложенные решения кажутся невозможными для применения из-за следующего потока событий:

  1. мы делаем один вызов в библиотеку JPOS для отправки запроса (org.jpos.iso.BaseChannel.send(ISOMsg msg))
  2. мы делаем один вызов в библиотеку JPOS для получения ответа (ISOMsg response = org.jpos.iso.BaseChannel.receive())
  3. через ряд внутренних методов и подметодов, JPOS получает ответ, обрабатывает его и закрывает сокет с помощью проблемного вызова shutdownOutput ()
  4. при попытке закрыть сокет,он выдаст исключение - и при этом отбросит интересующий нас ответ

Кажется, у нас нет «точки инъекции», где мы можем фактически получить сообщение, но не закрыть сокет(мы могли бы сделать это сами или обработать исключение по-другому).

Что я здесь не вижу?

К вашему сведению, мы используем JPOS v1.7.0 от 2010 года, но при чтении текущего кода кажется, что даже v2.1.7 делает то же самое.

Edit: Кроме того, есть некоторые функции ведения журналов, но, похоже, они полностью содержатсяв пределах звонка receive().Возможно, я мог бы исследовать более подробно, если бы я мог проверить журнал, но, кажется, нет места, где есть (или где я могу) установить (или передать) LogListener.Где я могу найти информацию об управлении журналами JPOS, как их просмотреть?

РЕДАКТИРОВАТЬ 2: Я был слеп, читая код.Исходя из очень проницательных комментариев, нам нужно обновить наш экземпляр JPOS по крайней мере до версии 1.8.8, чтобы получить исправление для этой проблемы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...