无法在wso2 cep中执行自定义函数扩展

时间:2016-09-22 11:18:59

标签: wso2 wso2carbon wso2cep siddhi

我正在使用 wso2cep 4.1.0 ,并使用以下包名创建了自定义函数扩展类:

package org.wso2.siddhi.extension.custom;

.....

public class MyFunction extends FunctionExecutor {
.....
}

然后我创建了文件: custom.siddhiext

放入以下内容。

mycount=org.wso2.siddhi.extension.custom.MyFunction

我创建了包含上述两个文件的jar。 我为上面创建了maven项目。

然后我把这个jar放到/ repository / components / dropins文件夹。

重新启动cep wso2server。

现在我正在执行以下执行计划: 我的执行计划:

from inputstream#window.timeBatch( 1 sec )

select custom:mycount(param1) as outparam
insert into outputstream;

在创建输出结果时,我得到以下异常:

验证流时出现异常,例外:' mycount'既不是功能扩展也不是执行计划中的聚合属性扩展" ExecutionPlan"

似乎我放入dropin文件夹中的jar不是由wso2server读取的,但我按照[https://docs.wso2.com/display/CEP410/Writing+a+Custom+Function+Extension]

中所述的步骤

任何人都面临类似问题或有解决方案。

在重启wso2cepserver期间,我得到以下错误:

  

ERROR {org.wso2.carbon.server.extensions.DropinsBundleDeployer} - 必需的Bundle清单头不存在:/home/analytics/wso2cep-4.1 .0 / repository / components / dropins / function-extension-1.0-SNAPSHOT的.jar

2 个答案:

答案 0 :(得分:1)

我假设您正在使用maven-bundle-plugin来构建捆绑包。如果是这样,在您的扩展项目pom文件中,重新检查maven-bundle-plugin配置。

检查是否已向插件提供Bundle-SymbolicName。您可以参考this example of another extension, being written to Siddhi

According to the source code(Carbon 4.4.3 DropinsBundleDeployer的源代码,它部署了我们放入dropins文件夹的包),可能会发生以下错误:

  1. 未提供Bundle-SymbolicName
  2. 未提供Bundle-Version时。
  3. 因此,如果将Bundle-SymbolicName放入配置中并没有什么不同,我也会尝试添加Bundle-Version。您可以在此maven-bundle-plugin tutorial中找到示例配置。

答案 1 :(得分:0)

您是否有任何其他具有相同org.wso2.siddhi.extension.custom包名称的扩展程序?如果是这样,请尝试将包重命名为其他内容。