Java中的简单Esper示例
我下载了最新的Esper。我将根esper目录的路径和lib子目录添加到Java中的简单Esper示例,java,esper,Java,Esper,我下载了最新的Esper。我将根esper目录的路径和lib子目录添加到.bash\u profile类路径中。我从bash\u配置文件中获取了信息 然后我输入了我在网上找到的这个程序,但它给了我这个错误。不知道我做错了什么 java:1:error:package com.espertech.esper.client不存在 导入com.espertech.esper.client.*; 导入com.espertech.esper.client.*; 导入java.util.Random; 导入
.bash\u profile类路径中。我从bash\u配置文件中获取了信息
然后我输入了我在网上找到的这个程序,但它给了我这个错误。不知道我做错了什么
java:1:error:package
com.espertech.esper.client不存在
导入com.espertech.esper.client.*;
导入com.espertech.esper.client.*;
导入java.util.Random;
导入java.util.Date;
公共类示例main{
公共静态类标记{
字符串符号;
双倍价格;
日期时间戳;
公共记号(字符串s、双p、长t){
符号=s;
价格=p;
时间戳=新日期(t);
}
public double getPrice(){return price;}
公共字符串getSymbol(){return symbol;}
公共日期getTimeStamp(){return timeStamp;}
@凌驾
公共字符串toString(){
return“Price:+Price.toString()+”time:+timeStamp.toString();
}
}
专用静态随机生成器=新随机();
公共静态无效生成器动态标记(EPRuntime cepRT){
双倍价格=(双倍)发电机;
长时间戳=System.currentTimeMillis();
String symbol=“AAPL”;
勾号=新勾号(符号、价格、时间戳);
System.out.println(“发送勾号:+勾号”);
接受发送事件(勾号);
}
公共静态类CEPListener实现UpdateListener{
公共无效更新(EventBean[]newData,EventBean[]oldData){
System.out.println(“接收到的事件:+newData[0].getUnderground());
}
}
公共静态void main(字符串[]args){
//该配置仅表示为初始化时间对象。
配置cepConfig=新配置();
cepConfig.addEventType(“StockTick”,Tick.class.getName());
EPServiceProvider cep=EPServiceProviderManager.getProvider(“myCEPEngine”,cepConfig);
EPRuntime cepRT=cep.getEPRuntime();
eAdministrator cepAdm=cep.geteAdministrator();
EPStatement cepStatement=cepAdm.createpl(“选择*from”+
“股票代码(symbol='AAPL')。赢:长度(2)”+
“平均价格>6.0”);
addListener(新的CEPListener());
//我们产生了一些滴答声。。。
对于(int i=0;i<5;i++){
发电机驱动(cepRT);
}
}
}
您需要将添加到项目工作区。如果您在运行esper项目时遇到其他问题,您可以尝试此非常简单和原始的教程”。
祝你好运!无需在.bash_profile classpath中添加类路径。只需在构建路径中添加一些缺少的jar即可。你是否能够导入包com.espertech.esper.client.*
使用你的IDE?我不理解这个问题。我是从命令行执行此操作的,我没有IDE。尽管我支持ose我可以下载IntelliJ,但我看不出添加额外级别的间接寻址会有什么帮助?当我查看下载的目录时,我看不到任何类似于com jar文件的内容。如果com
没有jar/war文件,那么您就无法导入它或将其用作依赖项。可能Esper设置有问题?是吗你有一个pom.xml(或其他一些与构建相关的文件)?我开始相信这与maven有关。我不明白我应该如何安装esper,因为似乎只是将目录添加到类路径中,不起作用。另一方面,示例程序可以工作。作为注释推荐
import com.espertech.esper.client.*;
import com.espertech.esper.client.*;
import java.util.Random;
import java.util.Date;
public class exampleMain {
public static class Tick {
String symbol;
Double price;
Date timeStamp;
public Tick(String s, double p, long t) {
symbol = s;
price = p;
timeStamp = new Date(t);
}
public double getPrice() {return price;}
public String getSymbol() {return symbol;}
public Date getTimeStamp() {return timeStamp;}
@Override
public String toString() {
return "Price: " + price.toString() + " time: " + timeStamp.toString();
}
}
private static Random generator = new Random();
public static void GenerateRandomTick(EPRuntime cepRT) {
double price = (double) generator.nextInt(10);
long timeStamp = System.currentTimeMillis();
String symbol = "AAPL";
Tick tick = new Tick(symbol, price, timeStamp);
System.out.println("Sending tick:" + tick);
cepRT.sendEvent(tick);
}
public static class CEPListener implements UpdateListener {
public void update(EventBean[] newData, EventBean[] oldData) {
System.out.println("Event received: " + newData[0].getUnderlying());
}
}
public static void main(String[] args) {
//The Configuration is meant only as an initialization-time object.
Configuration cepConfig = new Configuration();
cepConfig.addEventType("StockTick", Tick.class.getName());
EPServiceProvider cep = EPServiceProviderManager.getProvider("myCEPEngine", cepConfig);
EPRuntime cepRT = cep.getEPRuntime();
EPAdministrator cepAdm = cep.getEPAdministrator();
EPStatement cepStatement = cepAdm.createEPL("select * from " +
"StockTick(symbol='AAPL').win:length(2) " +
"having avg(price) > 6.0");
cepStatement.addListener(new CEPListener());
// We generate a few ticks...
for (int i = 0; i < 5; i++) {
GenerateRandomTick(cepRT);
}
}
}