You need to enable JavaScript to run this app. 如何在NiFi自定义Controller Service中引用标准Cassandra连接控制器服务
优惠活动
大模型
产品
解决方案
定价
更多

如何在NiFi自定义Controller Service中引用标准Cassandra连接控制器服务

解决方案

完全可以在自定义Controller Service中引用NiFi官方标准Controller Service,你遇到的问题是NiFi的类隔离机制导致的,按以下步骤调整即可:

1. 调整API模块依赖scope

你自定义Controller Service的API/实现模块中,nifi-cassandra-services-api依赖需要设置scope为provided,避免将API类打包到你自己的组件包中,导致和官方服务加载的API类不匹配:

<dependency>
    <groupId>org.apache.nifi</groupId>
    <artifactId>nifi-cassandra-services-api</artifactId>
    <version>1.13.2</version>
    <scope>provided</scope>
</dependency>

2. 新增nar模块对官方Cassandra服务nar的依赖

NiFi每个nar包都有独立类加载器,需要在你自定义组件的nar模块pom中,添加官方nifi-cassandra-services-nar的依赖,明确类加载继承关系:

<dependency>
    <groupId>org.apache.nifi</groupId>
    <artifactId>nifi-cassandra-services-nar</artifactId>
    <version>1.13.2</version>
    <type>nar</type>
    <scope>provided</scope>
</dependency>

3. 代码验证

确认你代码中导入的CassandraSessionProviderService是官方包路径:

import org.apache.nifi.cassandra.services.CassandraSessionProviderService;

不要引用你项目中自定义的重名类。

4. 部署验证

重新打包你的自定义nar,放到NiFi的lib目录,同时确认官方的nifi-cassandra-services-nar-1.13.2.nar也存在于lib目录,重启NiFi后即可在属性下拉框看到已有的Cassandra连接服务。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.12 00:33:04