【问题标题】:Embed Payara in Java SE在 Java SE 中嵌入 Payara
【发布时间】:2018-06-04 10:02:55
【问题描述】:

上下文:用 Swing 编写的现有 JavaSE 应用程序会启动嵌入式服务器(目前是 Jetty),但我们需要切换到 Java EE,因此我们考虑引入企业容器(候选人是:Payara、Tomee、野蝇)。 服务器应该能够基于动态输入运行 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 应用程序调用时,一个基本的 Web 应用程序在 Payara 中启动。

我们还有一个 web.xml 片段,它声明了如果满足给定条件,我们希望在此动态部署中引入额外的 servlet。 用另一个 web.xml 的片段覆盖现有 web.xml 的最佳方法是什么?我们需要更多有经验的 Payara 用户提供的文档指南和指导。

【问题讨论】:

    标签: java-ee-7 payara


    【解决方案1】:

    Payara 或 Wildfly 无法做到这一点,因为它们的工作方式与 Jetty 的工作方式大不相同。 但是,Tomee 是可能的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-04
      • 2016-10-07
      • 1970-01-01
      • 2012-06-07
      相关资源
      最近更新 更多