2

Mule の rss:feed-splitter コンポーネントは、フィードに複数のアイテムがある場合でも、すべてのアイテムの pubDate が同じであれば、単一のアイテムのみを返します。

このような場合、すべてのアイテムを取得する方法はありますか?

4

2 に答える 2

2

あなたが直面している問題は、デフォルトでがフィード エントリの受け入れまたは拒否を にFeedSplitter依存しているという事実によるものです。EntryLastUpdatedFilterこのフィルタは更新時間に基づいているため、すでに処理された別のエントリと同じ時間のエントリは拒否されます。

すべての RSS エントリを受け入れるように要素を構成するクリーンな方法が見つからなかった<rss:feed-splitter>ため、以下に示すように、構成できるようにカスタム フィルターとしてインスタンス化する必要がありました。

<custom-splitter class="org.mule.module.rss.routing.FeedSplitter">
    <spring:property name="entryFilter">
        <spring:bean class="org.mule.routing.filters.AcceptAllFilter" />
    </spring:property>
</custom-splitter>

これにより、すべての RSS エントリが分割プロセスを通過します。

于 2013-01-17T17:58:39.430 に答える
1

rss モジュールのドキュメントによると、rss:feed-splitter

フィードのエントリを単一のエントリ オブジェクトに分割します。Mule では、各エントリが個別のメッセージになります。

したがって、あなたが経験しているのは予想される動作です。

できることは、pubDate に基づいて集約するカスタム アグリゲーターをコーディングして、次のメッセージ プロセッサに伝達されるメッセージが同じ pubDate を持つすべてのメッセージを含むミュール メッセージ コレクションになるようにすることです。

于 2013-01-12T11:35:43.197 に答える