主要内容

创建MATLAB生产服务器Java客户端使用MWHttpClient

这个例子展示了如何编写一个MATLAB®生产服务器™客户端使用MWHttpClient从Java类®客户端API。获取Java客户端库的信息,请参阅获得mps_client。jar客户端库(MATLAB生产服务器)。在Java代码中,您将:

  • 定义一个Java接口表示部署的MATLAB函数。

  • 实例化一个代理对象与服务器通信。

  • 在Java代码中调用部署的函数。

创建一个JavaMATLAB生产服务器客户端应用程序:

  1. 例如,创建一个新文件MPSClientExample.java

  2. 使用一个文本编辑器,打开MPSClientExample.java

  3. 添加以下语句导入到文件:

    进口java.net.URL;进口java.io.IOException;进口com.mathworks.mps.client.MWClient;进口com.mathworks.mps.client.MWHttpClient;进口com.mathworks.mps.client.MATLABException;
  4. 添加一个Java接口表示部署的MATLAB函数。

    例如,考虑以下addmatrix功能部署到服务器:

    函数a = addmatrix (a1, a2) = a1 + a2;

    的接口addmatrix函数。

    接口MATLABAddMatrix{双[][]addmatrix(双[][]a1, a2双[][])抛出MATLABException, IOException;}

    在创建接口时,请注意以下几点:

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

    • 你必须给该接口定义的方法名称相同的部署MATLAB函数。

    • Java方法必须支持相同的输入和输出支持的金宝appMATLAB函数,类型和数量。关于数据类型转换的更多信息以及如何处理更复杂的MATLAB函数签名,看到的Java客户端编程(MATLAB生产服务器)

    • Java方法必须处理MATLAB异常和I / O的例外。

  5. 添加下面的类定义:

    公开课MPSClientExample {}

    现在这个类只有一个主要方法调用生成的类。

  6. 添加main ()方法应用程序。

    公共静态void main (String [] args) {}
  7. 添加以下代码的顶部main ()方法初始化应用程序所使用的变量:

    双[][]a1 = {{1,2,3}, {3、2、1}};双[][]a2 = {{4、5、6}, {6 5 4}};
  8. 实例化一个客户对象使用MWHttpClient构造函数。

    MWClient客户= new MWHttpClient ();

    这个类建立了应用程序和服务器之间的HTTP连接实例。

  9. 调用createProxy的方法来创建一个动态代理客户端对象。

    您必须指定部署归档文件的URL和接口的名称作为参数:

    MATLABAddMatrix m =客户端。createProxy(new URL("http://localhost:9910/addmatrix"), MATLABAddMatrix.class);

    URL值(“http://localhost: 9910 / addmatrix”)用于创建代理包含三个部分:

    • 服务器地址(本地主机)。

    • 端口号(9910年)。

    • 档案名称(addmatrix)

    更多的信息createProxy方法,看到Javadoc中matlabroot/工具箱/ compiler_sdk / mps_client文件夹中。

  10. 在Java应用程序中调用部署的MATLAB函数通过调用接口的公共方法。

    双[][]结果= m.addmatrix (a1, a2);
  11. 调用close ()客户端对象的方法释放系统资源。

    client.close ();
  12. 保存Java文件。

    完整的Java文件应该类似于下面的:

    进口java.net.URL;进口java.io.IOException;进口com.mathworks.mps.client.MWClient;进口com.mathworks.mps.client.MWHttpClient;进口com.mathworks.mps.client.MATLABException;接口MATLABAddMatrix{双[][]addmatrix(双[][]a1, a2双[][])抛出MATLABException, IOException;}公开课MPSClientExample{公共静态void main (String [] args){双[][]a1 = {{1,2,3}, {3、2、1}};双[][]a2 = {{4、5、6}, {6 5 4}};MWClient客户= new MWHttpClient ();尝试{MATLABAddMatrix m =客户端。createProxy(new URL("http://localhost:9910/addmatrix"), MATLABAddMatrix.class); double[][] result = m.addmatrix(a1,a2); // Print the resulting matrix printResult(result); }catch(MATLABException ex){ // This exception represents errors in MATLAB System.out.println(ex); }catch(IOException ex){ // This exception represents network issues. System.out.println(ex); }finally{ client.close(); } } private static void printResult(double[][] result){ for(double[] row : result){ for(double element : row){ System.out.print(element + " "); } System.out.println(); } } }
  13. 编译Java应用程序中,使用javac命令或使用您的Java IDE构建能力。

    例如,在窗口输入以下®命令提示符:

    javac类路径”matlabroot\ \ compiler_sdk \ mps_client工具箱\ java \ mps_client。jar”MPSClientExample.java
  14. 运行应用程序使用java命令或IDE。

    例如,在Windows命令提示符输入以下:

    java类路径。”matlabroot\ \ compiler_sdk \ mps_client工具箱\ java \ mps_client。jar”MPSClientExample

    在Linux上运行应用程序®macOS系统,使用冒号(:单独的多条路径。

    在控制台应用程序返回以下:

    5.0 7.0 9.0 9.0 7.0 5.0

相关的话题