使用HTTP身份验证和maven-jaxb2-plugin为WSDL生成模式

时间:2017-02-09 12:50:15

标签: maven maven-jaxb2-plugin

我想使用jaxb2插件生成可从安全URL访问的WSDL(具有用户ID和密码的基本身份验证)。

我应该在哪里指定用于生成架构的凭据?如果不提供它们,我会在模式生成期间收到一个401错误。

<plugin>
    <groupId>org.jvnet.jaxb2.maven2</groupId>
    <artifactId>maven-jaxb2-plugin</artifactId>
    <version>0.13.1</version>
    <executions>
        <execution>
            <goals>
                <goal>generate</goal>
            </goals>
        </execution>
    </executions>
    <configuration>
        <schemaLanguage>WSDL</schemaLanguage>
        <generatePackage>hello.wsdl</generatePackage>
        <schemas>
            <schema>
                <url>http://www.webservicex.com/stockquote.asmx?WSDL</url>
            </schema>
        </schemas>
    </configuration>
</plugin>

1 个答案:

答案 0 :(得分:3)

目前不支持下载模式的HTTP身份验证,a pull request to add it was declined,因此无法实施。这是因为总是更喜欢下载WSDL并在本地处理它,而不是在每次构建期间下载它:

  • 它使构建高度依赖于WSDL的可用性,这可能无法保证,并且最终会导致构建失败;
  • 构建不再可重复,这与Maven所追求的相反,因为您不一定控制远程WSDL的更新方式和时间。

使用Apache CXF Codegen插件可以a somewhat hacky way来做,但我真的不推荐它。