Я создаю приложение, которое динамически загружает модули на основе файлов конфигурации. Каждый модуль имеет свой собственный сервлет и свой собственный путь.Подавать статический контент на основе каждого сервлета
Он работает, но до сих пор это обслуживали только содержание я пояснением @Path
в моих классах (отдых услуги), благодаря ServerProperties.PROVIDER_PACKAGES
собственности:
Контекст:
ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS);
context.setContextPath("/");
Каждый модуль/сервлет инициализируется следующим образом:
ServletHolder jerseyServlet = context.addServlet(org.glassfish.jersey.servlet.ServletContainer.class, "/");
jerseyServlet.setInitOrder(0);
jerseyServlet.setInitParameter(ServerProperties.PROVIDER_PACKAGES, "com.my.packages.rest.server.root");
Это дает мне URL-адрес для каждого модуля - отлично.
Но у меня есть некоторые статические HTML в ресурс/MODULENAME папке каждого модуля, который я не знаю, как служить ...
С DefaultServlet, я могу сделать это так:
DefaultServlet defaultServlet = new DefaultServlet();
ServletHolder staticAppServlet = new ServletHolder("default", defaultServlet);
staticAppServlet.setInitParameter("resourceBase", "./src/main/resources/modulename/");
context.addServlet(staticAppServlet, "/path");
Но я не знаю, как это сделать с причалом ServletHolder
.
Любая идея?
вы имеете в виду вы можете иметь более одного defaultservlet? – Sebas
Несомненно, это просто сервлет. Только тот, который называется по умолчанию, является специальным (для обработки ошибок) –
Удивительно, я попробую его как можно скорее. – Sebas