【问题标题】:Generate java classes from a wsdl url with basic authentication使用基本身份验证从 wsdl url 生成 java 类
【发布时间】:2018-01-29 10:12:34
【问题描述】:

我正在尝试从使用基本身份验证的 WSLD 文件生成 java 类。

虽然有很多插件,但我必须使用以下一个:org.jvnet.jaxb2.maven2:maven-jaxb2-plugin

通过wsimportwsdl2java,我找到了配置基本身份验证参数的方法。使用maven-jaxb2-plugin 我没有运气。

我的配置如下:

       <plugin>
            <groupId>org.jvnet.jaxb2.maven2</groupId>
            <artifactId>maven-jaxb2-plugin</artifactId>
            <version>0.13.2</version>
            <executions>
                <execution>
                    <goals>
                        <goal>generate</goal>
                    </goals>
                    <configuration>
                        <packageName>com.mycompany</packageName>
                        <sourceType>wsdl</sourceType>
                        <specVersion>2.2</specVersion>
                        <schemas>
                            <schema>
                                <url>https://some-url?wsdl</url>
                            </schema>
                        </schemas>

                        <outputDirectory>target/generated-sources/xjb</outputDirectory>
                        <clearOutputDir>false</clearOutputDir>
                        <useActiveProxyAsHttpproxy>true</useActiveProxyAsHttpproxy>
                    </configuration>
                </execution>
            </executions>
        </plugin>

正如预期的那样,构建失败并显示以下消息:

Caused by: java.io.IOException: Server returned HTTP response code: 401 for URL: https://some-url?wsdl
at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1840)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1441)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:254)
at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(XMLEntityManager.java:647)
at com.sun.org.apache.xerces.internal.impl.XMLVersionDetector.determineDocVersion(XMLVersionDetector.java:189)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:812)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:777)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1213)
at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.getSchemaDocument(XSDHandler.java:2275)
... 36 more

关于基本身份验证配置的任何想法?提前致谢!

注意:https://username:pass@some-url?wsdl,由于未经授权的请求,我仍然收到 IOException。

【问题讨论】:

    标签: java maven jaxb2 xjc maven-jaxb2-plugin


    【解决方案1】:

    我还没有找到解决这个问题的任何方法。我最终下载了 .wsdl 和所需的 .xsd 文件并正确编辑它们(更改了导入 URL)。

    注意:对于有同样问题的人,我会推荐jaxws:wsimport 插件,它支持xauthFile 选项用于配置基本身份验证。

    【讨论】:

      【解决方案2】:

      wsimportwsdl2javamaven-jaxb2 用于从描述符文件中生成代理类。 由于您正在获得未经授权 (401),这可能是由于错误的凭据,也可能是您没有在请求中发送凭据等。

      基本认证请参考another stackoverflow question here

      此外,如果您可以在此处发布您配置 Cred 的确切代码,这将有助于确定原因

      【讨论】:

      • 您好 Sunil,感谢您的回答!不过,我不确定我是否被理解。我正在尝试从 wsdl 文件生成代码。访问所需文件需要基本身份验证。这应该在执行 maven 插件期间以某种方式设置。
      猜你喜欢
      • 1970-01-01
      • 2011-03-22
      • 2023-03-22
      • 1970-01-01
      • 1970-01-01
      • 2014-09-15
      • 1970-01-01
      • 2017-08-13
      • 1970-01-01
      相关资源
      最近更新 更多