编写siddhi自定义功能/流扩展,既没有功能扩展也没有聚合属性扩展

问题描述 投票:0回答:1

我是WSO2 Spsiddhi的新手。

我正在尝试创建自定义siddhi扩展名。我使用以下原型生成骨架扩展,并尝试修改function和streamfunction类。

mvn archetype:generate -DarchetypeGroupId=org.wso2.siddhi.extension.archetype -DarchetypeArtifactId=siddhi-archetype-execution -DgroupId=org.wso2.extension.siddhi.execution -Dversion=1.0.0-SNAPSHOT

我在更改代码后构建了jar,并将jar部署在路径$WSO2_SP_HOME/lib中。但是,当我在下面的siddhi文件中引用我的函数时,出现错误。

select newns:conv(inValue) as sinValue
insert into OutputStream;

错误如下:

[2020-02-03 13:44:23,042] ERROR {org.wso2.carbon.stream.processor.core.internal.StreamProcessorDeployer} - org.wso2.siddhi.core.exception.SiddhiAppCreationException: Error on 'TestCustomApp' @ Line: 12. Position: 26, near 'newns:conv(inValue)'. 'conv' is neither a function extension nor an aggregated attribute extension org.wso2.carbon.stream.processor.core.internal.exception.SiddhiAppDeploymentException: org.wso2.siddhi.core.exception.SiddhiAppCreationException: Error on 'TestCustomApp' @ Line: 12. Position: 26, near 'newns:conv(inValue)'. 'conv' is neither a function extension nor an aggregated attribute extension
        at org.wso2.carbon.stream.processor.core.internal.StreamProcessorDeployer.deploySiddhiQLFile(StreamProcessorDeployer.java:106)
        at org.wso2.carbon.stream.processor.core.internal.StreamProcessorDeployer.deploy(StreamProcessorDeployer.java:330)
        at org.wso2.carbon.deployment.engine.internal.DeploymentEngine.lambda$deployArtifacts$0(DeploymentEngine.java:291)
        at java.util.ArrayList.forEach(ArrayList.java:1257)
        at org.wso2.carbon.deployment.engine.internal.DeploymentEngine.deployArtifacts(DeploymentEngine.java:282)
        at org.wso2.carbon.deployment.engine.internal.RepositoryScanner.sweep(RepositoryScanner.java:112)
        at org.wso2.carbon.deployment.engine.internal.RepositoryScanner.scan(RepositoryScanner.java:68)
        at org.wso2.carbon.deployment.engine.internal.DeploymentEngine.start(DeploymentEngine.java:121)
        at org.wso2.carbon.deployment.engine.internal.DeploymentEngineListenerComponent.onAllRequiredCapabilitiesAvailable(DeploymentEngineListenerComponent.java:216)
        at org.wso2.carbon.kernel.internal.startupresolver.StartupComponentManager.lambda$notifySatisfiableComponents$7(StartupComponentManager.java:266)
        at java.util.ArrayList.forEach(ArrayList.java:1257)
        at org.wso2.carbon.kernel.internal.startupresolver.StartupComponentManager.notifySatisfiableComponents(StartupComponentManager.java:252)
        at org.wso2.carbon.kernel.internal.startupresolver.StartupOrderResolver$1.run(StartupOrderResolver.java:204)
        at java.util.TimerThread.mainLoop(Timer.java:555)
        at java.util.TimerThread.run(Timer.java:505)
Caused by: org.wso2.siddhi.core.exception.SiddhiAppCreationException: Error on 'TestCustomApp' @ Line: 12. Position: 26, near 'newns:conv(inValue)'. 'conv' is neither a function extension nor an aggregated attribute extension
        at org.wso2.siddhi.core.util.parser.ExpressionParser.parseExpression(ExpressionParser.java:415)
        at org.wso2.siddhi.core.util.parser.SelectorParser.getAttributeProcessors(SelectorParser.java:211)
        at org.wso2.siddhi.core.util.parser.SelectorParser.parse(SelectorParser.java:89)
        at org.wso2.siddhi.core.util.parser.QueryParser.parse(QueryParser.java:115)
        at org.wso2.siddhi.core.util.parser.SiddhiAppParser.parse(SiddhiAppParser.java:245)
        at org.wso2.siddhi.core.SiddhiManager.createSiddhiAppRuntime(SiddhiManager.java:65)
        at org.wso2.siddhi.core.SiddhiManager.createSiddhiAppRuntime(SiddhiManager.java:74)
        at org.wso2.carbon.stream.processor.core.internal.StreamProcessorService.deploySiddhiApp(StreamProcessorService.java:100)
        at org.wso2.carbon.stream.processor.core.internal.StreamProcessorDeployer.deploySiddhiQLFile(StreamProcessorDeployer.java:94)
        ... 14 more

我还可以提取jar文件的内容,并查看注释文件夹中包含具有我的类名的org.wso2.siddhi.annotation.Extension文件。

不确定其他丢失的内容。请在这里帮助。

siddhi wso2sp
1个回答
0
投票

检查类中的@Extension()批注是否正确,名称空间必须为“ newns”,而名称为“ conv” https://github.com/siddhi-io/siddhi-execution-list/blob/master/component/src/main/java/io/siddhi/extension/execution/list/IsEmptyFunctionExtension.java#L42

另外,请注意,您应该已经实现了Function类

© www.soinside.com 2019 - 2024. All rights reserved.