174.7. コンシューマーの例
このサンプルでは、http://localhost:8080/myapp/myservice
で HTTP サービスを公開するルートを定義します。
ローカルホストの使用
URL で localhost
を指定すると、Camel はローカルの TCP/IP ネットワークインターフェイスでのみエンドポイントを公開するため、動作するマシンの外部からはアクセスできません。
特定のネットワークインターフェイスで Jetty エンドポイントを公開する必要がある場合は、このインターフェイスの数値 IP アドレスをホストとして使用する必要があります。すべてのネットワークインターフェイスで Jetty エンドポイントを公開する必要がある場合は、0.0.0.0
アドレスを使用する必要があります。
URI 接頭辞全体をリッスンするには、Jetty でワイルドカードをマッチさせるには を参照してください。
実際に HTTP でルートを公開する必要があり、すでにサーブレットがある場合は、代わりに サーブレットトランスポート を参照する必要があります。
ビジネスロジックは MyBookService
クラスに実装されており、HTTP 要求の内容にアクセスして応答を返します。
注記: コードは単体テストの一部であるため、この例では assert
呼び出しが表示されます。
次のサンプルは、URI パラメーター one
を含むすべてのリクエストをエンドポイント mock:one
にルーティングし、その他すべてを mock:other
にルーティングするコンテンツベースのルートを示しています。
したがって、クライアントが HTTP リクエスト http://serverUri?one=hello
を送信すると、Jetty コンポーネントは HTTP リクエストパラメーターを one
エクスチェンジの in.header
にコピーします。次に、simple
言語を使用して、このヘッダーを含むエクスチェンジを特定のエンドポイントにルーティングし、他のすべてのエクスチェンジを別のエンドポイントにルーティングできます。Simple よりも強力な言語 (OGNL など) を使用した場合は、パラメーター値をテストし、ヘッダー値に基づいてルーティングを行うこともできます。