Встроить Payara в Java SE

Контекст: существующее приложение JavaSE, написанное на Swing, которое запускает встроенный сервер (до сих пор это был Jetty), но нам нужно переключиться на Java EE, поэтому мы подумали о внедрении корпоративного контейнера (кандидаты: Payara, Tomee, Wildfly). Сервер должен иметь возможность запускать веб-приложение на основе динамического ввода: веб-контекст, с собственным web.xml, конкретными веб-ресурсами, которые неизвестны во время сборки, поэтому uber jar на самом деле не вариант для нас. Мы успешно запустили веб-приложение на Payara, используя следующий код (это не рабочий код, но он показывает шаги, которые мы предприняли для использования Payara)

GlassFish glassfish;
WebContainer container;
GlassFishRuntime glassfishRuntime =  = GlassFishRuntime.bootstrap();
glassfish = glassfishRuntime.newGlassFish();
glassfish.start();

// Access WebContainer
container = glassfish.getService(WebContainer.class);
WebContainerConfig config = new WebContainerConfig();
container.setConfiguration(config);

Context context = container.createContext(contextPathLocation);
m_webAppContexts.put(p_contextName, context);
WebListener listener = container.createWebListener("listener-1", HttpListener.class);
listener.setPort(myDynamicPortNumber);
container.addWebListener(listener);
container.addContext(context, myDynamicContextPath);
context.addServlet(myDynamicMapping, myServletName);

Все это работает, и базовое веб-приложение запускается в Payara при вызове из нашего приложения Java SE.

У нас также есть фрагмент файла web.xml, в котором объявляются дополнительные сервлеты, которые мы хотим добавить в это динамическое развертывание, если будут выполнены заданные условия. Каков наилучший способ переопределить существующий файл web.xml фрагментами из другого файла web.xml? Нам нужны указатели на документацию, указания от более опытных пользователей Payara.


person rdf    schedule 04.06.2018    source источник


Ответы (1)


Это невозможно с Payara или Wildfly, так как они работают совсем не так, как работает Jetty. Однако это возможно с Tomee.

person Guilherme Mussi    schedule 07.06.2018