主要内容

创建Java客户端使用MWHttpClient

这个例子展示了如何写一个MATLAB®生产服务器™客户端使用Java®客户端API。在Java代码中,你会:

  • 定义表示部署MATLAB功能的Java接口。

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

  • 在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部署到服务器的功能:

    功能一个= addmatrix(A1,A2)A = A1 + A2;

    该接口addmatrix函数。

    interface MATLABAddMatrix {double[][] addmatrix(double[][] a1, double[][] a2) throws MATLABException, IOException;}

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

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

    • 您必须为该接口定义的方法提供与部署的MATLAB函数相同的名称。

    • Java方法必须支持MATLAB函数所支持万博1manbetx的相同输入和输出,无论是类型还是数字。有关数据类型转换以及如何处理更复杂的MATLAB函数签名的更多信息,请参见Java客户端编程(MATLAB生产服务器)

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

  5. 添加以下类定义:

    public class MPSClientExample {}

    这个班的学生有一个单一的主要的方法调用生成的类。

  6. 添加主要的()方法到应用程序。

    public static void main(String[] args) {}
  7. 将下面的代码添加到主要的()方法初始化应用程序使用的变量:

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

    MWHttpClient = 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方法见纳入的Javadocmatlabroot./工具箱/ compiler_sdk / mps_client文件夹中。

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

    双[] []结果= m.addmatrix(A1,A2);
  11. 调用关闭()客户对象释放系统资源的方法。

    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;interface MATLABAddMatrix {double[][] addmatrix(double[][] a1, double[][] a2) throws MATLABException, IOException;} public class MPSClientExample {public static void main(String[] args){double[][] a1={{1,2,3},{3,2,1}};双[][]a2 ={{4、5、6},{6 5 4}};MWHttpClient = new MWHttpClient();try{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。

    例如,输入在系统命令提示以下内容:

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

    应用程序在控制台中返回如下信息:

    5.0 7.0 9.0 9.0 7.0 5.0

相关话题