我正在尝试从使用基本身份验证的WSLD文件生成java类。
虽然有很多插件,但我必须使用以下插件:org.jvnet.jaxb2.maven2:maven-jaxb2-plugin
使用wsimport
或wsdl2java
,我找到了配置基本身份验证参数的方法。使用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。
答案 0 :(得分:1)
wsimport
,wsdl2java
,maven-jaxb2
用于从Descriptor文件生成代理类。
由于您未获得授权(401),可能是由于错误的信用,或者您可能未在请求中发送凭据等。
对于基本身份验证,请参阅another stackoverflow question here
另外,如果你可以在配置Creds的地方发布你的确切代码,那将有助于找出原因
答案 1 :(得分:1)
我还没有找到解决这个问题的方法。我最终下载了.wsdl
和所需的.xsd
文件,并对其进行了正确编辑(更改了导入网址)。
注意:对于遇到相同问题的人,我建议使用jaxws:wsimport插件,该插件支持配置基本身份验证的xauthFile
选项。