Access Dynamics NAV Webservice with Java(用Java访问Dynamic NAV WebService)
问题描述
我正在尝试从Java访问Dynamic 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 Web服务的Windows7计算机上都尝试过。我是否需要在NAV中执行任何其他配置?有什么特殊的技巧可以让它工作吗?
推荐答案
默认情况下,NAV使用Windows active Directory授权。我不确定wsimport在Java中做了什么,但url中提供的凭据不太可能起作用。您需要在服务器上的Nav Server Administration
管理单元中(或在配置文件中)完成与服务器进行授权或更改授权类型的协商过程。
soapUI
可以处理NTLM授权类型,因此您可以在其日志中看到通过协商过程进行的所有请求和响应。
这篇关于用Java访问Dynamic NAV WebService的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:用Java访问Dynamic NAV WebService
基础教程推荐
- 如何使用 Stream 在集合中拆分奇数和偶数以及两者的总和 2022-01-01
- 如何对 HashSet 进行排序? 2022-01-01
- Spring Boot Freemarker从2.2.0升级失败 2022-01-01
- Java 中保存最后 N 个元素的大小受限队列 2022-01-01
- 在螺旋中写一个字符串 2022-01-01
- 首次使用 Hadoop,MapReduce Job 不运行 Reduce Phase 2022-01-01
- 如何在不安装整个 WTP 包的情况下将 Tomcat 8 添加到 Eclipse Kepler 2022-01-01
- 由于对所需库 rt.jar 的限制,对类的访问限制? 2022-01-01
- 如何强制对超级方法进行多态调用? 2022-01-01
- 如何使用 Eclipse 检查调试符号状态? 2022-01-01