2017-11-14 6 views
0

現在、私はJavaでMicrosoft Dynamics Navのコネクタを実装しようとしています。Microsoft Dynamics Nav Connector for Java

これは、NTLMを介してDynamics Nav Serverとの接続を作成するためです。私がこれに関して見つけたブログや文書のほとんどは時代遅れです。

Connecting to NAV Web Services from Java

誰かが私にorg.apache.http.client.HttpClientを使用してDynamics NAVの認証を処理するための方法を提案できるかどうかは理解されるであろう。 (Dynamics Navの利用可能なJavaクライアントライブラリがあれば教えてください)

さらに、Dynamics Navコネクタをテストするための無料のDynamics Navテスト環境を提供できる場所があれば教えてください応用。

答えて

0

Windows チャレンジ/レスポンスNTLM)は、Windowsオペレーティングシステムを実行するシステムとスタンドアロンシステムを含むネットワークで使用される認証プロトコルです。 org.apache.http.client.HttpClientバージョン4.4を使用してNTLM認証を処理することができました。

ここで私が使用しているMavenの依存関係を示します(メソッドとメソッドの名前は、他のバージョンでは若干異なる場合があります)。

<dependency> 
<groupId>org.apache.httpcomponents</groupId> 
<artifactId>httpclient</artifactId> 
<version>4.4</version> 
</dependency> 

実装には、次のインポートが必要です。これは非SSL接続の基本要件です。

import org.apache.http.auth.AuthScope; 
import org.apache.http.auth.NTCredentials; 
import org.apache.http.client.CredentialsProvider; 
import org.apache.http.client.HttpClient; 
import org.apache.http.impl.client.BasicCredentialsProvider; 
import org.apache.http.impl.client.HttpClientBuilder; 

ここに実装があります。 UsernamePassword、およびDomainを実際の資格情報で置き換える必要があります。

CredentialsProvider credentialsProvider = new BasicCredentialsProvider(); 
HttpClient httpClient = HttpClientBuilder.create() 
       .setDefaultCredentialsProvider(credentialsProvider) 
       .build(); 

credentialsProvider.setCredentials(AuthScope.ANY, new NTCredentials("Username", "Password", null, "Domain")); 

このhttpクライアントは、Dynamics NAV APIと通信するために使用できます。

しかし、私の地域(アジア)内でMicrosoft Dynamics NAVの無料のテスト環境を見つけることができませんでした。しかし、ほとんどのクラウドサービスプロバイダは、他の地域で無料のテストを実施しています。

Linuxユーザーとして、私は仮想環境にWindowsをインストールし、それにDynamics NAVをインストールしてテスト環境を作成する必要がありました。 Dockerに精通している場合は、this linkからDynamics NAV Dockerイメージをダウンロードできます。

関連する問題