2016-09-19 5 views
1

カスタム受信機アダプタを構築しようとしています。 CSVファイルから読み込みイベントをストリームにプッシュします。 私が理解する限り、データをストリームにプッシュするためには、WSO2標準フォーマット(TEXT、XMLまたはJSON)のいずれかを実行する必要があります。WSO2 CEP - カスタム受信機アダプタ:イベント形式

問題は、CSVファイルが上記の標準フォーマットと一致しないことです。 csv値をカスタムアダプター内のサポートされている形式に変換する必要があります。 私の所見によると、WSO2 TEXT形式は文字列値内でコンマ(、)をサポートしていません。そこで、私はCSV JSONを変換することに決めました。

私の質問は以下の通りです:

  1. 値はコンマをaveの場合はWSO2のTEXTイベントを生成する方法は?
  2. (ポイント1が不可能な場合)私のカスタムアダプタのMessageTypeでは、TEXTまたは3(TEXT、XML、JSON)のいずれかを追加すると正常に動作します。しかし、私がJSONだけを追加すると、私は以下のエラーに陥ります。私の目標は、混乱を避けるためにJSONだけを追加し、すべてのCSVをJSONに変換することです。

    [2016-09-19 15:38:02,406] ERROR {org.wso2.carbon.event.receiver.core.EventReceiverDeployer} - Error, Event Receiver not deployed and in inactive state, Text Mapping is not supported by event adapter type file

+0

私たちはcsvデータでイベントストリームをシミュレートできるので、実際にはこの変換を完全に避けることができます。詳細については、https://docs.wso2.com/display/CEP410/Sending+Multiple+Events+Using+a+Fileを参照してください。 –

答えて

0

私はちょうどそれを作った。エレガントな方法ではありません。しかし、それは私のためにうまくいった。

私が言及したように、JSON形式は私にとって最も柔軟なものです。私はファイルから読み込み、各行/イベントをWSO2 JSON形式に変換しています。

このオプションの問題は、管理コンソール(新しい受信者の作成中に「メッセージフォーマット」メニュー)からメッセージ形式をJSONに限定することでした。 JSON [supportInputMessageTypes.add(MessageType.JSON)]だけを追加すると、上記の#2で述べたようにエラーが表示されます。

解決策は、MessageTypeクラスの静的変数を代入する代わりに、対応する文字列を直接使用することです。だから今、私の方法EventAdapterFactoryクラスで「getSupportedMessageFormats()」は以下の通りです:

@Override public List<String> getSupportedMessageFormats() { List<String> supportInputMessageTypes = new ArrayList<String>(); // just converting the type to string value // to avoid error "Text Mapping is not supported by event adapter type file" String jsonType = MessageType.JSON; supportInputMessageTypes.add(jsonType); //supportInputMessageTypes.add(MessageType.JSON); //supportInputMessageTypes.add(MessageType.XML); //supportInputMessageTypes.add(MessageType.TEXT); return supportInputMessageTypes; }

WSO2チームへの私の要求、JSON形式のイベントアダプタタイプのファイルを許可してください。

ありがとう、Obaid

0

CSVファイルから読み込み、ストリームにイベントをプッシュするには、ファイル・テールアダプターを使用することができます。サンプル 'Receiving Custom RegEx Text Events via File Tail'を参照してください。このサンプルには、CSV入力のマッピングに使用できる正規表現パターンが含まれています。

さらに、Chariniがコメントに示唆しているように、event simulatorをチェックアウトすることもできます。しかし、イベントシミュレータはイベントレシーバではなく、リアルタイムでイベントを受け取るのではなく、以前に定義されたイベントセット(この場合はCSVファイル内)を「再生」してイベントの流れをシミュレートします。新しいイベントのためにファイルを継続的に監視することはありません。新しいイベントのファイルを監視する場合は、file-tailアダプターの使用を検討してください。

+0

こんにちはDilini&Charini、あなたの返事をありがとう。私はイベントシミュレータが私が探している解決策ではないと思う、私はこれを自動化することはできません(私が間違っている場合は私を修正してください)。私はファイルテールを調べて、それを再利用するcsvファイル受信機を構築しました。問題は、それは私の質問#2で述べたように私に問題を示している。親切に私にそれをお勧めしてもらえますか? – Obaid

関連する問題