Этот пример показывает, как записать клиенту 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 Программирует.
Метод 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, включенный в папку
, где $MPS_INSTALL/client
$MPS_INSTALL
является именем вашей папки установки MATLAB Production Server.
Вызовите развернутую функцию 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 magic square
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
или используйте возможность сборки IDE Java.
Например, введите следующее:
javac -classpath "MPS_INSTALL_ROOT
\client\java\mps_client.jar" MPSClientExample.java
Запустите приложение с помощью команды
java
или IDE.
Например, введите следующее:
java -classpath .;"MPS_INSTALL_ROOT
\client\java\mps_client.jar" MPSClientExample
Приложение возвращает следующее в консоли:
5.0 7.0 9.0
9.0 7.0 5.0