我正在尝试从 Java 访问 Dynamics NAV 2013 R2 Web 服务。Web 服务正在运行,当我在 Internet Explorer 中输入 URL 时,我可以看到 WSDL,但首先会提示我输入用户名和密码。在 Wireshark 上,我可以看到它使用基于 NTLM 的身份验证。到目前为止,我只能从 Internet Explorer 打开 WSDL,当我在 Firefox 上打开它时,它给了我一个空白页并且没有错误。
我想要做的是使用 wsimport 工具从 Java 访问 Web 服务,但我无法进行身份验证。我已经在其中创建了一个文件夹~/.metro/auth
并将以下行放入其中:
http://userfoobar:passforbar@192.168.0.170:7047//DynamicsNAV71/WS/CRONUS%20AG/Page/PageWithCapitalization
我正在尝试通过以下方式访问网页:
wsimport -d generated -s sources http://@192.168.0.170:7047/DynamicsNAV71/WS/CRONUS%20AG/Page/PageWithCapitalization
我总是得到错误:
[ERROR] Server returned HTTP response code: 401 for URL: http://@192.168.0.170:7047/DynamicsNAV71/WS/CRONUS%20AG/Page/PageWithCapitalization, "http://@192.168.0.170:7047/DynamicsNAV71/WS/CRONUS%20AG/Page/PageWithCapitalization" needs authorization, please provide authorization file with read access at /home/user/.metro/auth or use -Xauthfile to give the authorization file and on each line provide authorization information using this format : http[s]://user:password@host:port//<url-path>
我在 Linux 和运行 NAV Webservice 的 Windows 7 机器上都试过这个。我是否必须在 NAV 中执行任何其他配置?有什么特别的技巧可以让它发挥作用吗?