MWHttpClient
类这个例子展示了如何写一个MATLAB®生产服务器™客户端使用Java®客户端API。在Java代码中,你会:
定义表示部署MATLAB功能的Java接口。
实例化一个代理对象与服务器进行通信。
在Java代码中调用部署的函数。
要创建JavaMATLAB生产服务器客户端应用程序:
创建一个新文件,例如:MPSClientExample.java
.
使用文本编辑器,打开MPSClientExample.java
.
添加以下导入语句添加到文件中:
进口java.net.URL;进口java.io.IOException;进口com.mathworks.mps.client.MWClient;进口com.mathworks.mps.client.MWHttpClient;进口com.mathworks.mps.client.MATLABException;
添加一个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异常。
添加以下类定义:
public class MPSClientExample {}
这个班的学生有一个单一的主要的
方法调用生成的类。
添加主要的()
方法到应用程序。
public static void main(String[] args) {}
将下面的代码添加到主要的()
方法初始化应用程序使用的变量:
双[] [] A1 = {{1,2,3},{3,2,1}};双[] [] A 2 = {{4,5,6},{6,5,4}};
使用实例化一个客户对象MWHttpClient
构造函数。
MWHttpClient = new MWHttpClient();
此类建立应用程序和服务器实例之间的HTTP连接。
调用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
通过调用接口的公共方法来调用Java应用程序中部署的MATLAB函数。
双[] []结果= m.addmatrix(A1,A2);
调用关闭()
客户对象释放系统资源的方法。
client.close ();
保存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(); } } }
编译Java应用程序,使用javac
命令或使用Java IDE的构建功能。
例如,输入在系统命令提示以下内容:
javac类路径”matlabroot.
\ \ compiler_sdk \ mps_client工具箱\ java的\ mps_client.jar” MPSClientExample.java
控件运行应用程序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