这个帖子很老了,但如果有人路过,我会分享我的经验。
对于 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 之外,其余的都接近原生工具调用。