Най-добрият начин за изпълнение на вграден Jetty

Имам уеб приложение, което е структурирано като стандартна война. Искам да използвам вграден Jetty сървър като мой сервлет контейнер. Тъй като всичко това е една кодова база, реших, че main(), който изпълнява Jetty сървъра, също ще участва в моята война с останалата част от кода.

И така, как да изпълня моя main(), който е във войната, за да стартирам сървъра Jetty? Разгледах примерите, но примерите нямат тази настройка, което ми изглежда като нормална настройка.

Ще трябва ли на сървъра на Jetty да бъде казано къде е военният файл (военният файл, който случайно се намира там, където се намира) или Jetty по подразбиране ще намери и провери WEB-INF за различните XML файлове, които Jetty обработва?

Виждам нещо близко до това с помощта на Jetty Maven Plugin , но консенсусът е, че този плъгин не е за производство.


person Jose Martinez    schedule 07.08.2014    source източник


Отговори (2)


Успях лесно да настроя изпълним файл с помощта на плъгина Maven, наречен Jetty Console Maven Plugin. Няма много документация за това как да го използвате в Интернет. Авторът, simplercity, свали техния запис в блога за това как да го използва. Но намерих една публикация в stackoverflow как да го използвате.

Текущата версия на този плъгин е 1.55. Може да се намери тук. Един проблем, с който се сблъсках е, че докато повечето от артефактите, които са необходими за този плъгин, са във версия 1.55, един от тях, jetty-console-ajp-plugin, е във версия 1.53. Това създаде проблем за мен, защото когато всички други плъгини бяха настроени на 1.55, имаше грешка при изключение на подписващия, която получих, когато се опитах да изпълня моята война. Намерих решението в този отговор на stackoverflow. Поправката беше да се използва само версия 1.53 на всички добавки. Може да има по-добро решение, което ви позволява да използвате 1.55 с 1.53 ajp-plugin. Освен това плъгинът работи страхотно и моля автора на Jetty Console Maven Plugin или да пусне публикацията в блога си за това как да го използва обратно, или да създаде нова документация за него.

person Jose Martinez    schedule 10.08.2014
comment
Благодаря Хосе! Свързахте се с публикацията ми, сега използвах тази публикация, за да коригирам проблема с 1.55. Благодаря много. - person Rafael Sanches; 01.04.2016

За да изпълните самостоятелно приложение в Java, не е необходимо да има война. Един буркан е достатъчен. Войната съдържа информация за това как уеб архив/приложение трябва да бъде внедрено в J2EE контейнер. Когато го стартирате самостоятелно, това не е необходимо. Основният метод ще бъде достатъчен. Можете да разгледате приставката за нюанс на maven. Ще ви помогне да изградите течащ буркан.

(Като странична бележка - изпълняваемият буркан е доста просто нещо. Файлът на манифеста на файла буркан трябва да съдържа ключа MainClass и това е.)

person froderik    schedule 07.08.2014
comment
Вижте тази връзка от самите Джети. В този пример те използват война като начин за прилагане на анотации. Така че изглежда, че те продължават да се връщат към WAR файла, когато внедряват стандартни функции на сървлети. - person Jose Martinez; 08.08.2014
comment
Да - има смисъл да имате изпълняваем военен файл. По този начин можете да използвате и за двете цели. (Също така jetty curely се нуждае от повечето неща, които обикновено се намират във военния файл. Предполагам, че зависи от това как е настроен основният метод и какъв вид приложение е.) - person froderik; 08.08.2014