Esper Deployment Error: invalid return type for static method, expecting Java class
Esper Deployment Error: invalid return type for static method, expecting Java class
我的应用程序配置并部署了一个 esper 引擎,该引擎将存储在 MySQL 数据库中的 epl 模块解析为字符串。一切正常,除非我尝试从 epl 模块调用静态方法。我在部署引擎时收到以下错误:DeploymentActionException:表达式 'select...' 中模块 'MyModule' 中的部署失败:启动语句错误:静态方法 'myMethod' 的 return 类型无效class 'MyClass',预计 Java Class。
方法如下:
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 有一个 getter 属性 A 和 returns 字符串。
我已经反复阅读并重新阅读了文档。看起来一切都应该有效。我在网上找到了进一步表明一切都很好的例子。但是我无法克服这个错误。
我试过将导入移动到 epl 模块。我试过从 POJO 事件更改为 Map 事件并再次返回。我已经尝试在 epl 模块中创建模式并使用运行时 API 来配置事件类型并再次返回。
如果我去掉这个方法调用,就 epl 模块中的其他语句(未显示)而言一切正常。
我错过了什么?
"string" 不是 POJO,它实际上是原始类型。在 from 子句中,它应该 return 事件类型或 POJO 并且原始类型不是可能的值,因为它没有任何属性。
public class Result {
String result;
}
public static Result myMethod() {
String symbol = "GOOG";
logger.info("Hello From EPL");
return symbol;
}
我的应用程序配置并部署了一个 esper 引擎,该引擎将存储在 MySQL 数据库中的 epl 模块解析为字符串。一切正常,除非我尝试从 epl 模块调用静态方法。我在部署引擎时收到以下错误:DeploymentActionException:表达式 'select...' 中模块 'MyModule' 中的部署失败:启动语句错误:静态方法 'myMethod' 的 return 类型无效class 'MyClass',预计 Java Class。
方法如下:
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 有一个 getter 属性 A 和 returns 字符串。
我已经反复阅读并重新阅读了文档。看起来一切都应该有效。我在网上找到了进一步表明一切都很好的例子。但是我无法克服这个错误。
我试过将导入移动到 epl 模块。我试过从 POJO 事件更改为 Map 事件并再次返回。我已经尝试在 epl 模块中创建模式并使用运行时 API 来配置事件类型并再次返回。
如果我去掉这个方法调用,就 epl 模块中的其他语句(未显示)而言一切正常。
我错过了什么?
"string" 不是 POJO,它实际上是原始类型。在 from 子句中,它应该 return 事件类型或 POJO 并且原始类型不是可能的值,因为它没有任何属性。
public class Result {
String result;
}
public static Result myMethod() {
String symbol = "GOOG";
logger.info("Hello From EPL");
return symbol;
}