Как определить пароль для wsdl в cxf-maven-plugin - PullRequest
2 голосов
/ 26 января 2011

Я хочу использовать cxf-maven-plugin для генерации Java-кода из WSDL для этого документа: http://cxf.apache.org/docs/maven-cxf-codegen-plugin-wsdl-to-java.html

Служба, к которой я пытаюсь обратиться, защищена паролем.Как мне указать пароль?Кажется, это не задокументировано.

 <plugin>
  <groupId>org.apache.cxf</groupId>
  <artifactId>cxf-codegen-plugin</artifactId>
  <executions>
    <execution>
      <id>generate-sources</id>
      <phase>generate-sources</phase>
      <configuration>
        <sourceRoot>${project.build.directory}/generated/cxf</sourceRoot>
        <wsdlOptions>
          <wsdlOption>
            <wsdl>http://host/TheService.wsdl</wsdl>
          </wsdlOption>
        </wsdlOptions>
      </configuration>
      <goals>
        <goal>wsdl2java</goal>
      </goals>
    </execution>
  </executions>
</plugin>

Ответы [ 3 ]

3 голосов
/ 09 сентября 2014

Вы можете использовать базовую схему аутентификации для URI следующим образом:

<wsdl>http://username:password@host/TheService.wsdl</wsdl>

Но если ваш wsdl ссылается на xsd с относительным путем, имя пользователя и пароль не будут использоваться для загрузки этих xsd ..Что вы можете сделать, это установить глобальный Authenticator ... Что вам нужно сделать, это добавить плагин exec для запуска класса, который установит аутентификатор по умолчанию для текущего запущенного jvm:

use http://mojo.codehaus.org/exec-maven-plugin/ и exec: java для запуска вашего класса в той же jvm, что и плагин codegen.Выполнение wsdl2java должно произойти после exec: java.Ваш класс выполнения установит Authenticator как объяснено здесь: http://docs.oracle.com/javase/7/docs/technotes/guides/net/http-auth.html

Когда-нибудь у нас будет usefull -Ddefault.authenticatorClass = package.to.my.AuthenticatorImpl jvm arg ...

0 голосов
/ 27 января 2011

Кажется, что нет способа загрузить защищенный паролем wsdl с помощью этого плагина, по крайней мере, нет соответствующих полей в WsdlOption , которые вы на самом деле настраиваете.

Вместо этого, в CXF версии 2.3+ вы можете настроить wsdl из репозитория maven с <wsdlArtifact> и установить загруженный вручную wsldfile

0 голосов
/ 26 января 2011

Вы пытались включить имя пользователя / пароль хоста в файл пользовательских настроек (~ / .m2 / settings.xml)?Я попробую это и посмотрю, что произойдет.

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