Как использовать wsdl2java для генерации кода из WSDL, который защищен с помощью сертификата x.509? - PullRequest
0 голосов
/ 29 мая 2019

Я пытаюсь сгенерировать классы Java, используя wsdl2java.

Wsdl расположен на удаленном сервере, который защищен с помощью сертификата X509, таким образом, что, когда я пытаюсь получить к нему доступ в браузере, не имея сертификата в хранилище доверенных сертификатов, он возвращает ошибку (конечно, когдаУ меня есть сертификат, импортированный в certmgr.msc, wsdl показывает нормально).

К сожалению, когда я пытаюсь запустить wsdl2java, я получаю:

> org.apache.cxf.wsdl11.WSDLRuntimeException: Fail to create wsdl definition file:/resources/wsdl/my.xml: WSDLException (at /wsdl:definitions/wsdl:types/xsd:schema): faultCode=PARSER_ERROR: Problem parsing 'https://SERVER_HOST/my?xsd=../xsd/XX.xsd'.: javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure

У меня есть сертификат, импортированный в JKSхранить.

Как я могу посоветовать wsdl2java использовать этот сертификат от JKS для подключения к серверу?

1 Ответ

0 голосов
/ 29 мая 2019

Я хотел бы предложить вам пропустить эту проблему, выполнив следующие шаги:

  1. Загрузите этот wsdl вручную на локальный компьютер.

  2. Загрузите файлы xsd, на которые есть ссылки в этом файле wsdl, на ваш локальный компьютер.

  3. Измените этот wsdl для изменения местоположения xsd на локальное.

  4. Теперь вы можете создать код Java.

Если вы действительно хотите это сделать. Пожалуйста, обратитесь сюда:

"%JAVA_HOME%\bin\java" -Djavax.net.ssl.trustStore="{keystorefile}" -Djavax.net.ssl.trustStorePassword="{password}" -Djavax.net.ssl.keyStoreType="jks" -Dorg.jboss.security.ignoreHttpsHost="true" -Xmx128M -Djava.endorsed.dirs="%CXF_HOME%\lib\endorsed" -cp "%CXF_JAR%;%TOOLS_JAR%;%CLASSPATH%" -Djava.util.logging.config.file="%CXF_HOME%\etc\logging.properties" org.apache.cxf.tools.wadlto.WADLToJava %*

исходящий от: Как сгенерировать код клиента с помощью wsdl2java через https?

...