2016-11-24 2 views
0

Есть ли какой-либо веб-сервис, который работает как банку?Веб-сервис Java, отличный от tomcat

Я уже пробовал использовать искру, но кроме того, чтобы запустить jar, мне нужно, чтобы он мог отображать файлы jsp.

Мой текущий сценарий заключается в том, что у меня есть проект tomcat (.war), который зависит от другого проекта (.jar), и я хочу добавить некоторые веб-функции в этот второй проект. Однако я не могу изменить его на .war, поскольку один проект .war не может зависеть от другого .war-проекта.

Любая помощь или руководство будут оценены.

+0

Почему бы не встроить файл JAR, который вы хотите улучшить в WAR? (Вы также можете рассмотреть другие серверы приложений, но я не вижу. Разделение веб-части из JAR lib - это хорошая практика. – eckes

ответ

1

Я столкнулся с аналогичной проблемой, и мое обходное решение было менее элегантным, но я еще не нашел лучшего.

переформулировать вопрос:

  • ProjectA.war зависит от X.class (или более) из проекта b.jar
  • потребности ProjectB.jar быть преобразованы в Project B.war

решение, которое я клоню:

  • Преобразовать ProjectB.jar в ProjectB.war по мере необходимости
  • вручную извлечь файл ProjectB.jar из ProjectB.war и процитировать, что извлеченный .jar как зависимость в Projecta

(я последовал How to extract .war files in java? ZIP vs JAR)

В зависимости от вашей системы сборки вы можете также установить ProjectB в одновременно создавайте и .war и .jar для зависимости; Я использую Maven, и это путь, в который я в конечном итоге иду *, так что я не вручную выкапываю .jar каждый раз, когда я обновляю ProjectB, а затем я просто собираюсь перечислить этот .jar как зависимость для ProjectA ,

* = http://maven.apache.org/plugins/maven-war-plugin/faq.html в нижней части FAQ: «Как создать JAR, содержащий классы в моем веб-приложении?»

+0

Не могли бы вы указать мне на решение maven? Мои проекты также являются maven-проектами, и это похоже на классное решение, которое действительно поможет в большем количестве мест. –

+0

Да, я смотрю внизу этой страницы: –

+0

Ну, я не могу удвоить пост: https://maven.apache.org/plugins/maven-war-plugin/faq.html это нижняя часть FAQ: «Как создать JAR, содержащий классы в моем веб-приложении?» –

0

Вставьте общий код в банку. (Установите этот код на новый модуль без передних частей).

Добавить эту банку как зависимость в войнах.

Или, если вы можете себе это позволить, просто начните мигрировать в микросервисы, где «кошка» находится внутри банки, а не наоборот.

For instance using Spring Boot

0

Вы не должны добавлять веб-функциональность в файле JAR. Лучшее решение - иметь библиотеку JAR, общую для ваших двух веб-сервисов. Кроме того, я рекомендую весеннюю загрузку для вашего второго веб-сервиса, потому что он прост в использовании и настройке, у вас может быть jar-веб-сервис на jiffy (встроенный внутри него - tomcat).

Вот пример: +----------+ +----------+ | WAR | | JAR-WS | | +-------------------+ | | | COMMONS | | | +-------------------+ | +----------+ +----------+