Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何通过RESTAPI在ApacheNIFI中实例化模板_Api_Deployment_Automation_Apache Nifi - Fatal编程技术网

如何通过RESTAPI在ApacheNIFI中实例化模板

如何通过RESTAPI在ApacheNIFI中实例化模板,api,deployment,automation,apache-nifi,Api,Deployment,Automation,Apache Nifi,我正在尝试自动化ApacheNIFI进程组的部署 我的工作步骤如下: 创建代码段 创建模板 下载模板 上载模板 然后我尝试使用api调用: POST/processgroups/{id}/template实例实例化一个模板 instantiate_data = { "originX": 0.0, "originY": 0.0, "templateId": template_id, "snippet":

我正在尝试自动化ApacheNIFI进程组的部署

我的工作步骤如下:

创建代码段 创建模板 下载模板 上载模板 然后我尝试使用api调用:

POST/processgroups/{id}/template实例实例化一个模板

   instantiate_data = { 
        "originX": 0.0,    
        "originY": 0.0,
        "templateId": template_id,      
        "snippet": { 
            "processGroups": [                  
                { 
                    "id": group_id,                 
                    "parentGroupId": parentgroup_id,
                    "position": {                       
                        "x": 0.0,                       
                        "y": 0.0                    
                    },
                    "name": "value",            
                }
                ] 
            } 
    }
这是我从Nifi实例得到的500

在下面跟踪。。。我错过了什么

2017-05-23 14:28:49,180 INFO [NiFi Web Server-106]       org.apache.nifi.web.filter.RequestLogger Attempting request for (anonymous) POST http://10.132.0.22:8080/nifi-api/process-groups/1664cd1a-015c-1000-4bbe-f63259900964/template-instance (source ip: 10.132.0.23)
2017-05-23 14:28:49185错误[NiFi Web Server-106]o.a.NiFi.Web.api.config.ThrowableMapper发生意外错误:java.lang.NullPointerException。正在返回内部服务器错误响应。 java.lang.NullPointerException:null 位于org.apache.nifi.controller.FlowController.VerifyProcessorInsnippetFlowController.java:2051 位于org.apache.nifi.controller.FlowController.lambda$verifyProcessorsInSnippet$1FlowController.java:2067 java:75 位于org.apache.nifi.controller.FlowController.VerifyProcessorInsnippetFlowController.java:2066 位于org.apache.nifi.controller.FlowController.VerifyComponentTypesInnippetFlowController.java:2100 位于org.apache.nifi.web.dao.impl.StandardTemplateDAO.verifyComponentTypesStandardTemplateDAO.java:74 在org.apache.nifi.web.dao.impl.StandardTemplateDAO$$FastClassBySpringCGLIB$$58f5765d.invoke 位于org.springframework.cglib.proxy.MethodProxy.invokeMethodProxy.java:204 位于org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpointCglibAopProxy.java:720 位于org.springframework.aop.framework.ReflectiveMethodInvocation.proceedReflectiveMethodInvocation.java:157 位于org.springframework.aop.interceptor.ExposeInvocationInterceptor.invokeeexposeinvocationinterceptor.java:92 位于org.springframework.aop.framework.ReflectiveMethodInvocation.proceedReflectiveMethodInvocation.java:179 位于org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.interceptCglibAopProxy.java:655 在org.apache.nifi.web.dao.impl.StandardTemplateDAO$$EnhancerBySpringCGLIB$$2cf2c182.verifyComponentTypes 在org.apache.nifi.web.standardinfiservicefacade.verifycomponenttypessstandardinfiservicefacade.java:1643 在org.apache.nifi.web.StandardNiFiServiceFacade$$FastClassBySpringCGLIB$$358780e0.invoke 位于org.springframework.cglib.proxy.MethodProxy.invokeMethodProxy.java:204 位于org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpointCglibAopProxy.java:720 位于org.springframework.aop.framework.ReflectiveMethodInvocation.proceedReflectiveMethodInvocation.java:157 位于org.springframework.aop.aspectj.methodinvocationprocedingjoinpoint.proceedmethodinvocationprocedingjoinpoint.java:85 位于org.apache.nifi.web.NiFiServiceFacadeLock.proceedWithReadLockNiFiServiceFacadeLock.java:137 位于org.apache.nifi.web.NiFiServiceFacadeLock.verifyLockNiFiServiceFacadeLock.java:126 位于sun.reflect.GeneratedMethodAccessor320.invokeUnknown源 在sun.reflect.DelegatingMethodAccessorImpl.invokeDelegatingMethodAccessorImpl.java:43 位于java.lang.reflect.Method.invokeMethod.java:498 在org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgsAbstractAspectJAdvice.java:621 位于org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodAbstractAspectJAdvice.java:610 位于org.springframework.aop.aspectj.AspectJAroundAdvice.invokeAspectJAroundAdvice.java:68 位于org.springframework.aop.framework.ReflectiveMethodInvocation.proceedReflectiveMethodInvocation.java:179 位于org.springframework.aop.interceptor.ExposeInvocationInterceptor.invokeeexposeinvocationinterceptor.java:92 位于org.springframework.aop.framework.ReflectiveMethodInvocation.proceedReflectiveMethodInvocation.java:179 位于org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.interceptCglibAopProxy.java:655 在org.apache.nifi.web.standardinfiservicefacade$$EnhancerBySpringCGLIB$$9a341d03.verifyComponentTypes 位于org.apache.nifi.web.api.ProcessGroupResource.lambda$InstancetTemplate$41ProcessGroupResource.java:1995 位于org.apache.nifi.web.api.ApplicationResource.withWriteLockApplicationResource.java:667 位于org.apache.nifi.web.api.ProcessGroupResource.InstanceTemplateProcessGroupResource.java:1967 位于sun.reflect.GeneratedMethodAccessor327.invokeUnknown源 在sun.reflect.DelegatingMethodAccessorImpl.invokeDelegatingMethodAccessorImpl.java:43 位于java.lang.reflect.Method.invokeMethod.java:498 位于com.sun.jersey.spi.container.JavaMethodInvokerFactory$1.invokeJavaMethodInvokerFactory.java:60 位于com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$ResponseOutInvoker.\u dispatchAbstractResourceMethodDispatchProvider.java:205 位于com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.DispatcherResourceJavaMethodDispatcher.java:75 在com.sun.jersey.server.impl.uri.rules.H ttpMethodRule.acceptHttpMethodRule.java:302 位于com.sun.jersey.server.impl.uri.rules.RightHandPathRule.acceptRightHandPathRule.java:147 位于com.sun.jersey.server.impl.uri.rules.ResourceClassRule.acceptResourceClassRule.java:108 位于com.sun.jersey.server.impl.uri.rules.RightHandPathRule.acceptRightHandPathRule.java:147 位于com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.acceptRootResourceClassesRule.java:84 位于com.sun.jersey.server.impl.application.WebApplicationImpl.\u handleRequestWebApplicationImpl.java:1542 位于com.sun.jersey.server.impl.application.WebApplicationImpl.\u handleRequestWebApplicationImpl.java:1473 位于com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequestWebApplicationImpl.java:1419 位于com.sun.jersey.server.impl.application.WebApplicationImpl.HandlerRequestWebApplicationImpl.java:1409 在com.sun.jersey.spi.container.servlet.WebComponent.serviceWebComponent.java:409 位于com.sun.jersey.spi.container.servlet.ServletContainer.serviceServletContainer.java:558 位于com.sun.jersey.spi.container.servlet.ServletContainer.serviceServletContainer.java:733 位于javax.servlet.http.HttpServlet.serviceHttpServlet.java:790 位于org.eclipse.jetty.servlet.ServletHolder.handleServletHolder.java:841 位于org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilterServletHandler.java:1634 位于org.apache.nifi.web.filter.RequestLogger.doFilterRequestLogger.java:66 位于org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilterServletHandler.java:1621 位于org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilterFilterChainProxy.java:316 位于org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invokeFilterSecurityInterceptor.java:126 位于org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilterFilterSecurityInterceptor.java:90 位于org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilterFilterChainProxy.java:330 位于org.springframework.security.web.session.SessionManagementFilter.doFilterSessionManagementFilter.java:122 位于org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilterFilterChainProxy.java:330 位于org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilterAnonymousAuthenticationFilter.java:111 位于org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilterFilterChainProxy.java:330 位于org.apache.nifi.web.security.NiFiAuthenticationFilter.authenticateNiFiAuthenticationFilter.java:83 位于org.apache.nifi.web.security.NiFiAuthenticationFilter.doFilterNiFiAuthenticationFilter.java:57 位于org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilterFilterChainProxy.java:330 位于org.apache.nifi.web.security.NiFiAuthenticationFilter.authenticateNiFiAuthenticationFilter.java:83 位于org.apache.nifi.web.security.NiFiAuthenticationFilter.doFilterNiFiAuthenticationFilter.java:57 位于org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilterFilterChainProxy.java:330 位于org.apache.nifi.web.security.NiFiAuthenticationFilter.authenticateNiFiAuthenticationFilter.java:83 位于org.apache.nifi.web.security.NiFiAuthenticationFilter.doFilterNiFiAuthenticationFilter.java:57 位于org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilterFilterChainProxy.java:330 位于org.springframework.security.web.FilterChainProxy.doFilterInternalFilterChainProxy.java:213 位于org.springframework.security.web.FilterChainProxy.doFilterFilterChainProxy.java:176 位于org.springframework.web.filter.DelegatingFilterProxy.invokedelegatingfilterproxy.java:346 位于org.springframework.web.filter.DelegatingFilterProxy.doFilterDelegatingFilterProxy.java:262 位于org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilterServletHandler.java:1621 位于org.apache.nifi.web.filter.TimerFilter.doFilterTimerFilter.java:51 位于org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilterServletHandler.java:1613 位于org.eclipse.jetty.servlet.ServletHandler.doHandleServletHandler.java:541 位于org.eclipse.jetty.server.handler.ScopedHandler.handleScopedHandler.java:143 位于org.eclipse.jetty.security.SecurityHandler.handleSecurityHandler.java:548 位于org.eclipse.jetty.server.handler.HandlerWrapper.HandlerWrapper.java:132 位于org.eclipse.jetty.server.handler.ScopedHandler.nextHandleScopedHandler.java:190 位于org.eclipse.jetty.server.session.SessionHandler.doHandleSessionHandler.java:1593 位于org.eclipse.jetty.server.handler.ScopedHandler.nextHandleScopedHandler.java:188 位于org.eclipse.jetty.server.handler.ContextHandler.doHandleContextHandler.java:1239 位于org.eclipse.jetty.server.handler.ScopedHandler.nextScopedHandler.java:168 位于org.eclipse.jetty.servlet.ServletHandler.doScopeServletHandler.java:481 位于org.eclipse.jetty.server.session.SessionHandler.doScopeSession java:1562 位于org.eclipse.jetty.server.handler.ScopedHandler.nextScopedHandler.java:166 位于org.eclipse.jetty.server.handler.ContextHandler.doScopeContextHandler.java:1141 位于org.eclipse.jetty.server.handler.ScopedHandler.handleScopedHandler.java:141 位于org.eclipse.jetty.server.handler.HandlerCollection.HandlerCollection.java:118 java:561 位于org.eclipse.jetty.server.handler.HandlerWrapper.HandlerWrapper.java:132 位于org.eclipse.jetty.server.server.handleServer.java:564 位于org.eclipse.jetty.server.HttpChannel.handleHttpChannel.java:320 位于org.eclipse.jetty.server.HttpConnection.onFillableHttpConnection.java:251 位于org.eclipse.jetty.io.AbstractConnection$ReadCallback.SucceededBstractConnection.java:279 位于org.eclipse.jetty.io.FillInterest.fillableFillInterest.java:110 位于org.eclipse.jetty.io.ChannelEndPoint$2.runChannelEndPoint.java:124 位于org.eclipse.jetty.util.thread.Invocable.invokePreferredInvocable.java:122 位于org.eclipse.jetty.util.thread.strategy.ExecutingExecutionStrategy.invokeeExecutingExecutionStrategy.java:58 位于org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceConsumeExecuteProduceConsume.java:201 位于org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.runExecuteProduceConsume.java:133 位于org.eclipse.jetty.util.thread.QueuedThreadPool.runJobQueuedThreadPool.java:672 位于org.eclipse.jetty.util.thread.QueuedThreadPool$2.runQueuedThreadPool.java:590 在java.lang.Thread.runThread.java:748

@strzelecki.maciek

您必须传递实例化_数据才能正确地如下所示

如果任何参数属于实例化数据错误,那么您将收到500个内部服务器错误

Rest API URL:

使用以下命令可以正确地实例化数据


如果您遇到任何问题,请告诉我。

您使用的是哪个版本的NiFi?它是否与用于创建模板的版本相同?您是否能够在UI中手动部署模板?如果是这样,您应该能够在浏览器的网络调试工具中捕获API调用。如果没有,我建议尝试制作一个新的、更简单的模板并进行比较。只需通过浏览器执行您需要的操作,并使用FireBug或DevTools跟踪所有api请求即可。然后只需重复实现中的api调用序列。如果api调用可以从浏览器中工作,那么它应该可以从您的代码中工作。非常感谢!窃听来自UI的API调用是一件好事:
http://localhost:8080/nifi-api/process-groups/015c100c-8968-18bb-9b56-bf5342d001fd/template-instance
{
    "originX": 2.0,
    "originY": 3.0,
    "templateId": "87fb53bb-a4bd-4051-a129-66b29dfce2b4"
}