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;
Интерфейс для addmatrix
функция следует.
interface MATLABAddMatrix { double[][] addmatrix(double[][] a1, double[][] a2) throws MATLABException, IOException; }
При создании интерфейса отметьте следующее:
Можно дать интерфейсу любое допустимое имя Java.
Необходимо дать метод, заданный этим интерфейсом то же имя как развернутая функция MATLAB.
Метод Java должен поддержать те же вводы и выводы, поддержанные функцией MATLAB, и в типе и в номере. Для получения дополнительной информации о преобразованиях типа данных и как обработать более комплексные подписи функции MATLAB, смотрите, что Клиент Java Программирует (MATLAB Production Server).
Метод Java должен обработать исключения MATLAB и исключения ввода-вывода.
Добавьте следующее определение класса:
public class MPSClientExample { }
Этот класс теперь имеет один main
метод, который вызывает сгенерированный класс.
Добавьте 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
команда или использование возможность сборки вашего IDE Java.
Например, введите следующее в системной командной строке:
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