Создание EPStatement в Esper с использованием Eclipse

На моем Eclipse установлен плагин maven, и я добавил Esper jar в свою библиотеку. Я попытался запустить простой пример с Esper, но мне не удалось выполнить следующий код:

EPServiceProvider epService = EPServiceProviderManager.getDefaultProvider();
String expression = "select avg(price) from org.myapp.event.OrderEvent.win:time(30 sec)";
EPStatement statement = epService.getEPAdministrator().createEPL(expression);

И я получил исключение при createEPL(выражение):

Exception in thread "main" java.lang.NoClassDefFoundError: org/antlr/v4/runtime/tree/Tree
at com.espertech.esper.core.service.EPAdministratorHelper.<clinit>  (EPAdministratorHelper.java:43)     
at com.espertech.esper.core.service.EPAdministratorImpl.createEPLStmt(EPAdministratorImpl.java:116)
at com.espertech.esper.core.service.EPAdministratorImpl.createEPL(EPAdministratorImpl.java:66)
at Main.main(Main.java:57)
Caused by: java.lang.ClassNotFoundException: org.antlr.v4.runtime.tree.Tree
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
... 4 more

Похоже, что esper не удалось найти org/antlr/v4/runtime, но я уверен, что этот пакет находится в библиотеке. Я что-то пропустил, чтобы запустить код?

1 ответ

Решение

Файл jar, которого нет в вашем classpath, - это antlr-runtime-4.1.jar, обязательная зависимость от Esper.

Другие вопросы по тегам