Вставить Payara в Java SE - PullRequest
       26

Вставить Payara в Java SE

0 голосов
/ 04 июня 2018

Контекст: существующее приложение 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.

1 Ответ

0 голосов
/ 07 июня 2018

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

...