Рабочий Java на веб-сервере

Еще один способ получить данные из вашего бэкенда - вместо подписки на данные, вы также можете вернуть обещание и затем использовать асинхронное ожидание в своем компоненте

pull_categories(): any {
    return this.http.post('https://myapi.com/something', null).toPromise();
} 
[ 1110]

Это вернет обещание вашему компоненту, где вы также можете использовать его следующим образом:

async getCategories() {
  try {
    const categories = await this.service.pull_categories();
  } catch (e) {

  }
}
[114 ]

11
задан Vincent 9 March 2009 в 01:45
поделиться

5 ответов

Хорошо, сервлеты являются небольшими приложениями, которые разработаны для выполнения в контейнере. Они предоставляют точку расширения Вам для введения кода Java или в простой контейнер сервлета как кот или в более полно известный сервер приложений как glassfish. Вы хотите сделать это, потому что сервер приложений делает тяжелый подъем контакта с http взаимодействием и обеспечивает другие функции как безопасность, вход, управление сеансами, обработка ошибок и больше (см. спецификацию сервлета).

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

Это - просто запуск, существует намного больше функций, технологий и платформ там, чтобы помочь Вам подать основанные на контейнере заявки. Учебное руководство по сервлету.

12
ответ дан 3 December 2019 в 07:39
поделиться

[Они получают меня] "Более быстрые результаты, потому что Java, JVM не должна быть создана каждый раз, когда я запускаю приложение?"

Да.

И - премия - можно заменить PHP, таким образом, весь сайт находится на единственном языке: Java.

Далее, можно рассмотреть пересмотр вариантов использования, таким образом, это не болезненный 30-60 секунды в одном выстреле, но возможно серия более быстрых шагов, выполняемых в интерактивном режиме с пользователем.

2
ответ дан 3 December 2019 в 07:39
поделиться

Вы, вероятно, не хотите вызывать приложение Java непосредственно с веб-сайта. Как Вы сказал, если процесс Java занимает 30 секунд для выполнения, веб-сервер собирается сорвать путь, особенно если сайт становится загнанным.

Можно хотеть изучить веб-сервисы (и возможно очередь сообщений) для диспетчеризации запросов обработки бэкенда. Страница PHP могла назвать веб-сервис на сервере, который мог затем поместить запрос обработки на очередь или просто начать приложение Java асинхронным способом. Вы не хотите, чтобы Запрос HTTP ожидал приложения Java для окончания, потому что, в то время как это обрабатывает, у пользователя просто будет подвешенный браузер, и Запрос HTTP мог бы тайм-аут.

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

0
ответ дан 3 December 2019 в 07:39
поделиться

Выполните свой код в контейнере сервлета.

При предположении, что необходимо сохранить веб-сайт в PHP и поскольку Вам уже установили Java на Вашей машине, просто устанавливаете свободный контейнер сервлета (такой как Tomcat Apache или Причал). Настройте для выполнения контейнера сервлета на неиспользуемом порте. (8080) их значение по умолчанию.

Эти контейнеры сервлета являются действительно основанными на Java веб-серверами, точно так же, как Apache, однако специализированный на обслуживании кода Java.

Самое очевидное преимущество использования веб-сервера Java, а не нового вызова java.exe для каждого запроса, то, что Ваша виртуальная машина Java (jvm) всегда будет "горячей", и выполнение. Каждый новый запуск java.exe (jvm) даст Вам те дополнительные секунды отходов.

Второе преимущество использования контейнера сервлета, то, что контейнер позволит Вашему коду работать в новом потоке, в jvm, для каждого нового запроса. У Вас не будет проблемы при предоставлении услуги тысячам пользователей день. Скорее всего, Ваша машина откажет, если необходимо было запустить сотни экземпляров Java, а не один.

Поместите свой код в сервлете. Это действительно легко даже для вновь прибывшего. Вы будете говорить с сервлетом через HTTP (doGet или doPost методы сервлета). Передайте php бланк запроса этому сервлету и имейте сервлет, дают Вам назад безотносительно: страница, объект json, xml или простой текст.

2
ответ дан 3 December 2019 в 07:39
поделиться

Самая легкая вещь запуститься с состояла бы в том, чтобы встроить веб-сервер в Вас приложение. Взгляните на Причал.

0
ответ дан 3 December 2019 в 07:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: