MWHttpClient КлассВ этом примере показано, как написать MATLAB® Production Server™ клиент с использованием Java® клиентский API. В коде 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 Client Programming (MATLAB Production Server).
Метод 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