【问题标题】:Failed to pull tasks from management center while running java project with Hazelcast Mancente Configuration使用 Hazelcast Mancente 配置运行 java 项目时无法从管理中心提取任务
【发布时间】:2018-06-03 07:24:18
【问题描述】:

我正在尝试使用以下配置运行 hazelcast-man center

   Config config = new Config();
    config.getManagementCenterConfig().setEnabled(true);
 config.getManagementCenterConfig()
      .setUrl("http://localhost:8080/mancenter/");
    HazelcastInstance hz = Hazelcast.newHazelcastInstance(config);

然后控制台输出是 :-

`2018 年 6 月 3 日下午 12:25:07 com.hazelcast.instance.Node 警告: [192.168.43.9]:5705 [dev] [3.8.1] 配置种子端口为 5701 和集群 大小为 1。某些端口似乎已被占用! 2018 年 6 月 3 日下午 12:25:07 com.hazelcast.internal.management.ManagementCenterService 信息: [192.168.43.9]:5705 [dev] [3.8.1] Hazelcast 将连接到 Hazelcast 管理中心地址:http://localhost:8080/mancenter/Jun 2018 年 3 月 3 日下午 12:25:07 com.hazelcast.core.LifecycleService 信息: [192.168.43.9]:5705 [dev] [3.8.1] [192.168.43.9]:5705 已开始 2018 年 3 月 3 日下午 12:25:08 com.hazelcast.internal.partition.impl.PartitionStateManager 信息: [192.168.43.9]:5705 [dev] [3.8.1] 初始化集群分区表 安排... 2018-06-03 12:25:08 PM com.hazelcast.internal.management.ManagementCenterService 信息: [192.168.43.9]:5705 [dev] [3.8.1] 无法从管理中提取任务 2018 年 6 月 3 日 12:25:08 PM com.hazelcast.internal.management.ManagementCenterService 警告: [192.168.43.9]:5705 [dev] [3.8.1] 发送响应失败, responseCode:404 url​​:http://localhost:8080/mancenter/collector.do

`

【问题讨论】:

  • 请问您的管理中心是否部署在“localhost:8080/mancenter”?看起来 Hazelcast 集群在配置的地址找不到管理中心。
  • 我在 tomcat webapps 中部署了 man-center war。它正在被提取,并且没有 tomcat 服务器的错误日志,但“localhost:8080/mancenter/”给出了 404。
  • 如果我从 tomcat 中删除战争并使用此命令从终端启动 hazelcast java -jar /path/to/war 8080 mancenter ,那么它说地址已在使用中
  • 您可以尝试清除端口 8080 并使用java -jar ... 命令重试吗?或者您可以完全尝试不同的端口
  • 与 Config 类关联的导入是什么?似乎无法在文档中找到对此的参考(?)。这个配置能否以某种方式与 JCache 的 MutableConfiguration 集成/组合?

标签: java hazelcast


【解决方案1】:

当您直接运行 Hazelcast 管理中心 WAR 文件时 java -jar hazelcast-mancenter-[version].war

然后使用嵌入式 Jetty 并且 URL 是

  • http://localhost:8080/hazelcast-mancenter/ 在较新的版本 (3.10+) 中
  • http://localhost:8080/mancenter/ 旧版本(3.9 及更早版本)

如果您将 WAR 文件部署到您选择的应用服务器或 servlet 容器中,那么

  • 要么使用默认路径 - 通常只需将不带后缀的 WAR 名称复制到 URL 中(例如,如果您有 hazelcast-mancenter-3.10.1.war,则 URL 将为 http://localhost:8080/hazelcast-mancenter-3.10.1/
  • 或使用您的服务器本机方式更改上下文路径。

雄猫

当您部署到 Tomcat 容器中时,您可以通过编辑 [TOMCAT_INSTALLATION]/conf/server.xml 文件来更改上下文路径。 比如你想在/hazelcast-mancenter/路径下部署hazelcast-mancenter-3.10.1.war,那么

  • 将 WAR 复制到 [TOMCAT_INSTALLATION]/webapps/ 目录中
  • server.xml<host/> 元素下添加一个新的<context/> 元素:
<Server ...>
  <!-- ... -->
  <Service ...>
    <!-- ... -->
    <Engine ...>
      <!-- ... -->
      <Host ...>
        <!-- ... -->
        <Context docBase="hazelcast-mancenter-3.10.1.war" path="/hazelcast-mancenter"/>
      </Host>
    </Engine>
  </Service>
</Server>

【讨论】:

    【解决方案2】:

    据我所知,问题在于您在同一端口(即 8080)中同时运行 hazelcast-mancenter 和项目。我建议您在 tomcat 配置中更改端口。

    【讨论】:

      猜你喜欢
      • 2014-06-02
      • 2011-09-30
      • 2017-04-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-18
      • 1970-01-01
      • 2011-03-20
      相关资源
      最近更新 更多