中文

常见问题解答:如何针对 ArcGIS Engine Java Interops 启用 TLS 1.2?

问题

常见问题解答:如何针对 ArcGIS Engine Java Interops 启用 TLS 1.2?

答案

ArcGIS Engine 提供 Java interops,以允许开发人员创建使用 Engine 基础 GIS 处理功能的 Java 应用程序。 是否需要执行任何操作取决于所使用的 Java 版本。

注:
有关每个 ArcGIS Engine 发行版本的支持状态,请参阅 Esri 支持网站上的产品生命周期页面

ArcGIS Engine 10.4 至 10.7 版本: 
随附 Java 8 的这些版本均为即用型版本,无需执行任何操作,即可将 TLS 1.2 和 Java 8 Engine 应用程序配合使用。

ArcGIS Engine 10.2.1 至 10.3.1 版本: 
如果 Java 应用程序可直接访问 TLS 1.2 服务,则随附 Java 7 的这些版本必须启用 TLS 1.2。
如果您继续使用 Java 7 运行其中一个旧版本 ArcGIS Engine,则系统提供以下两个选项:

  • 选项 1(推荐) - 升级到支持 Java 8 的最新版本 ArcGIS Engine。
  • 选项 2 - 启用 Java 7 应用程序中对于 TLS 1.2 的访问权限,如下所示:

默认情况下,Java 7 未启用 TLS 1.2 安全性设置,但可以通过以下方法进行启用。 在 Java 7 上运行的 ArcGIS Engine 应用程序可以通过在应用程序的启动阶段(尝试连接到安全服务之前)添加以下代码行来利用 TLS 1.2 安全性:

try {
              SSLContext ctx = SSLContext.getInstance("TLSv1.2");
              ctx.init(null, null, null);
              SSLContext.setDefault(ctx);
       } catch (Exception e) {
             System.out.println(e.getMessage());
 }

虽然在 Java 7 上运行的 ArcGIS Engine 应用程序中启用 TLS 1.2 应该不会导致任何问题,但可能并非总是如此。 例如,通过地图文档 (.mxd) 连接到安全服务的应用程序以及使用 MapBean 组件进行可视化的应用程序应该可以正常工作,因为在这种情况下将不使用 Java 连接协议。

Related Information