Esper CEP 和休息 API
Esper CEP and Rest API
@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 应用程序开发,但现在我想将其实现为服务,以便客户端(这是一个普通的网络应用程序)可以调用我的方法并使用提取数据我的应用程序即服务。
为此,我现在正在使用 jersey 框架将应用程序开发为休息服务。
编写服务后,我使用 "postman" 检查了它,但输出显示请求失败。
我调试并检查了它的产品,直到你到达最后 3 行。
下面一行会产生问题吗?请告诉我如何使它正确
"CSVInputAdapter inputAdapter = new CSVInputAdapter(epService, source, "MyEventClass");"
我的服务器端代码没有显示任何错误,即使在 运行 时间也没有显示任何异常。
我做错了什么?请让我知道我的方法是否正确?
还是有其他方法可以做到这一点?
我还附上了我的服务 class。
提前谢谢你
如果 userFileName 为 "MyInputFIle.csv",该文件是驻留在客户端还是服务器上?如果它驻留在客户端上,您需要先将文件上传到 REST 服务器。
如果您看到任何异常,我建议 post 使用 post 获取完整的异常堆栈跟踪。
@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 应用程序开发,但现在我想将其实现为服务,以便客户端(这是一个普通的网络应用程序)可以调用我的方法并使用提取数据我的应用程序即服务。 为此,我现在正在使用 jersey 框架将应用程序开发为休息服务。
编写服务后,我使用 "postman" 检查了它,但输出显示请求失败。 我调试并检查了它的产品,直到你到达最后 3 行。 下面一行会产生问题吗?请告诉我如何使它正确 "CSVInputAdapter inputAdapter = new CSVInputAdapter(epService, source, "MyEventClass");"
我的服务器端代码没有显示任何错误,即使在 运行 时间也没有显示任何异常。 我做错了什么?请让我知道我的方法是否正确? 还是有其他方法可以做到这一点? 我还附上了我的服务 class。 提前谢谢你
如果 userFileName 为 "MyInputFIle.csv",该文件是驻留在客户端还是服务器上?如果它驻留在客户端上,您需要先将文件上传到 REST 服务器。
如果您看到任何异常,我建议 post 使用 post 获取完整的异常堆栈跟踪。