Я использую wsimport
для генерации кода из конкретного WSDL
. Я попробовал Java 10, рукопожатие не удалось, затем я попробовал Java 9, и все было в порядке.
Я наблюдал за общением с помощью wireshark
, и причина стала ясна: сервер, с которым я общался, все еще использует TLSv1, и я думаю, что Java 10 wsimport
больше не допускает этого (по крайней мере, по умолчанию), хотя 9 поддерживает.
Я ничего не могу сделать с сервером, поэтому возникает вопрос, как я могу запустить Java 10 wsimport с допуском TLSv1?
Было проведено дополнительное исследование, и наиболее полезный тест был проведен с использованием ssl labs. Оказалось, что сервер поддерживает слабый набор шифров: TLS_RSA_WITH_3DES_EDE_CBC_SHA
.
Проблема была решена добавлением следующей опции java:
-Dhttps.cipherSuites=SSL_RSA_WITH_3DES_EDE_CBC_SHA
Невозможно указать набор шифров как TLS_RSA_WITH_3DES_EDE_CBC_SHA
. Соглашение об именах Java требует, чтобы он назывался SSL_RSA_WITH_3DES_EDE_CBC_SHA
.
Боковое примечание: ошибка, упомянутая в комментарии @ nullpointer выше, была решена во всех трех версиях, которые я пробовал: Java 9/10/11.
1. В основном, с Java11 не будет поддержки
wsimport
. 2. Это ошибка, кажется, связана с вашей проблемой?