0

我正在尝试使用 wsimport 从 Navision Web 服务(NTLM 身份验证)生成源文件。下面是命令 wsimport -XdisableSSLHostnameVerification -d generated -s source -Xauthfile auth2.txt -keep " https://XXX.XXX.XXX .XXX:XXXX/XXXell/WS/XXXXLimited/Page/XXXXXOrder "

在 auth.txt

http[s]://user:password@host:port//

我无法生成源文件。请提供任何可以帮助的链接或示例

任何快速帮助都将得到应用......

4

2 回答 2

0

只需要求 Navision 管理员更改配置以使用基本身份验证:

如何:使用访问密钥进行 SOAP 和 OData Web 服务身份验证

干杯

于 2018-01-18T22:39:19.993 回答
0

这个帖子很老了,但如果有人路过,我会分享我的经验。

对于 NTLM,您不需要文件auth.txt

TL;TR

如果您使用的tools.jar com.sun.tools.internal.ws.WsImportJava"-Dhttp.auth.ntlm.domain=MYDOMAIN" "-Djdk.http.ntlm.transparentAuth=allHosts"大于1.8.0_181.

长版

在 Java 之前1.8.0_181,默认情况下启用 NTLM,但不再是这种情况(我使用的当前版本是1.8.0_222“)。请参阅https://stackoverflow.com/a/54628051/349228

为了能够将 NTLM 与wsimport工具一起使用,我必须tools.jar手动使用:

java "-Dhttp.auth.ntlm.domain=MYDOMAIN" "-Djdk.http.ntlm.transparentAuth=allHosts" -cp %JAVA_HOME%\lib\tools.jar com.sun.tools.internal.ws.WsImport -p "my.target.package.name" -d . -keep -encoding UTF-8 "http://navisionhost:7047/DynamicsNAV110/WS/Test 01/Page/MyPage"

NTLM 的关键部分是 2 个 java 选项"-Dhttp.auth.ntlm.domain=MYDOMAIN" "-Djdk.http.ntlm.transparentAuth=allHosts"%JAVA_HOME%\lib\tools.jar除了我们手动从这个 jar 运行 Main Java Class 之外,其余的都接近原生工具调用。

于 2019-07-29T13:32:47.663 回答