【问题标题】:How to create server and deploy webapp into WebSphere Liberty using Cargo?如何使用 Cargo 创建服务器并将 webapp 部署到 WebSphere Liberty 中?
【发布时间】:2016-06-16 10:57:29
【问题描述】:

我正在查看https://codehaus-cargo.github.io/cargo/WebSphere+Liberty.html,我很纠结如何(在 Java 中)创建服务器并在其中安装 web 应用程序。

文档(与上面相同的页面,在底部)提到了属性,但我不清楚如何将 context nameserver name 映射到列出的属性。

有没有关于如何做到这一点的好(或任何)例子?

更新

我的意思是我怎么做相当于server create myserver命令,后面跟mvn liberty:deploy变成刚刚创建的myserver,后面跟server start myserver

【问题讨论】:

  • 上下文名称和服务器名称是什么意思?从理论上讲,Liberty 货物容器应该是您为支持标准货物属性的其他应用程序服务器所拥有的任何示例的直接替代品。容器将下载、安装、创建默认服务器并对其进行配置。如果您希望使用该容器不存在的现有服务器。我认为这将是“已安装容器的现有本地配置”而不是“已安装容器的独立本地配置”
  • @Alasdair:我已经更新了问题。

标签: java websphere websphere-liberty cargo


【解决方案1】:

Liberty 独立货柜会自动创建服务器,因此无需创建 API。服务器名称虽然不能被覆盖,但将被称为 defaultServer。

要部署应用程序,或启动和停止服务器,您可以使用普通的 Java API。 codehause cargo 网站有一些使用 Java API 编写JUnit test 的示例代码。我添加了带有 Liberty 自定义的代码,并添加了有关如何为应用程序设置上下文根的代码。

    // (1) Optional step to install the container from a URL pointing to its distribution
    Installer installer = new ZipURLInstaller(
        new URL("http://repo1.maven.org/maven2/com/ibm/websphere/appserver/runtime/wlp-javaee7/8.5.5.9/wlp-javaee7-8.5.5.9.zip"));
    installer.install();

    // (2) Create the Cargo Container instance wrapping our physical container
    LocalConfiguration configuration = (LocalConfiguration) new DefaultConfigurationFactory().createConfiguration(
        "liberty", ContainerType.INSTALLED, ConfigurationType.STANDALONE);
    InstalledLocalContainer container =
        (InstalledLocalContainer) new DefaultContainerFactory().createContainer(
            "liberty", ContainerType.INSTALLED, configuration);
    container.setHome(installer.getHome());

    // (3) Statically deploy some WAR (optional)
    WAR war = new WAR("cargo.war");
    // (4) Set the context root for the application
    war.setContext("/myContext");
    configuration.addDeployable(war);

    // (5) Start the container
    container.start();

可以使用LocalConfiguration 接口设置属性。您可以使用右键调用 setPropertyValue。属性键在 GeneralPropertySet 等常量接口上可用。

【讨论】:

  • 太糟糕了,我们无法创建自定义命名服务器,但 defaultServer 现在可以了。谢谢你。接受。
  • 所以,我想我已经完成了基础工作。我可以部署,但服务器仅绑定到环回地址,因此无法在外部访问服务器。我尝试在slc.setProperty(GeneralPropertySet.HOSTNAME, hostname); 中使用*0.0.0.0,但usr\servers\defaultServer\server.xml 没有变化。
  • 如果你提出一个 JIRA 并分配给我,我会看看。
  • usr/servers/defaultServer/server.xml 不会被更新,而是应该有一个名为 usr/servers/defaultServer/configDropins/overrides/cargo-httpendpoint.xml 的文件覆盖 http 端点根据 slc.getProperty(GeneralPropertySet.HOSTNAME); 设置主机名;
猜你喜欢
  • 2019-03-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多