'DBCPConnectionPool' 服务不接受存储在属性中的值
'DBCPConnectionPool' Service Not accepting values stored in attributes
以下是我使用的处理器组合:-
GetFile + SplitText + ExtractText + UpdateAttribute + ExecuteSQL + ConvertAvroToJson + PutFile
基本上,我有一个属性文件,其中包含 'DBCPConnectionPool' 控制器服务与数据库建立连接所需的 5 个逗号分隔值。这是我的属性文件的内容:-
jdbc:mysql://localhost:3306/test,com.mysql.jdbc.Driver,C:\Program Files\MySQL\mysql-connector.jar,root,root
现在,我正在从此属性文件中提取值并将它们存储在手动创建的 properties.I 我正在使用此正则表达式使用 ExtractText 将该值存储到属性中。
ExtractedData: (.*)
然后使用 updateAttribute 处理器手动添加 5 个属性并从属性文件中获取它们的值,如下所示:
connectionURL : ${ExtractedData:getDelimitedField(1)}
driverClass : ${ExtractedData:getDelimitedField(2)}
driverLocation : ${ExtractedData:getDelimitedField(3)}
user : ${ExtractedData:getDelimitedField(4)}
password : ${ExtractedData:getDelimitedField(5)}
所以,到目前为止,属性已经从属性文件中获取了它们的值,因此在其中存储了以下值:
connectionURL : jdbc:mysql://localhost:3306/test
driverClass : com.mysql.jdbc.Driver
driverLocation : C:\Program Files\MySQL\mysql-connector.jar
user : root
password : root
最后,这是我想要实现的目标。我正在尝试在 DBCPConnectionPool 控制器服务中使用以上 5 个属性,如下所示:
Database Connection URL : ${connectionURL}
Database Driver Class : ${driverClass}
Database Driver Location(s) : ${driverLocation}
Database User : ${user}
Password : ${password}
但是我无法建立连接并且出现错误 'Cannot create PoolableConnectionFactory'。控制器服务似乎无法从属性中读取值。如何将流文件属性传递给控制器服务?
'DBCPConnectionPool' Service Not accepting values stored in attributes
这不是问题。这是一个功能)
与数据库的连接是在控制器服务启动时建立的,而不是在流文件传递给 dbcp 处理器时建立的。
以下是我使用的处理器组合:-
GetFile + SplitText + ExtractText + UpdateAttribute + ExecuteSQL + ConvertAvroToJson + PutFile
基本上,我有一个属性文件,其中包含 'DBCPConnectionPool' 控制器服务与数据库建立连接所需的 5 个逗号分隔值。这是我的属性文件的内容:-
jdbc:mysql://localhost:3306/test,com.mysql.jdbc.Driver,C:\Program Files\MySQL\mysql-connector.jar,root,root
现在,我正在从此属性文件中提取值并将它们存储在手动创建的 properties.I 我正在使用此正则表达式使用 ExtractText 将该值存储到属性中。
ExtractedData: (.*)
然后使用 updateAttribute 处理器手动添加 5 个属性并从属性文件中获取它们的值,如下所示:
connectionURL : ${ExtractedData:getDelimitedField(1)}
driverClass : ${ExtractedData:getDelimitedField(2)}
driverLocation : ${ExtractedData:getDelimitedField(3)}
user : ${ExtractedData:getDelimitedField(4)}
password : ${ExtractedData:getDelimitedField(5)}
所以,到目前为止,属性已经从属性文件中获取了它们的值,因此在其中存储了以下值:
connectionURL : jdbc:mysql://localhost:3306/test
driverClass : com.mysql.jdbc.Driver
driverLocation : C:\Program Files\MySQL\mysql-connector.jar
user : root
password : root
最后,这是我想要实现的目标。我正在尝试在 DBCPConnectionPool 控制器服务中使用以上 5 个属性,如下所示:
Database Connection URL : ${connectionURL}
Database Driver Class : ${driverClass}
Database Driver Location(s) : ${driverLocation}
Database User : ${user}
Password : ${password}
但是我无法建立连接并且出现错误 'Cannot create PoolableConnectionFactory'。控制器服务似乎无法从属性中读取值。如何将流文件属性传递给控制器服务?
'DBCPConnectionPool' Service Not accepting values stored in attributes
这不是问题。这是一个功能)
与数据库的连接是在控制器服务启动时建立的,而不是在流文件传递给 dbcp 处理器时建立的。