У меня есть рабочее веб-приложение, которое я построил, успешно развернутый в Heroku, и работает хорошо. Тем не менее, я пытаюсь настроить конфигурацию сервера/сервлета, и именно тогда я понял, что не знаю, что на самом деле делает мое приложение.Настройка сервера Jetty с сервлетом Glassfish
Для стеклянной рыбы, this is the config that's needed.
Однако, для Jetty, this is the config that's needed.
я понял, что я понятия не имею, какой из выше моего приложения на самом деле, используя, таким образом, я начал копаться в моем коде и нашел следующее:
Основной метод вызывается с помощью Heroku является инстанцировании следующий сервер Jetty/webappcontext.
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.webapp.WebAppContext;
Однако мола конфигурации, кажется, полагается на ряд файлов (например, и т.д./jetty.xml, папки WebApps или военных файлов), которые мой проект не имеет вообще.
Кроме того, мой файл web.xml определяет следующий сервлет:
<servlet>
<servlet-name>Jersey Web Application</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
Тот факт, что мое приложение, определяющее сервер Jetty, но Glassfish сервлет касалось меня совсем немного. В попытке унифицировать все вокруг Jetty, я попытался добавить причал сервлет моих зависимости pom.xml и изменил выше:
<servlet-class>org.eclipse.jetty.servlet.DefaultServlet</servlet-class>
Однако это изменение вызвало мое заявление, чтобы сломаться. Он все еще успешно компилируется, и все мои тесты на основе тестов на основе jerset-тестов все еще успешно выполняются локально. Но когда я фактически запускаю сервер, ни один из маршрутов не работает.
Некоторые вопросы:
Является ли это плохо рекомендуется использовать сервер Jetty вместе с Glassfish сервлет (контейнер)?
Если да, какой сервлет (контейнер?) Следует заменить Glassfish, и что мне нужно сделать, чтобы заставить новый сервлет серфинга работать?
Если нет, какую конфигурацию я должен использовать для текущей настройки? Должен ли я использовать Glassfish config или Jersey config?
Я провел много часов, пытаясь прочитать с помощью различных документаций, учебники и стек переполнения темы, но все они либо принять предшествующее знание о сервлетов, JavaEE и связанные с ними темы (ни один из которых я знаком с), или они ориентированы на создание новых приложений hello-world с нуля (в отличие от переноса существующего рабочего приложения, что я и пытаюсь сделать). Любые объяснения, которые вы могли бы дать, не предполагая предварительных знаний, относящихся к контексту, описанному выше, были бы высоко оценены.
Edit: Я думаю, что я начинаю теперь понимать, что сервлет код, который генерирует ответ на запрос, и ServletContainer является то, что обеспечивает инфраструктуру для сервлетов. Мне никогда не приходилось иметь дело с Сервлетами непосредственно в создании моего веб-приложения.Вот пример того, что маршрут выглядит в моем приложении:
@Path(Ping.REST_PREFIX)
public class Ping {
static final String REST_PREFIX = "/ping";
@GET
public static Response get(@DefaultValue("getPing") @QueryParam("param") String param) {
return Response.ok().entity(param).build();
}
@Path("/pong")
@GET
public static Response getPong(@DefaultValue("getPong") @QueryParam("param") String param) {
return Response.ok().entity(param).build();
}
}
Как порт код, как выше в Jetty ServletContainer, без переписывания обширных разделов моего приложения?