MWHttpClient КлассВ этом примере показано, как создать клиент MATLAB ® Production Server™ с помощью API клиента Java ®. В коде Java:
Определите интерфейс Java, представляющий функцию MATLAB.
Создайте экземпляр прокси-объекта для связи с сервером.
Вызовите развернутую функцию в коде Java.
Для создания клиентского приложения Java MATLAB Production Server:
Создать новый файл с именем MPSClientExample.java.
Используя текстовый редактор, откройте MPSClientExample.java.
Добавьте в файл следующие операторы импорта:
import java.net.URL; import java.io.IOException; import com.mathworks.mps.client.MWClient; import com.mathworks.mps.client.MWHttpClient; import com.mathworks.mps.client.MATLABException;
Добавьте интерфейс Java, представляющий развернутую функцию MATLAB.
Интерфейс для addmatrix функция
function a = addmatrix(a1, a2)
a = a1 + a2;выглядит следующим образом:
interface MATLABAddMatrix {
double[][] addmatrix(double[][] a1, double[][] a2)
throws MATLABException, IOException;
}
При создании интерфейса обратите внимание на следующее:
Можно присвоить интерфейсу любое допустимое имя Java.
Метод, определенный этим интерфейсом, должен иметь то же имя, что и развернутая функция MATLAB.
Метод Java должен поддерживать одни и те же входы и выходы, поддерживаемые функцией MATLAB, как по типу, так и по номеру. Дополнительные сведения о преобразованиях типов данных и способах обработки более сложных сигнатур функций MATLAB см. в разделе Программирование клиента Java (производственный сервер MATLAB).
Метод Java должен обрабатывать исключения MATLAB и исключения ввода-вывода.
Добавьте следующее определение класса:
public class MPSClientExample
{
}Теперь этот класс имеет единственный основной метод, вызывающий созданный класс.
Добавить main() способ к приложению.
public static void main(String[] args)
{
} Добавьте следующий код в верхнюю часть окна main() способ:
double[][] a1={{1,2,3},{3,2,1}};
double[][] a2={{4,5,6},{6,5,4}};Эти инструкции инициализируют переменные, используемые приложением.
Создание экземпляра объекта клиента с помощью MWHttpClient конструктор.
MWClient client = new MWHttpClient();
Этот класс устанавливает HTTP-соединение между приложением и экземпляром сервера.
Вызов объекта клиента createProxy для создания динамического прокси-сервера.
Необходимо указать URL-адрес развертываемого архива и имя интерфейса class в качестве аргументов:
MATLABAddMatrix m = client.createProxy(new URL("http://localhost:9910/addmatrix"),
MATLABAddMatrix.class);
Значение URL ("http://localhost:9910/addmatrix"), используемый для создания прокси-сервера, содержит три части:
адрес сервера (localhost).
номер порта (9910).
имя архива (addmatrix)
Для получения дополнительной информации о createProxy см. Javadoc, включенный в папка.
matlabroot/toolbox/compiler_sdk/mps_client
Вызовите развернутую функцию MATLAB в приложении Java, вызвав открытый метод интерфейса.
double[][] result = m.addmatrix(a1,a2);
Вызов объекта клиента close() способ освобождения системных ресурсов.
client.close();
Сохраните файл Java.
Завершенный файл Java должен выглядеть следующим образом:
import java.net.URL;
import java.io.IOException;
import com.mathworks.mps.client.MWClient;
import com.mathworks.mps.client.MWHttpClient;
import 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}};
double[][] a2={{4,5,6},{6,5,4}};
MWClient client = new MWHttpClient();
try{
MATLABAddMatrix m = client.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 -classpath "matlabroot\toolbox\compiler_sdk\mps_client\java\mps_client.jar" MPSClientExample.java
Запустите приложение с помощью java или вашей среды IDE.
Например, введите следующее:
java -classpath .;"matlabroot\toolbox\compiler_sdk\mps_client\java\mps_client.jar" MPSClientExample
Приложение возвращает на консоли следующее:
5.0 7.0 9.0 9.0 7.0 5.0