首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法解决org.apache.nifi:nifi-standard-services-api-nar -如何在CustomProcessor中使用LookupService

无法解决org.apache.nifi:nifi-standard-services-api-nar -如何在CustomProcessor中使用LookupService
EN

Stack Overflow用户
提问于 2021-04-05 09:54:39
回答 1查看 687关注 0票数 2

我正在实现自定义NiFi处理器来解码一些文件。在解码过程中,我需要查找某些数据映射的外部CSV记录。注意,这个解码过程很复杂,所以它必须是一个自定义处理器。我知道可以设置外部CSVRecordLookupService,然后在CustomController中定义一个属性描述符,如下所示

代码语言:javascript
运行
复制
    public static final PropertyDescriptor CLIENT_LOOKUP_SERVICE =
            new PropertyDescriptor.Builder()
                    .name("Client CSV Lookup service")
                    .identifiesControllerService(LookupService.class)
                    .required(true)
                    .build();

我的第一个问题是如何引用LookupService.class,我应该使用哪个maven Jar包。经过一番调查,我发现了这个https://mvnrepository.com/artifact/org.apache.nifi/nifi-standard-services-api-nar/1.13.0。因此,我将它添加到我的processors pom.xml中,如下所示

代码语言:javascript
运行
复制
        <!-- https://mvnrepository.com/artifact/org.apache.nifi/nifi-standard-services-api-nar -->
        <dependency>
            <groupId>org.apache.nifi</groupId>
            <artifactId>nifi-standard-services-api-nar</artifactId>
            <version>1.13.0</version>
        </dependency>

现在我可以编译我的类了,LookupService在代码中是可见的。但是,我不能构建nar或运行maven,因为它会导致Cannot resolve org.apache.nifi:nifi-standard-services-api-nar:1.13.0错误。

在这个想法中,它也显示了错误。

如何解决这个问题,并在我的自定义处理器中使用org.apache.nifi.lookup.LookupService

我相信这可能是因为它以nar而不是jar的形式出现。但我的问题是,如何仅在编译时使用LookupService,如何通过解决此问题在运行时使用NiFi提供的类。

更新

我想提供这方面的最新情况,但这个问题还没有完全解决。

我在马文回购找到了一个罐子,里面有LookupService

org.apache.nifi.serialization.record.Record一起,我可以成功地编译和运行maven。

根据maven回购依赖关系,这两者都应该使用范围provided声明。所以我就这么做了。

现在的问题是,我不能包装纳。它不像我排除了LookupService类。即使我删除了提供的范围,它也不会被包括在内。

代码语言:javascript
运行
复制
[INFO] Generating documentation for NiFi extensions in the NAR...
[INFO] Found a dependency on version 1.13.0 of NiFi API
[ERROR] Could not generate extensions' documentation
java.lang.NoClassDefFoundError: org/apache/nifi/lookup/LookupService

...
...

[ERROR] Failed to execute goal org.apache.nifi:nifi-nar-maven-plugin:1.3.1:nar (default-nar) on project nifi-decoder-processors-nar: Execution default-nar of goal org.apache.nifi:nifi-nar-maven-plugin:1.3.1:nar failed: A required class was missing while executing org.apache.nifi:nifi-nar-maven-plugin:1.3.1:nar: org/apache/nifi/lookup/LookupService
[ERROR] -----------------------------------------------------
[ERROR] realm =    extension>org.apache.nifi:nifi-nar-maven-plugin:1.3.1

那么我们如何在自定义处理器中使用这个LookupService呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-04-05 14:30:18

为了在运行时使用它,您必须在nifi-解码器-处理器-纳尔的pom文件中添加下面的依赖项。类型为nar

代码语言:javascript
运行
复制
    <dependency>
        <groupId>org.apache.nifi</groupId>
        <artifactId>nifi-standard-services-api-nar</artifactId>
        <version>1.13.0</version>
        <type>nar</type>
    </dependency>

至于在nifi-解码器-处理器的pom文件中添加下面的编译器时间(我在存储库中的NAR的pom.xml中找到了它,您可能认为NAR是依赖的集合)。

代码语言:javascript
运行
复制
    <dependency>
        <groupId>org.apache.nifi</groupId>
        <artifactId>nifi-lookup-service-api</artifactId>
        <version>1.13.0</version>
        <scope>provided</scope>
    </dependency>

见这篇文章

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66951167

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档