我正在运行一个使用Esper作为我的核心CEP引擎的应用程序。 当我尝试获取我之前在Esper运行时注册的事件类型时,我得到一个UnsupportedOperationException。
esperConfiguration.addEventType(streamName, fieldNames, fieldTypes);
--------
//several lines later
--------
String[] propertyNames = esperConfiguration.getEventType(streamName).getPropertyNames();
我得到以下异常:
java.lang.UnsupportedOperationException: Obtaining an event type by name is only available at runtime
at com.espertech.esper.client.Configuration.getEventType(Configuration.java:905)
我无法理解为什么我的API调用不是"在运行时",即使我正在重用我用来初始化Esper引擎的相同对象。
答案 0 :(得分:1)
EventType对象在初始化引擎上可用。例如:
esperConfiguration.addEventType(streamName, fieldNames, fieldTypes);
EPServiceProvider epService = EPServiceProviderManager.getDefaultProvider(esperConfiguration);
String[] propertyNames = epService.getEPAdministrator().getConfiguration().getEventType(streamName).getPropertyNames();