我正在使用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”中的聚合属性扩展
似乎jar放入dropin文件夹中的jar不是由wso2server读取的,但我遵循了[https://docs.wso2.com/display/CEP410/Writing+a+Custom+Function+Extension]中所述的步骤
任何人都面临类似的问题或有解决方案.
在重启wso2cepserver期间,我得到以下错误:
ERROR {org.wso2.carbon.server.extensions.DropinsBundleDeployer} – Required Bundle manifest headers do not exists: /home/analytics/wso2cep-4.1 .0/repository/components/dropins/function-extension-1.0-SNAPSHOT.jar
最佳答案 我假设您使用
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文件夹的包),可能会发生以下错误:
>什么时候没有给出Bundle-SymbolicName或者
>什么时候没有给出Bundle-Version.
因此,如果将Bundle-SymbolicName放入配置中并没有什么区别,我会尝试添加Bundle-Version.您可以在此maven-bundle-plugin tutorial中找到示例配置.