Создайте клиент Java Используя MWHttpClient Класс

В этом примере показано, как записать MATLAB® Клиент Production Server™, использующий Java® клиентский API. В вашем коде Java вы будете:

  • Задайте интерфейс Java, который представляет развернутую функцию MATLAB.

  • Инстанцируйте объекта прокси связаться с сервером.

  • Вызовите развернутую функцию в своем коде Java.

Создать Java клиентское приложение MATLAB Production Server:

  1. Создайте новый файл, например, MPSClientExample.java.

  2. Используя текстовый редактор, откройте MPSClientExample.java.

  3. Добавьте следующих операторов импорта в файл:

    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;
    
  4. Добавьте интерфейс 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 и исключения ввода-вывода.

  5. Добавьте следующее определение класса:

    public class MPSClientExample
    {
    }

    Этот класс теперь имеет один main метод, который вызывает сгенерированный класс.

  6. Добавьте main() метод к приложению.

    public static void main(String[] args)
    {
    } 
  7. Добавьте следующий код в верхнюю часть main() метод, чтобы инициализировать переменные, используемые приложением:

    double[][] a1={{1,2,3},{3,2,1}};
    double[][] a2={{4,5,6},{6,5,4}};
  8. Инстанцируйте объекта клиента с помощью MWHttpClient конструктор.

    MWClient client = new MWHttpClient();

    Этот класс устанавливает HTTP-соединение между приложением и экземпляром сервера.

  9. Вызовите 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 папка.

  10. Вызовите развернутую функцию MATLAB в своем приложении Java путем вызова открытого метода интерфейса.

      double[][] result = m.addmatrix(a1,a2);
  11. Вызовите close() метод объекта клиента, чтобы освободить системные ресурсы.

    client.close();
  12. Сохраните файл 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();
            }        
        }
    }
  13. Скомпилируйте приложение Java, с помощью javac команда или использование возможность сборки вашего IDE Java.

    Например, введите следующее в системной командной строке:

    javac -classpath "matlabroot\toolbox\compiler_sdk\mps_client\java\mps_client.jar" MPSClientExample.java
    
  14. Запустите приложение с помощью 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

Похожие темы