如何使用Cargo创建服务器并将webapp部署到WebSphere Liberty?

时间:2016-06-16 10:57:30

标签: java websphere websphere-liberty cargo

我正在关注https://codehaus-cargo.github.io/cargo/WebSphere+Liberty.html,我更倾向于如何继续(在Java中)创建服务器并在其中安装webapp。

文档(与上面相同的页面,在底部)提到了属性,但我不清楚如何将上下文名称服务器名称映射到列出的属性。

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

更新

我的意思是我如何执行相当于server create myserver命令,然后mvn liberty:deploy进入刚刚创建的myserver,然后是server start myserver

1 个答案:

答案 0 :(得分:1)

Liberty独立货物集装箱将自动创建服务器,因此无需创建API。但是服务器名称不能被覆盖,并且将被称为defaultServer。

要部署应用程序,或启动和停止服务器,您可以使用普通的Java API。 codehause货运网站有一些使用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等常量接口。