@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ステートメントを使用してデータを抽出し、関連するリスナーから出力値を取得することができます。エスパーCEPとレストAPI
私はこれを通常のJavaアプリケーションとして開発しましたが、クライアント(これは平均的なWebアプリケーションです)がサービスとして実装するため、サービスとしてアプリケーションを使用してデータを抽出できます。 これで、私はjerseyフレームワークを使ってアプリケーションを休憩サービスとして開発しています。
サービスを作成した後、私は "postman"を使用してチェックしましたが、出力に要求失敗と表示されました。 私は最後の3行に達するまで動作する製品をデバッグしてチェックしました。 次の行が問題になりますか? "CSVInputAdapter inputAdapter = new CSVInputAdapter(epService、source、" MyEventClass ");"
サーバー側のコードにはエラーが表示されません。実行時にも例外は表示されません。 どうしたらいいですか?私のアプローチが正しいかどうか教えてください。 またはこれを行う他の方法はありますか? 私はこのサービスクラスも添付しました。 ありがとうございます
はいファイルをサーバーに組み込んでいます。私はtry catch節を使って例外を見つけました。 "MyInputFile.csv"がクラスパスにないと言いました。その後、ファイルを関連する場所に移動しました。それはうまくいった。助けてくれてありがとう :) –