第138章 RSS


RSS コンポーネント

rss: コンポーネントは RSS フィードのポーリングに使用されます。Apache Camel はデフォルトでフィードを 60 秒ごとにポーリングします。
注記: コンポーネントは現在、ポーリング(かかる)フィードのみをサポートします。
注記
camel-rss は内部的に、ServiceMix でホストされるパッチが 適用されたバージョンROME を使用して、OSGi クラ出力ディングの問題 を解決します。

Camel on EAP デプロイメント

このコンポーネントは、Red Hat JBoss Enterprise Application Platform (JBoss EAP) コンテナー上で簡素化されたデプロイメントモデルを提供する Camel on EAP (Wildfly Camel) フレームワークによってサポートされます。このモデルの詳細は、Deploying into a Web Server の Apache Camel on JBoss EAP の章を参照してください

URI 形式

rss:rssUri
Copy to Clipboard Toggle word wrap
rssUri は、ポーリングする RSS フィードへの URI です。
URI にクエリーオプションは ?option=value&option=value&.. の形式で追加できます。

オプション

Expand
プロパティー デフォルト 説明
splitEntries true true の場合、Apache Camel はフィードを個別のエントリーに分割し、ポーリングによって各エントリーを返します。たとえば、フィードに 7 つのエントリーが含まれる場合、Apache Camel は最初のポーリングの最初のエントリー、2 番目のポーリングの 2 番目のエントリーなどを返します。フィードにエントリーが残っていない場合、Apache Camel はリモート RSS URI に接続して新しいフィードを取得します。false の場合、Apache Camel はポーリングごとに新しいフィードを取得し、フィードのエントリーをすべて返します。
filter true 返されたエントリーをフィルターするために splitEntries オプションと組み合わせて使用します。デフォルトでは、Apache Camel は、フィードから新しいエントリーのみを返す UpdateDateFilter フィルターを適用し、コンシューマーエンドポイントがエントリーを複数回受信しないようにします。フィルターはエントリーを時系列に並べ、最後に返した順に並べ替えます。
throttleEntries true camel 2.5: 単一のフィードポーリングで特定されたすべてのエントリーを即座に配信するかどうかを設定します。true の場合、consumer.delay ごとに 1 つのエントリーのみが処理されます。splitEntries が true に設定されている場合にのみ適用されます。
lastUpdate null フィルター オプションと組み合わせて を使用して、特定の日付/時間より前のエントリーをブロックします( entry.updated タイムスタンプを使用します)。形式は yyyy-MM-ddTHH:MM:ss です。例: 2007-12-24T17:45:59
feedHeader true ROME SyndFeed オブジェクトをヘッダーとして追加するかどうかを指定します。
sortEntries false splitEntriestrue の場合、エントリーを更新された日付でソートするかどうかを指定します。
consumer.delay 60000 各ポーリングの遅延(ミリ秒単位)。
consumer.initialDelay 1000 ポーリングが開始するまでの時間(ミリ秒単位)。
consumer.userFixedDelay false プール間の固定遅延を使用するには、true に設定します。それ以外の場合、固定レートが使用されます。詳細は、JDK の ScheduledExecutorService を参照してください。
username Camel 2.16: HTTP フィードからポーリングする場合の基本認証用。
password Camel 2.16: HTTP フィードからポーリングする場合の基本認証用。

データ型の交換

Apache Camel は、ROME SyndFeed を使用してエクスチェンジの In ボディーを初期化します。splitEntries フラグの値に応じて、Apache Camel は SyndEntry が 1 つある SyndFeed または SyndEntry オブジェクトの java.util.List のいずれかを返します。
Expand
オプション 動作
splitEntries true 現在のフィードからの 1 つのエントリーがエクスチェンジに設定されます。
splitEntries false 現在のフィードのエントリー一覧全体がエクスチェンジに設定されます。

メッセージヘッダー

Expand
ヘッダー 説明
CamelRssFeed Apache Camel 2.0: SyndFeed オブジェクト全体。

RSS Dataformat

RSS コンポーネントには、String (XML として)と ROME RSS モデルオブジェクト間の変換に使用できる RSS データフォーマットが同梱されています。
  • marshal = ROME SyndFeed から XML String
  • unmarshal = XML String から ROME SyndFeed
これを使用するルートは以下のようになります。
from("rss:file:src/test/data/rss20.xml?splitEntries=false&consumer.delay=1000").marshal().rss().to("mock:marshal");
Copy to Clipboard Toggle word wrap
この機能の目的は、RSS メッセージを操作するために Apache Camel の非常に組み込み式を使用できるようにすることです。以下に示すように、XPath 式を使用して RSS メッセージを絞り込むことができます。
// only entries with Camel in the title will get through the filter
from("rss:file:src/test/data/rss20.xml?splitEntries=true&consumer.delay=100")
    .marshal().rss().filter().xpath("//item/title[contains(.,'Camel')]").to("mock:result");
Copy to Clipboard Toggle word wrap
クエリーパラメーター
RSS フィードの URL がクエリーパラメーターを使用する場合、このコンポーネントはそれも理解します。たとえば、フィードが alt=rss を使用する場合など、do ("rss:http://someserver.com/feeds/posts/default?alt=rss&splitEntries=false&consumer.delay=1000").to ("bean:rss"); などに do ("rss:http://someserver.com/feeds/posts/default?alt=rss&splitEntries=false&consumer.delay=1000").to ("bean:rss");を実行できます。

エントリーのフィルターリング

上記のデータ形式セクションに示されるように、XPath を使用してエントリーを簡単にフィルターできます。Apache Camel の Bean インテグレーションを利用して、独自の条件を実装することもできます。たとえば、上記の XPath の例と同等のフィルターは以下のようになります。
// only entries with Camel in the title will get through the filter
from("rss:file:src/test/data/rss20.xml?splitEntries=true&consumer.delay=100").
    filter().method("myFilterBean", "titleContainsCamel").to("mock:result");
Copy to Clipboard Toggle word wrap
これに対するカスタム Bean は以下のようになります。
public static class FilterBean {
    public boolean titleContainsCamel(@Body SyndFeed feed) {
        SyndEntry firstEntry = (SyndEntry) feed.getEntries().get(0);
        return firstEntry.getTitle().contains("Camel");
    }
}
Copy to Clipboard Toggle word wrap

その他の参考資料

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat