Я бы поместил общую бизнес-логику в «бизнес-сервис» и:
- вызвать его из действия в вашем веб-приложении
- выставить его как веб-сервис для других приложений
Для меня нет ничего плохого в этом подходе, и его довольно легко и просто реализовать с помощью Spring. На самом деле, мне было бы некрасиво представлять эту бизнес-службу только как веб-службу и вызывать ее из веб-приложения (и я уверен, что это будет сложнее реализовать на стороне веб-приложения). У вас разные «контексты использования», просто предоставьте им соответствующий интерфейс.
(РЕДАКТИРОВАТЬ: я отвечаю на вопрос ОП, опубликованный в виде комментария ниже)
Вы можете развернуть веб-приложение и веб-службу в одной и той же WAR (но это только выбор развертывания, вы можете упаковать бизнес-логику в JAR и использовать ее в нескольких WAR). Что касается порта, я не уверен, чтобы понять ваш вопрос. Традиционно вы будете использовать веб-сервер (например, apache) перед сервером приложений. Если вы этого не сделаете, вы всегда можете запустить сервер приложений на порту 80. На самом деле, в обоих случаях вы можете использовать любой порт, который хотите. Использовать порт 80 просто удобно.
Да, ваше обновление верное.