Bezdepbonusu7Программирование: статьи и ответы

Вопрос

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

Автор вопроса: Meng.QiОтветов: 1

Я создал встроенный проект 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 и успешно запустить его в причале?

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

mavenjettyembedded-jettyjetty-9

Ответы

Ответ 1 · Joakim Erdfelt

При использовании встроенного причала в 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/ работает, но больше ничего.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы