我的应用程序配置并部署了一个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 propertyBMyEvent具有用于返回字符串的propertyA的吸气剂。我已经阅读并重新阅读了文档的内容。看起来一切正常。我在网上找到了一些例子,进一步表明一切都很好。但是我无法克服这个错误。我尝试将导入移动到epl模块。我尝试将POJO事件更改为Map事件,然后再返回。我尝试在epl模块中创建架构,并使用运行时API来配置事件类型,然后再次返回。如果我取消此方法调用,那么一切都可以和epl模块中的其他语句(未显示)一起使用。我想念什么?
添加回答
举报
0/150
提交
取消