Java 使用ServerLauncher后无法在Gemfire 9中启动脉冲

Java 使用ServerLauncher后无法在Gemfire 9中启动脉冲,java,gemfire,pulse,Java,Gemfire,Pulse,我正在尝试使用java代码运行Gemfire服务器。然而,我无法启动pulse,因为我收到一个错误,说“找不到GeodeWebAPI war文件” 在此之后没有日志打印: [信息2020/02/11 14:32:46.648 GMT tid=0x1] GEODE_主页:C:\FAST\pivotal-gemfire-9.9.0 [警告2020/02/11 14:32:46.649 GMT tid=0x1]geode web api war 找不到文件 [信息2020/02/11 14:32:46

我正在尝试使用java代码运行Gemfire服务器。然而,我无法启动pulse,因为我收到一个错误,说“找不到GeodeWebAPI war文件”

在此之后没有日志打印:

[信息2020/02/11 14:32:46.648 GMT tid=0x1] GEODE_主页:C:\FAST\pivotal-gemfire-9.9.0

[警告2020/02/11 14:32:46.649 GMT tid=0x1]geode web api war 找不到文件

[信息2020/02/11 14:32:46.649 GMT tid=0x1]找不到 GemFire开发者RESTAPI WAR文件;的开发人员REST接口 GemFire将无法访问

[信息2020/02/11 14:32:46.650 GMT tid=0x1]正在初始化区域 参数化查询

[信息2020/02/11 14:32:46.650 GMT tid=0x1]的初始化 区域参数化查询已完成

下面是我用来运行ServerLauncher的代码:

public static void run(String cacheFile, String locator,
                           boolean enableJmx, String jmxPort, String httpPort, String locators) throws Exception {
        if (StringUtils.isEmpty(cacheFile) || StringUtils.isEmpty(locator)) {
            throw new Exception("Could not start Gemfire for configFile " + cacheFile + " and locator " + locator);
        }
        if (enableJmx && StringUtils.isEmpty(jmxPort)) {
            throw new Exception("jmxPort not specified");
        }
        ServerLauncher serverLauncher = new ServerLauncher.Builder()
                .set("cache-xml-file", cacheFile)
                .set("start-locator", locator)
                .set("jmx-manager", "" + enableJmx)
                .set("jmx-manager-start", "true")
                .set("log-level", "debug")
                .set("jmx-manager-port", jmxPort)
                .set("http-service-bind-address", "localhost")
                .set("http-service-port", httpPort)
                .set("jmx-manager-update-rate", "2000")
                .set("start-dev-rest-api", "true")
//                .set("locators", locators)
                .build();
        serverLauncher.start();
}

谢谢

我刚刚在本地尝试了以下方法(作为一个快速示例),效果很好:


public class TestLocator {
    static {
        System.setProperty("gemfire.home", "/apps/pivotal-gemfire-9.9.1");
    }

    public static void main(String[] args) {
        LocatorLauncher launcher = new LocatorLauncher.Builder()
                .set("jmx-manager", "true")
                .set("jmx-manager-start", "true")
                .set("log-level", "config")
                .set("log-file", "/test/locator.log")
                .set("http-service-bind-address", "localhost")
                .set("http-service-port", "7070")
                .build();
        launcher.start();
    }
}

尽管以类似的方式启动,GeodeWebAPI与Pulse无关。但是,如果也找不到Pulse war,您可能会看到与Pulse相关的类似日志记录消息。您可以检查war文件是否存在于
${GEODE_HOME}/tools/Pulse
中。是的,它位于该文件夹中。我明白你所说的GeodeWebAPI与Pulse无关。是否有一种方法可以在没有
设置(“start dev rest api”,“true”)
的情况下启动pulse。因为我没有看到任何有关pulse通过Jetty启动的日志。对不起,我完全没有看到您正在启动服务器。脉冲仅作为定位器启动的一部分启动。为了使用脉冲,你需要一个定位器。我明白了。我尝试启动定位器,但出现以下错误:
GEODE\u HOME:C:\FAST\pivotal-gemfire-9.9.0。找不到geode web war文件。找不到Geode V1管理REST API WAR文件;Geode的管理REST接口将无法访问。找不到geode pulse war文件。找不到Pulse web应用程序WAR文件;“测地线脉冲”将无法访问
您对此使用了哪些依赖项?您是否包含Jetty依赖项,或者它应该从gemfire.home路径的jar文件中获取它?我在本地找不到示例项目,可能是不久前删除了它…:-如果我的记忆没有问题,我手动添加了
/lib
文件夹中的
jetty
依赖项。