【问题标题】:Esper CEP and Rest APIEsper CEP 和 Rest API
【发布时间】:2017-06-15 07:10:11
【问题描述】:
@POST
@Path("/minPrice")
@Consumes(MediaType.APPLICATION_JSON)
public String minPrice() {
    String userQuery = "select min(price) from MyEventClass";
    String userFileName = "MyInputFIle.csv";


    SimpleLayout layout = new SimpleLayout();
    ConsoleAppender appender = new ConsoleAppender(new SimpleLayout());
    Logger.getRootLogger().addAppender(appender);
    Logger.getRootLogger().setLevel((Level) Level.WARN);

    MyEventClass MEC = new MyEventClass();

    //configuration
    Configuration configuration = new Configuration();
    configuration.addEventType(MEC.getClass());
    EPServiceProvider epService;
    epService = EPServiceProviderManager.getDefaultProvider(configuration);
    epService.initialize();

    //including the data stream to the eventclass
    AdapterInputSource source = new AdapterInputSource(userFileName);

    try {
        //registering the query with the CEP
        EPAdministrator cepAdm = epService.getEPAdministrator();
        EPStatement cepStatement2 = cepAdm.createEPL(userQuery);

        CEPListener6 listener = new CEPListener6();
        //connecting the listener
        cepStatement2.addListener(listener);

    } catch (Exception e) {
        System.out.println("Incorrect syntax in the statement " + e);
    }
    System.out.println("ehefjfhkjfhskfhsfksf");
    CSVInputAdapter inputAdapter = new CSVInputAdapter(epService, source, "MyEventClass");

    inputAdapter.start();
    return "Build success!!";
}

我是 Esper CEP 引擎的新手。目前,我可以通过任何方式从 csv 文件中获取事件并使用 EPL 语句提取数据,并从相关侦听器中获取输出值。

问题是我将它作为一个普通的 java 应用程序开发,但现在我想将它实现为服务,以便客户端(它是一个普通的 Web 应用程序)可以调用我的方法并使用我的应用程序作为服务提取数据。 为此,我现在正在使用 jersey 框架将应用程序开发为休息服务。

编写服务后,我使用“邮递员”对其进行了检查,但输出显示请求失败。 我调试并检查了它工作的产品,直到你到达最后 3 行。 下面的行有问题吗?请告诉我如何使它正确 "CSVInputAdapter inputAdapter = new CSVInputAdapter(epService, source, "MyEventClass");"

我的服务器端代码没有显示任何错误,即使在运行时也没有显示任何异常。 我做错了什么?请让我知道我的方法是否正确? 还是有其他方法可以做到这一点? 我还附上了我的服务类。 提前谢谢你

【问题讨论】:

    标签: rest complex-event-processing esper jersey-test-framework


    【解决方案1】:

    如果 userFileName 为“MyInputFIle.csv”,该文件是驻留在客户端还是服务器上?如果它驻留在客户端上,您需要先将文件上传到 REST 服务器。

    如果您看到任何异常,我建议在帖子中发布完整的异常堆栈跟踪。

    【讨论】:

    • 是的,我已将文件包含在服务器中。我使用 try catch 子句发现了异常,它说“MyInputFile.csv”不在类路径中。然后我将文件移动到相关位置。然后它工作得很好。谢谢你帮助我:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-30
    • 2014-04-27
    • 1970-01-01
    相关资源
    最近更新 更多