如何在运行时从Esper配置对象获取eventType

时间:2017-03-01 10:56:33

标签: esper

我正在运行一个使用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引擎的相同对象。

1 个答案:

答案 0 :(得分:1)

EventType对象在初始化引擎上可用。例如:

esperConfiguration.addEventType(streamName, fieldNames, fieldTypes);

EPServiceProvider epService = EPServiceProviderManager.getDefaultProvider(esperConfiguration);

String[] propertyNames = epService.getEPAdministrator().getConfiguration().getEventType(streamName).getPropertyNames();