Создание веб-сервиса для использования во внутреннем приложении и предоставление его другим - PullRequest
2 голосов
/ 30 октября 2009

Для моего веб-приложения я думаю об использовании среды Spring. Изначально я думал о различных действиях, таких как создание пользователя или входа в систему, но теперь я должен предоставить некоторые функции другим приложениям. Должен ли я создать веб-службу, которую я вызываю из своего приложения, и другие тоже делают, или создать действие из Spring, а затем просто попросить других вызвать веб-службу? Кажется, мне следует свести к минимуму различные способы вызова, но имеет ли смысл вызывать веб-службу, работающую на том же сервере приложений, что и мое основное приложение? Это была бы плохая идея с точки зрения производительности?

Обновление

Меня беспокоило, что Tomcat не сможет обслуживать как статические, так и динамические страницы на порте 80 (поэтому пользователи могут перейти на www.example.com/welcome.jsp вместо www.example.com:8080/welcome. .jsp), а также веб-сервис, но я думаю, это не имеет значения, так как оба они просто отправляются как запросы от Tomcat. Я предполагаю, что это означает, что мне придется изменить Tomcat для работы на порту 80, и другие приложения будут иметь доступ к веб-службе через этот порт. Или я мог бы оставить Tomcat работающим на порту 8080 и поставить Apache впереди на Tomcat на порту 80, и Apache будет обслуживать запросы к Tomcat. Это правильно?

1 Ответ

1 голос
/ 30 октября 2009

Я бы поместил общую бизнес-логику в «бизнес-сервис» и:

  1. вызвать его из действия в вашем веб-приложении
  2. выставить его как веб-сервис для других приложений

Для меня нет ничего плохого в этом подходе, и его довольно легко и просто реализовать с помощью Spring. На самом деле, мне было бы некрасиво представлять эту бизнес-службу только как веб-службу и вызывать ее из веб-приложения (и я уверен, что это будет сложнее реализовать на стороне веб-приложения). У вас разные «контексты использования», просто предоставьте им соответствующий интерфейс.

(РЕДАКТИРОВАТЬ: я отвечаю на вопрос ОП, опубликованный в виде комментария ниже)

Вы можете развернуть веб-приложение и веб-службу в одной и той же WAR (но это только выбор развертывания, вы можете упаковать бизнес-логику в JAR и использовать ее в нескольких WAR). Что касается порта, я не уверен, чтобы понять ваш вопрос. Традиционно вы будете использовать веб-сервер (например, apache) перед сервером приложений. Если вы этого не сделаете, вы всегда можете запустить сервер приложений на порту 80. На самом деле, в обоих случаях вы можете использовать любой порт, который хотите. Использовать порт 80 просто удобно.

Да, ваше обновление верное.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...