You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vert.x集群初始化失败问题:IDEA可运行但Windows CMD执行可执行Jar报错

解决Vert.x集群打包后初始化失败的问题

我之前碰到过完全一样的问题!这是maven-shade-plugin打包时的常见坑——它默认只会合并Manifest文件,没有处理Java SPI(服务提供者接口)的配置文件,导致Infinispan运行时找不到必要的组件,最终抛出NullPointerException。

问题根源

Vert.x集群依赖的Infinispan框架需要通过META-INF/services目录下的配置文件来加载CounterManager等核心组件。在IDEA中运行时,IDE会自动扫描所有依赖中的这些配置文件;但使用maven-shade-plugin打包时,如果不指定对应的Transformer,多个依赖中的META-INF/services文件会被互相覆盖,丢失关键的服务实现配置,从而触发你看到的错误。

解决方案:修改Maven Shade插件配置

在你的maven-shade-plugin配置中添加ServicesResourceTransformer,它会自动合并所有依赖中的SPI配置文件:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-shade-plugin</artifactId>
    <version>3.2.4</version>
    <configuration>
        <createDependencyReducedPom>false</createDependencyReducedPom>
    </configuration>
    <executions>
        <execution>
            <phase>package</phase>
            <goals>
                <goal>shade</goal>
            </goals>
            <configuration>
                <transformers>
                    <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                        <mainClass>${mainClass}</mainClass>
                    </transformer>
                    <!-- 新增:合并所有META-INF/services下的SPI配置文件 -->
                    <transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"/>
                </transformers>
            </configuration>
        </execution>
    </executions>
</plugin>

验证步骤

  1. 执行mvn clean package重新打包你的应用
  2. 在Windows CMD中运行生成的可执行Jar文件
  3. 观察日志,集群初始化应该能正常完成,不会再出现Cannot invoke "org.infinispan.factories.impl.ComponentRef.running()"的错误

内容的提问来源于stack exchange,提问作者user1573049

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.28 16:39:07