我正在尝试使用wsimport从Navision Web服务(NTLM身份验证)生成源文件.Below是命令 wsimport -XdisableSSLHostnameVerification -d generated -s source -Xauthfile auth2.txt -keep“https://XXX.XXX.XXX.XXX:XXXX/XXXell/WS/XXXXLimited/Page/XXXXXOrder”
在auth.txt中
HTTP [秒]://用户:密码@主机:端口//
我无法生成源文件。请帮助任何可以提供帮助的链接或示例
任何快速帮助都会得到满足......
答案 0 :(得分:0)
只需要让Navision管理员更改配置以使用Basic Auth:
How to: Use an Access Key for SOAP and OData Web Service Authentication
干杯
答案 1 :(得分:0)
该线程很旧,但是如果有人经过我,我会分享我的经验。
对于NTLM,您不需要需要文件auth.txt
TL; TR
如果您使用的Java版本大于tools.jar com.sun.tools.internal.ws.WsImport
,请先使用"-Dhttp.auth.ntlm.domain=MYDOMAIN" "-Djdk.http.ntlm.transparentAuth=allHosts"
并添加Java选项1.8.0_181
。
长版
在Java 1.8.0_181
之前,默认情况下已启用NTLM,但现在情况不再如此(我使用的当前版本为1.8.0_222
“)。请参见https://stackoverflow.com/a/54628051/349228
要能够通过wsimport
工具使用NTLM,我必须手动使用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类。