创建MATLAB生产服务器Java客户端使用MWHttpClient
类
这个例子展示了如何编写一个MATLAB®生产服务器™客户端使用MWHttpClient
从Java类®客户端API。获取Java客户端库的信息,请参阅获得mps_client。jar客户端库(MATLAB生产服务器)。在Java代码中,您将:
定义一个Java接口表示部署的MATLAB函数。
实例化一个代理对象与服务器通信。
在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
功能部署到服务器:函数a = addmatrix (a1, a2) = a1 + a2;
的接口
addmatrix
函数。接口MATLABAddMatrix{双[][]addmatrix(双[][]a1, a2双[][])抛出MATLABException, IOException;}
在创建接口时,请注意以下几点:
你可以给任何有效的Java接口的名称。
你必须给该接口定义的方法名称相同的部署MATLAB函数。
Java方法必须支持相同的输入和输出支持的金宝appMATLAB函数,类型和数量。关于数据类型转换的更多信息以及如何处理更复杂的MATLAB函数签名,看到的Java客户端编程(MATLAB生产服务器)。
Java方法必须处理MATLAB异常和I / O的例外。
添加下面的类定义:
公开课MPSClientExample {}
现在这个类只有一个
主要
方法调用生成的类。添加
main ()
方法应用程序。公共静态void main (String [] args) {}
添加以下代码的顶部
main ()
方法初始化应用程序所使用的变量:双[][]a1 = {{1,2,3}, {3、2、1}};双[][]a2 = {{4、5、6}, {6 5 4}};
实例化一个客户对象使用
MWHttpClient
构造函数。MWClient客户= 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);
调用
close ()
客户端对象的方法释放系统资源。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;接口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(); } } }
编译Java应用程序中,使用
javac
命令或使用您的Java IDE构建能力。例如,在窗口输入以下®命令提示符:
javac类路径”
matlabroot
\ \ compiler_sdk \ mps_client工具箱\ java \ mps_client。jar”MPSClientExample.java运行应用程序使用
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
相关的话题
- 债券定价Java客户机的工具(MATLAB生产服务器)
- MATLAB生产服务器的Java客户机基础知识(MATLAB生产服务器)
- 同步使用Protocol Buffers RESTful请求在Java客户机(MATLAB生产服务器)
- 异步Java客户机使用Protocol Buffers RESTful请求(MATLAB生产服务器)