2017-06-15 17 views
0
@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 ");"

サーバー側のコードにはエラーが表示されません。実行時にも例外は表示されません。 どうしたらいいですか?私のアプローチが正しいかどうか教えてください。 またはこれを行う他の方法はありますか? 私はこのサービスクラスも添付しました。 ありがとうございます

答えて

0

userFileNameを "MyInputFIle.csv"とすると、そのファイルはクライアントまたはサーバーにありますか?クライアント上にある場合は、まずファイルをRESTサーバーにアップロードする必要があります。

例外が表示された場合は、完全な例外スタックトレースを投稿することをおすすめします。

+0

はいファイルをサーバーに組み込んでいます。私はtry catch節を使って例外を見つけました。 "MyInputFile.csv"がクラスパスにないと言いました。その後、ファイルを関連する場所に移動しました。それはうまくいった。助けてくれてありがとう :) –

関連する問題