Реализация веб-приложения

Чтобы создать новое веб-приложение SberMobile с нуля, необходимо реализовать несколько классов Java.

Класс веб-приложения

Класс веб-приложения должен реализовывать интерфейс WebApplication. Перепишите методы deploy() и stop(), чтобы зарегистрировать и отменить регистрацию веб-приложения.

Пример: регистрация веб-приложения:

  public void deploy() throws AggreGateException

  {

    context = WebServerContextPlugin.registerWebApplication(WEBAPP_CONTEXT_PATH, WEBAPP_FILE_NAME);

  }

Обратите внимание, что путь контекста используется в запросе к этому приложению. Второй параметр - это имя веб-приложения (файл WAR).

Пример: отмена регистрации веб-приложения:

  public void stop() throws AggreGateException

  {

    if (context != null)

    {

      WebServerContextPlugin.unregisterWebApplication(context);

    }

  }

Используйте ранее сохраненный контекст, чтобы отменить регистрацию веб-приложения.

Класс плагина

Класс плагина должен быть унаследован у AbstractContextPlugin. Вам потребуется переписать один из наследуемых методов, чтобы добавить веб-приложение на веб-сервер.

Пример: использование метода globalInit, чтобы добавить веб-приложение:

  public void globalInit(Context rootContext) throws PluginException

  {

    WebServerContextPlugin.addAdditionalWebApplication(new DemoWebApplication());

  }

Этого будет достаточно для многих веб-приложений. Для всех остальных это обычный класс плагина. Можно прочитать больше о его реализации в соответствующей теме.

Класс java-сервлет

Класс Java-сервлет должен быть унаследован от HttpServlet. Этот класс и его методы являются ответственными за процессы запросов и ответов. Детализированную информацию о реализации сервлета можно найти в соответствующей документации https://tomcat.apache.org/tomcat-7.0-doc/servletapi/javax/servlet/http/HttpServlet.html.

Пример: Простая реализация doGet:

  public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException

  {

    response.getWriter().println("test");

  }

Особое внимание необходимо обратить на взаимодействие сервлета и SberMobile Server. Посмотрите на пробную версию веб-приложения в наборе средств разработки, чтобы найти примеры взаимодействия контекстов и использования прав доступа пользователей.

Измение дескриптора плагина

Чтобы создать дескриптор плагина для веб-приложения, измените следующее в демо-файле plugin.xml:

  • Измените последнее слово в атрибуте id тэга <plugin> для нового ID плагина. ID должен содержать только строчные буквы, цифры и символы подчеркивания. Например, если ID вашего предполагаемого плагина - это xyz, вам понадобится установить ID атрибут в com.tibbo.aggregate.common.plugin.context.xyz
  • Измените атрируб class тэга <plugin> на полное имя класса плагина
  • Введите описание компонента в тело тэга <doc-text>
  • Измените атрибут id тэга <extension> на новый ID плагина

Изменение дескриптора внедрения

Дескриптор внедрения описывает, как должно внедряться веб-приложение. Чтобы его создать, нужно изменить следующее в демо-файле web.xml:

  • Изменить содержимое элемента <display-name>
  • Изменить элемент <servlet-name> для элементов <servlet> и <servlet-mapping>
  • Изменить <servlet-class> на полное имя класса Java-сервлета
  • Индивидуализировать сопоставление сервлета и установить другие настройки внедрения при необходимости

Больше информации о внедрении веб-приложения можно найти на веб-сайте https://tomcat.apache.org/tomcat-7.0-doc/appdev/deployment.html.

Создание и внедрение архива плагинов

Следуйте этим шагам, предназначенным для файла build.xml из примера:

  • Измените имя проекта и имена файлов назначения (файлы JAR и WAR)
  • Запустите build.xml, используя Ant, чтобы создать файлы JAR и WAR
  • Скопируйте файл JAR в %SberMobile Server Installation Folder/plugins/context, когда SberMobile Server не запущен
  • Скопируйте файл WAR в %SberMobile Server Installation Folder/admin, когда SberMobile Server не запущен
  • Запустите SberMobile Server
  • Выполните требования для веб-приложения

Обратите внимание, что после первого запуска веб-приложение будет распаковано из файла WAR в папку с подходящим именем. Веб-сервер работает с нераспакованным приложением из папки. Таким образом, если файл WAR меняется, удалите папку со старой версией приложения до запуска SberMobile Server.

Создание веб-приложения требует дополнительные файлы в пути сборки в дополнение к aggregate-api.jar и aggregate-api-libs.jar:

  • extensions-libs.jar может быть найден в %SberMobile Server Installation Folder/jar
  • server-core.jar может быть найден в %SberMobile Server Installation Folder/jar
  • webserver.jar может быть найден в %SberMobile Server Installation Folder/plugins/contexts