使用nifi模板导入API时参数类型不匹配



我正在尝试使用Nifi REST API 1.0的导入端点。我已经使用UI导出了一个模板作为XML,并试图使用Postman导入它。请求看起来像这样:

POST /nifi-api/process-groups/63dcaf98-0158-1000-04da-dd54bbb3a5b8/templates/import HTTP/1.1
Host: localhost:8080
Content-Type: application/xml
Cache-Control: no-cache
Postman-Token: 37a10e8b-b30d-b5c8-4219-ca1ba34f79da
<?xml version="1.0" ?>
<template encoding-version="1.0">
   <description></description>
   ...
</template>

我得到400错误返回,消息argument type mismatch。在nifi-user.log:

中没有什么非常有用的内容。
2016-11-14 14:58:22,164 INFO [NiFi Web Server-327] org.apache.nifi.web.filter.RequestLogger Attempting request for (anonymous)     POST http://localhost:8080/nifi-api/process-groups/63dcaf98-0158-1000-04da-dd54bbb3a5b8/templates/import (source ip: 127.0.0.1)
 2016-11-14 14:58:22,231 INFO [NiFi Web Server-327] o.a.n.w.a.c.IllegalArgumentExceptionMapper java.lang.IllegalArgumentException: argument type mismatch. Returning Bad Request response.

有什么想法可能导致这个,或者我如何调试?

尝试用另一个名为templateEntity的元素包装根template元素。Apache NiFi 1.0.0中的大多数端点都用entity对象包装有问题的对象,以便在拒绝访问时传递有关该对象的相关详细信息,以帮助提升多租户模型。此模式应用于大多数端点,以帮助实现整个API的一致性。

还可以通过启用

的调试级别日志记录来获得更多详细信息
<logger name="org.apache.nifi.web.api.config" level="DEBUG" additivity="false">
在conf/logback.xml。

首先,您必须上传模板,使用以下命令(我使用curl):

curl -iv -F template=@Sample_Process_group.xml -X POST http://172.17.0.4:8080/nifi-api/process-groups/2a9c6a0d-015c-1000-dec6-e81122344f7e/templates/upload其中guid是您的根进程组。

相关内容

  • 没有找到相关文章

最新更新