在Java SE中嵌入Payara

时间:2018-06-04 10:02:55

标签: java-ee-7 payara

上下文:用Swing编写的现有JavaSE应用程序启动嵌入式服务器(到目前为止它是Jetty)但我们需要切换到Java EE,所以我们考虑引入一个企业容器(候选者是:Payara,Tomee, Wildfly)。 服务器应该能够基于动态输入运行Web应用程序:Web上下文,具有自己的web.xml,在构建时不知道的特定Web资源,因此uber jar对我们来说不是一个真正的选择。 我们已经使用以下代码在Payara上成功启动了一个Web应用程序(这不是正常工作的代码,但它显示了我们使用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);

这一切正常,从我们的Java SE应用程序调用时,Payara中的基本Web应用程序启动。

如果满足给定条件,我们还有一个web.xml片段,声明我们想要在此动态部署中引入的其他servlet。 使用来自另一个web.xml的片段覆盖现有web.xml的最佳方法是什么?我们需要指向文档,指向更有经验的Payara用户的指示。

1 个答案:

答案 0 :(得分:1)

这与Payara或Wildfly无法实现,因为它们与Jetty的工作方式有很大不同。 但是,有可能与Tomee。