本文介紹了用Java訪問Dynamic NAV WebService的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!
問題描述
我正在嘗試從Java訪問Dynamic NAV 2013 R2 Web服務(wù)。Web服務(wù)正在運行,當我在Internet Explorer中輸入URL時,我可以看到wsdl,但首先會提示我輸入用戶名和密碼。在Wireshark上,我可以看到它使用基于NTLM的身份驗證。到目前為止,我只能從Internet Explorer打開wsdl,當我在Firefox上打開它時,它給我一個空白頁面,沒有錯誤。
我嘗試做的是使用wsimport工具從Java訪問Web服務(wù),但我無法進行身份驗證。我已經(jīng)在~/.metro/auth
中創(chuàng)建了一個文件夾,并在其中放入以下行:
http://userfoobar:[email protected]:7047//DynamicsNAV71/WS/CRONUS%20AG/Page/PageWithCapitalization
我正在嘗試訪問以下網(wǎng)頁:
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服務(wù)的Windows7計算機上都嘗試過。我是否需要在NAV中執(zhí)行任何其他配置?有什么特殊的技巧可以讓它工作嗎?
推薦答案
默認情況下,NAV使用Windows active Directory授權(quán)。我不確定wsimport在Java中做了什么,但url中提供的憑據(jù)不太可能起作用。您需要在服務(wù)器上的Nav Server Administration
管理單元中(或在配置文件中)完成與服務(wù)器進行授權(quán)或更改授權(quán)類型的協(xié)商過程。
請參閱here關(guān)于憑據(jù)類型和here如何配置服務(wù)器。另請參閱Freddy博客how to connect to Nav from Java中的完整帖子(我相信它仍然相關(guān),盡管它適用于2009年的NAV)。
soapUI
可以處理NTLM授權(quán)類型,因此您可以在其日志中看到通過協(xié)商過程進行的所有請求和響應(yīng)。
這篇關(guān)于用Java訪問Dynamic NAV WebService的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,