Развернуть встроенную войну Jetty&Jersey на jetty9, можно увидеть только статический файл?

Я создал встроенный проект jetty&jersey с помощью IDEA и Maven, я разместил его на Github https://github.com/Mengqi777/JettyProject. Запустите JettyServerStart.java, запустите сервер, в адресной строке браузера введите localhost:8080/dynamic, покажите OK, введите localhost:8080/static, покажите файл статического ресурса

Теперь я упаковываю его в военный файл и помещаю в каталог веб-приложений причала. Но статический файл можно увидеть только в браузере с помощью ввода localhost:8080/static.404 Ошибка не найдена, когда в браузере с помощью ввода localhost:8080/dynamic

Что случилось?

Что я должен сделать, чтобы упаковать этот проект в военный файл или файл jar и успешно запустить его в причале?


person Meng.Qi    schedule 17.05.2017    source источник
comment
Теперь я могу запустить этот встроенный проект только в IDEA. Я хочу знать, как запустить его без IDEA?   -  person Meng.Qi    schedule 17.05.2017


Ответы (1)


При использовании встроенного причала в JettyServerStart.java вы делаете что-то, что вы не объявляете/не настраиваете в своем веб-приложении или файле войны.

Это проект maven, но он не объявлен веб-приложением или военным проектом (в pom.xml)

У него нет своего WEB-INF в нужном месте (мудрая структура каталогов maven), что означает, что ваш встроенный военный файл недействителен.

Зависимости объявлены неправильно для веб-приложения или военного проекта (вы не можете включить jetty-сервер в военный файл)

Ваш плохо расположенный WEB-INF/web.xml не выполняет те же шаги настройки, что и ваш JettyServerStart.java

Вы не указываете, как вы создали свой каталог ${jetty.base} для поддержки этого файла войны?

Вы не указали, какую версию jetty-distribution или jetty-home вы загрузили или с которой пытаетесь работать.

Утверждение «и поместите его в каталог веб-приложений причала» неясно, какое? (использование jetty-distribution/webapps недопустимо и вызовет много ошибок и предупреждений, если вы попытаетесь использовать его для своих собственных веб-приложений, нет jetty-home/webapps, и вы не определили свою базовую конфигурацию причала)

То, как ваш проект объявлен прямо сейчас, даже если он собран вручную, полностью пропуская maven, у вас нет сервлетов, фильтров, прослушивателей, инициализаторов, только спецификация сервлета, предписывающая DefaultServlet по шаблону URL-адреса /, дающая вам статический контент. Вот почему доступ к http://localhost:8080/static/ работает, но больше ничего.

person Joakim Erdfelt    schedule 18.05.2017
comment
Большое спасибо, я очень мало знаю о Jetty и Maven, и я узнаю больше об обоих. - person Meng.Qi; 20.05.2017