使用 HTTP 身份验证和 maven-jaxb2-plugin 为 WSDL 生成模式
Generate a schema for WSDL with HTTP authentication and the maven-jaxb2-plugin
我想使用 jaxb2 插件生成可从安全 URL(使用用户 ID 和密码进行基本身份验证)访问的 WSDL。
我应该在哪里指定凭据以生成架构?在不提供它们的情况下,我在模式生成期间遇到了一个 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>
目前不支持下载架构的 HTTP 身份验证,a pull request to add it was declined,因此不会实施。这是因为最好下载 WSDL 并在本地处理它,而不是在每次构建期间下载它:
- 它使构建高度依赖于 WSDL 的可用性,这可能无法保证并且最终可能会无缘无故地导致构建失败;
- 构建不再可重复,这与 Maven 的目标相反,因为您不一定控制远程 WSDL 更新的方式和时间。
a somewhat hacky way 可以使用 Apache CXF Codegen 插件代替,但我真的不推荐它。
我想使用 jaxb2 插件生成可从安全 URL(使用用户 ID 和密码进行基本身份验证)访问的 WSDL。
我应该在哪里指定凭据以生成架构?在不提供它们的情况下,我在模式生成期间遇到了一个 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>
目前不支持下载架构的 HTTP 身份验证,a pull request to add it was declined,因此不会实施。这是因为最好下载 WSDL 并在本地处理它,而不是在每次构建期间下载它:
- 它使构建高度依赖于 WSDL 的可用性,这可能无法保证并且最终可能会无缘无故地导致构建失败;
- 构建不再可重复,这与 Maven 的目标相反,因为您不一定控制远程 WSDL 更新的方式和时间。
a somewhat hacky way 可以使用 Apache CXF Codegen 插件代替,但我真的不推荐它。