猿问

Esper部署错误:静态方法的返回类型无效,需要Java类

我的应用程序配置并部署了一个esper引擎,该引擎解析以字符串形式存储在MySQL数据库中的epl模块。一切正常,除了我尝试从epl模块调用静态方法时。在部署引擎时出现以下错误:DeploymentActionException:表达式'select ...'中模块'MyModule'的部署失败:错误的开始语句:类'MyClass'的静态方法'myMethod'的返回类型无效,需要Java班级。


方法如下:


public static String myMethod() {

    String symbol = "GOOG";

    logger.info("Hello From EPL");

    return symbol;

}

这是引擎配置和模块部署:


Configuration configuration = new Configuration();

        configuration.addEventType("MyEvent", MyEvent.class);

        configuration.addImport(com.tp.main.MyClass.class);

        epService = EPServiceProviderManager.getProvider("Service", configuration);

        EPDeploymentAdmin deploymentAdmin = epService.getEPAdministrator().getDeploymentAdmin();

        Module module = deploymentAdmin.parse(epl);

        String moduleId = deploymentAdmin.add(module);

        deploymentAdmin.deploy(moduleId, null);

这是epl模块:


module MyModule; select propertyA, propertyB from MyEvent as propertyA unidirectional, method:MyClass.myMethod as propertyB

MyEvent具有用于返回字符串的propertyA的吸气剂。


我已经阅读并重新阅读了文档的内容。看起来一切正常。我在网上找到了一些例子,进一步表明一切都很好。但是我无法克服这个错误。


我尝试将导入移动到epl模块。我尝试将POJO事件更改为Map事件,然后再返回。我尝试在epl模块中创建架构,并使用运行时API来配置事件类型,然后再次返回。


如果我取消此方法调用,那么一切都可以和epl模块中的其他语句(未显示)一起使用。


我想念什么?


跃然一笑
浏览 160回答 1
1回答
随时随地看视频慕课网APP

相关分类

Java
我要回答