如何从自定义处理器读取控制器服务值
如何从自定义处理器获取DBCPConnectionPool连接信息(URL字符串,凭据,这些信息已经在DBCPConnectionPool控制器服务中进行了配置)。
这是我到目前为止所拥有的:
1)在我的自定义处理器的nar pom中,我具有以下依赖性:
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-standard-services-api-nar</artifactId>
<version>1.9.2</version>
<type>nar</type>
</dependency>
2)在自定义处理器主POM中,我具有以下依赖性:
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-dbcp-service</artifactId>
<version>1.9.2</version>
</dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-api</artifactId>
<version>1.9.2</version>
</dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-utils</artifactId>
<version>1.9.2</version>
</dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-dbcp-service-api</artifactId>
<version>1.9.2</version>
</dependency>
3)在自定义处理器的OnTrigger方法中,我具有以下内容:
public static final PropertyDescriptor DBCPConnectionPoolLookup_SERVICE = new PropertyDescriptor.Builder()
.name("DBCPConnectionPoolLookup Service")
.description("The Controller Service to use in order to LOOKUP DBCP Connection Object by connection name")
.required(true)
.dynamic(true)
.identifiesControllerService(DBCPService.class)
.build();
最终地图属性=新的HashMap <>(); attribute.put(DBCPConnectionPoolLookup.DATABASE_NAME_ATTRIBUTE,“ some_value”);
最终DBCPService dbcpConnectionPoolLookup = context.getProperty(DBCPConnectionPoolLookup_SERVICE).asControllerService(DBCPService.class); 连接连接= dbcpConnectionPoolLookup.getConnection(attributes);
以上内容并未提供DBCPConnectionPool控制器服务中以下字段的值:
i。数据库连接URL
ii。数据库用户名
iii。密码
任何提示将不胜感激!