Java 的 Microsoft Dynamics 导航连接器

Microsoft Dynamics Nav Connector For Java

目前我正在为 Java 中的 Microsoft Dynamics Nav 实现一个连接器。

为此,我想通过 NTLM 创建与 Dynamics Nav 服务器的连接。我发现的大多数与此相关的博客和文档都已过时。

Connecting to NAV Web Services from Java

如果有人能建议我使用 org.apache.http.client.HttpClient 处理 Dynamics Nav 身份验证的方法,我们将不胜感激。 (如果有任何可用于 Dynamics Nav 的 Java 客户端库,请建议我)

此外,如果有人能向我推荐一个可以获得免费 Dynamics Nav 测试环境来测试我的 Dynamics Nav 连接器应用程序的地方,我们将不胜感激。

Windows Challenge/Response (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;

这是实现。需要用真实凭据替换 UsernamePasswordDomain

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 图像