主要内容

本页采用了机器翻译。点击此处可查看英文原文。

Java 客户端编码最佳实践

静态代理接口指南

编写 Java® 接口来调用 MATLAB® 代码时,请记住以下注意事项:

  • 接口公开的方法名称必须与正在部署的 MATLAB 函数名称相匹配。

  • 该方法必须具有与 MATLAB 函数相同数量的输入和输出。

  • 方法的输入和输出类型必须能够与 MATLAB 相互转换。

  • 如果您正在使用 MATLAB 结构体,请记住字段名称区分大小写,并且必须在 MATLAB 函数和相应的用户定义的 Java 类型中匹配。

  • 接口名称可以是任何有效的 Java 名称。

有关完整示例,请参阅使用 MWHttpClient 类创建 MATLABProduction ServerJava 客户端

Java 客户端前提条件

完成以下步骤来准备您的 MATLAB Production Server™ Java 开发环境。

  1. 安装您选择的 Java IDE。如果需要,请按照 OracleWeb 上的说明下载 Java

  2. mps_client.jar(位于 $MPS_INSTALL\client\java)添加到您的 Java CLASSPATH 和构建路径。此 JAR 文件有时会在单独的 GUI 中定义,具体取决于您的 IDE。

    为您计划部署的每个 MATLAB 应用程序生成一个可部署存档到服务器的 auto_deploy 文件夹中。有关使用 Production Server Compiler 创建可部署存档的信息,请参阅 针对 MATLAB Production Server 创建可部署存档

    您的服务器配置必须指明您的 MATLAB Runtime 实例的安装位置,对于使用命令行管理的服务器,可以使用 main_config 服务器配置文件,对于使用仪表板管理的服务器,可以使用仪表板中的 MATLAB Runtime 字段。

  3. 托管可部署存档的服务器必须正在运行。

管理客户端生命周期

单个 Java 客户端连接到可通过各种 URL 访问的一个或多个服务器。即使您创建了 MWHttpClient 的多个实例,一个实例也能够与多个服务器建立连接。

代理对象与服务器通信,直到调用该实例的 close 方法。

对于 MWHttpClient 的本地范围实例,Java 客户端代码如下所示:

 本地范围实例

当使用 MWHttpClient 的本地范围实例时,将其绑定到 servlet。

使用 servlet 时,在 MWHttpClient 方法内初始化 HttpServlet.init(),在 close 方法内初始化 HttpServlet.destroy(),如下代码:

 Servlet 实现

处理 Java 客户端异常

Java 接口必须针对以下错误声明已检查的异常:

Java 客户端异常

例外例外原因附加信息
com.mathworks.mps.client.MATLABException执行代理对象方法时发生 MATLAB 错误。

该例外规定如下:

  • MATLAB 堆栈跟踪

  • 错误 ID

  • 错误消息

java.io.IOException
  • 发生了与网络相关的故障。

  • 服务器返回 4xx5xx 的 HTTP 错误。

使用 java.io.IOException 以特定方式处理 4xx5xx 的 HTTP 错误。

管理系统资源

单个 Java 客户端连接到可通过不同 URL 访问的一个或多个服务器。MWHttpClient 的实例可以与多个服务器通信。

所有由 MWHttpClient 实例创建的代理对象都会与服务器通信,直到调用 closeMWHttpClient 方法。

仅当您不再需要与服务器通信并且准备释放系统资源时才调用 close。关闭客户端会终止与所有已创建的代理的连接。

在哪里可以找到 Javadoc

Java 客户端的 API 文档安装在 $MPS_INSTALL/client 中。

日志记录

您可以使用 MATLAB Production Server Java 客户端库中提供的日志记录功能,在 Java 客户端应用程序中记录 HTTP 请求状态、服务器 URL 和输出数据等详细信息。为了提供日志记录选项,Java 客户端库 mps_client.jar 将 SLF4J API 模块(版本 1.7.25)打包为客户端库的一部分。您可以使用任何 SLF4J 支持的日志记录框架,例如 Log4j、Logback 或 java.util.logging 包。如果没有绑定,SLF4J 默认为无操作实现。有关使用绑定的详细信息,请参阅 SLF4J 网站上的 Bridging Legacy API 文档。

当使用日志记录框架或不同版本的 SLF4J 时,必须将其添加到 Java 类路径上的 mps_client.jar 前面。

如果您使用 java.util.logging 包进行日志记录,则必须在加载 java.util.logging.Logger 类之前在 Java 应用程序代码中加载并使用 com.mathworks.mps.client.MWHttpClient 类。有关 java.util.logging 的更多信息,请参阅 Oracle® Package java.util.logging Javadoc。

另请参阅

主题

外部网站