【问题标题】:How to generate source files from navision webservice with ntlm authentication如何使用 ntlm 身份验证从 navision webservice 生成源文件
【发布时间】:2018-01-17 11:29:32
【问题描述】:
【问题讨论】:
标签:
wsimport
navision
ntlm-authentication
【解决方案2】:
这个帖子很老了,但如果有人路过,我分享一下我的经验。
对于 NTLM,您确实不需要需要文件 auth.txt
TL;TR
如果您使用的 Java 大于 1.8.0_181,请使用 tools.jar com.sun.tools.internal.ws.WsImport 并在前面添加 Java 选项 "-Dhttp.auth.ntlm.domain=MYDOMAIN" "-Djdk.http.ntlm.transparentAuth=allHosts"。
加长版
在 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"。除了我们手动从这个 jar %JAVA_HOME%\lib\tools.jar 运行 Main Java Class 之外,其余的都接近原生工具调用。