Fuse 6 is no longer supported
As of February 2025, Red Hat Fuse 6 is no longer supported. If you are using Fuse 6, please upgrade to Red Hat build of Apache Camel.Apache Camel コンポーネントリファレンス
Camel コンポーネントの設定リファレンス
概要
第1章 コンポーネントの概要 リンクのコピーリンクがクリップボードにコピーされました!
概要
1.1. Apache Karaf の Camel コンポーネントのリスト リンクのコピーリンクがクリップボードにコピーされました!
コンポーネントの表 リンクのコピーリンクがクリップボードにコピーされました!
| コンポーネント | エンドポイント URI | アーティファクト ID | 説明 |
|---|---|---|---|
| ActiveMQ | activemq:[queue:|topic:]DestinationName | activemq-core | Apache ActiveMQ を使用した JMS メッセージングの場合。 |
| AHC | ahc:http[s]://Hostname[:Port][/ResourceUri] | camel-ahc | Async Http Client ライブラリーを使用して外部 HTTP サーバーを呼び出します。 |
| AHC-WS | ahc-ws[s]://Hostname[:Port][/ResourceUri] | camel-ahc-ws | Async Http Client ライブラリーを使用して外部 WebSocket サーバーを呼び出します。 |
| AMQP | amqp:[queue:|topic:]DestinationName[?Options]] | camel-amqp | AMQP プロトコルのあるメッセージングの場合。 |
| APNS | apns:notify[?Options] apns:consumer[?Options] | camel-apns | Apple iOS デバイスに通知を送信する場合 |
| Atmosphere-WebSocket | atmosphere-websocket:///RelativePath[?Options] | camel-atmosphere-websocket | Atmosphere を使用した外部 WebSocket クライアントからの接続を受け入れます。 |
| Atom | atom://AtomUri[?Options] | camel-atom | atom フィードの使用など、atom 統合での Apache Abdera の使用 |
| Avro | avro:http://Hostname[:Port][?Options] | camel-avro | データシリアライゼーションのための Apache Avro の使用 |
| AWS-CW | aws-cw://Namespace[?Options] | camel-aws | メトリクスを Amazon CloudWatch に送信します。 |
| AWS-DDB | aws-ddb://TableName[?Options] | camel-aws | Amazon の DynamoDB (DDB)の 使用向け |
| AWS-SDB | aws-sdb://DomainName[?Options] | camel-aws | Amazon の SimpleDB (SDB) を操作する場合: |
| AWS-SES | aws-ses://From[?Options] | camel-aws | Amazon の Simple Email Service (SES) の使用 |
| AWS-S3 | aws-s3://BucketName[?Options] | camel-aws | Amazon の Simple Storage Service (S3)の 使用向け |
| AWS-SNS | aws-sns://TopicName[?Options] | camel-aws | Amazon の Simple Notification Service (SNS)を使用したメッセージングの 場合。 |
| AWS-SQS | aws-sqs://QueueName[?Options] | camel-aws | Amazon の Simple Workflow Service (SWF)を使用したメッセージングの 場合 |
| AWS-SWF | aws-swf://{workflow|activity}[?Options] | camel-aws | Amazon の Simple Queue Service (SQS) からワークフローを管理する場合。 |
| Bean | bean:BeanID[?methodName=Method] | camel-core | Bean バインディングを使用して、メッセージエクスチェンジをレジストリーの Bean にバインドします。は POJO (Plain Old Java Objects)の公開および呼び出しにも使用されます。 |
| Beanstalk | beanstalk://[Hostname[:port]][/tube][?options] | camel-beanstalk | 処理後の Beantalk ジョブの取得および後処理用 |
| Bean Validation | bean-validator:Something[?Options] | camel-bean-validator | Java Validation API (JSR 303 および JAXP Validation)および参照実装 Hibernate Validator を使用してメッセージのペイロードを検証します。 |
| Bindy | 該当なし | camel-bindy | 非構造化データの解析とバインドを有効にします。 |
| 参照 | browse: 名前 | camel-core | テスト、視覚化ツール、またはデバッグに役立つ簡単な BrowsableEndpoint を提供します。エンドポイントに送信されたエクスチェンジはすべて参照できます。 |
| Cache | cache://CacheName[?Options] | camel-cache | キャッシュコンポーネントを使用すると、EHCache をキャッシュ実装として使用してキャッシュ操作を実行できます。 |
| CDI | 該当なし | camel-cdi | CDI 統合を提供します。 |
| クラス | class:ClassName[?method=MethodName] | camel-core | Bean バインディングを使用して、メッセージエクスチェンジをレジストリーの Bean にバインドします。は POJO の公開および呼び出しにも使用されます(Plain Old Java Objects)。 |
| CMIS | cmis:CmisServerUrl[?Options] | camel-cmis | Apache Chemistry クライアント API を使用して、CMIS がサポートする CMS とインターフェイスします。 |
| Cometd | cometd://Hostname[:Port]/ChannelName[?Options] | camel-cometd | cometd/bayeux プロトコルの jetty 実装を使用するトランスポート。 |
| コンテキスト | context:CamelContextId:LocalEndpointName | camel-context | 別の CamelContext のエンドポイントを参照します。 |
| ControlBus | controlbus:Command[?Options] | camel-core | Camel アプリケーションの管理および監視用にエンドポイントにメッセージを送信できるようにする ControlBus Enterprise Integration Pattern。 |
| CouchDB | couchdb:http://Hostname[:Port] /Database[?Options]://Name[?Options] | camel-couchdb | CouchDB インスタンスをメッセージのプロデューサーまたはコンシューマーとして扱うことができます。 |
| crypto | crypto:sign:Name[?Options] crypto:verify:Name[?Options] | camel-crypto | Java Cryptographic Extension の Signature Service を使用してエクスチェンジに署名し、検証します。 |
| CXF | cxf://Address[?Options] | camel-cxf | Web サービスの統合のための Apache CXF の使用 |
| CXF Bean | cxf:BeanName | camel-cxf | レジストリーから JAX WS または JAX RS アノテーションが付けられた Bean を使用してエクスチェンジを提案します。 |
| CXFRS | cxfrs:bean:RsEndpoint[?Options] | camel-cxf | CXF でホストされる JAX-RS サービスに接続するための Apache CXF との統合を提供します。 |
| DataFormat | dataformat:Name:(marshal|unmarshal)[?Options] | camel-core | エンドポイントにメッセージを送信して、標準の Camel データフォーマットのいずれかでメッセージをマーシャリングまたはアンマーシャリングできます。 |
| DataSet | dataset:Name[?Options] | camel-core | ロードおよび soak テストの場合、DataSet はコンポーネントに送信するための大量のメッセージを作成したり、適切に消費されることをアサートしたりする方法を提供します。 |
| Direct | direct:EndpointID[?Options] | camel-core | 同じ CamelContext からの別のエンドポイントへの同期呼び出し(シングルスレッド)。 |
| Direct-VM | direct-vm:EndpointID[?Options] | camel-core | 同じ JVM で実行されている別の CamelContext の別のエンドポイントへの同期呼び出し(シングルスレッド)。 |
| Disruptor | disruptor:Name[?Options] disruptor-vm:Name[?Options] | camel-disruptor | SEDA エンドポイントと同様ですが、ブロッキングキューの代わりに Disruptor を使用します。 |
| DNS | dns:Operation | camel-dns | ドメイン情報を検索し、DNSJava を使用して DNS クエリーを実行します。 |
| Docker | docker:Operation[?Options] | camel-docker | Docker Remote API 経由で docker-java を活用します。 |
| Dozer | dozer:EndpointID[?Options] | camel-dozer | Dozer マッピングフレームワークを使用して Java Bean 間のマッピング機能を提供します。 |
| Dropbox | dropbox://[Operation][?Options] | camel-dropbox | Dropbox リモートフォルダーからメッセージを送受信します。 |
| ElasticSearch | elasticsearch:ClusterName | camel-elasticsearch | ElasticSearch サーバーと対話する場合。 |
| ElSql | elsql:elSqlName:resourceUri[?Options] | camel-elsql | ElSql を使用して SQL クエリーを定義する既存の SQL コンポーネントのエクステンション。 |
| etcd | etcd:nameSpace[/path][?Options] | camel-etcd | Etcd の分散キー/値のストアを使用するために使用します。 |
| EventAdmin | eventadmin:topic | camel-eventadmin | |
| exec | exec://Executable[?Options] | camel-exec | システムコマンドを実行します。 |
| fabric | fabric:ClusterID[:PublishedURI][?Options] | fabric-camel | fabric エンドポイントを検索または公開します。 |
facebook://[Endpoint][?Options] | camel-facebook | Facebook4J を使用してアクセス可能なすべての Facebook API へのアクセスを提供します。 | |
| File2 | file://DirectoryName[?Options] | camel-core | ファイルへのメッセージを送信するか、ファイルまたはディレクトリーをポーリングします。 |
| flatpack | flatpack:[fixed|delim]: ConfigFile | camel-flatpack | FlatPack ライブラリーを使用した固定幅または区切られたファイルまたはメッセージの処理 |
| FOP | fop:OutputFormat | camel-fop | Apache FOP を使用して、メッセージを異なる出力形式にレンダリングします。 |
| FreeMarker | freemarker: TemplateResource | camel-freemarker | Freemarker テンプレートを使用して応答を生成します。 |
| FTP2 | ftp://[Username@]Hostname[:Port]/Directoryname[?Options] | camel-ftp | FTP でのファイルの送受信 |
| gauth | gauth://Name[?Options] | camel-gae | Google 固有の OAuth コンシューマーを実装するために Web アプリケーションによって使用されます。 |
| GHTTP | ghttp:///Path[?Options] ghttp://Hostname[:Port]/Path[?Options] ghttps://Hostname[:Port]/Path[?Options] | camel-gae | GAE URL フェッチサービスへの接続を提供し、サーブレットからメッセージを受信するためにも使用できます。 |
| Git | git://localRepositoryPath[?Options] | camel-git | 一般的な Git リポジトリーと連携できます。 |
| GitHub | github://endpointId[?Options] | camel-github | github API との対話用。 |
| GLogin | glogin://Hostname[:Port][?Options] | camel-gae | GAE アプリケーションにプログラムによるログインを行うために、Google App Engine (GAE)以外の Camel アプリケーションによって使用されます。 |
| Gmail | gmail://Username@gmail.com[?Options] gmail://Username@googlemail.com[?Options] | camel-gae | GAE メールサービスを介したメールの送信をサポートします。 |
| GoogleCalendar | google-calendar://endpoint-prefix/endpointId[?Options] | camel-google-calendar | Google Calendar Web API を使用して Google カレンダーにアクセスする場合。 |
| GoogleMail | google-mail://endpoint-prefix/endpointId[?Options] | camel-google-mail | Google Mail Web API を使用して Gmail にアクセスする場合。 |
| gtask | gtask://QueueName | camel-gae | タスクキューをメッセージキューとして使用して GAE での非同期メッセージ処理をサポートします。 |
| Geocoder | geocoder:Address:Name[?Options] geocoder:latlng:Latitude,Longitude[?Options] | camel-geocoder | 指定のアドレスのジオコード(latitude および longitude)を検索するか、リバースルックアップを実行します。 |
| GoogleDrive | google-drive://EndpointPrefix/Endpoint[?Options] | camel-google-drive | Google ドライブ ファイルストレージサービスへのアクセスを提供します。 |
| Guava EventBus | guava-eventbus:BusName[?EventClass=ClassName] | camel-guava-eventbus | Google Guava EventBus は、コンポーネントを相互に明示的に登録しなくても、コンポーネント間のパブリッシュ/サブスクライブスタイルの通信を可能にします(そのため、相互に認識する必要があります)。このコンポーネントは、Camel と Google Guava EventBus インフラストラクチャー間の統合ブリッジを提供します。 |
| Hazelcast | hazelcast://StoreType:CacheName[?Options] | camel-hazelcast | Hazelcast は、Java (単一の JAR)に完全に実装されたデータグリッドです。このコンポーネントは、マップ、マルチマップ、seda、queue、set、atomic 番号、および単純なクラスターをサポートします。 |
| HDFS | hdfs://Hostname[:Port][/Path][?Options] | camel-hdfs | HDFS (Hadoop 1.x)を使用して、Hadoop Distributed File System (HDFS) の読み取りと書き込みを行います。 |
| HDFS2 | hdfs2://Hostname[:Port][/Path][?Options] | camel-hdfs2 | HDFS (Hadoop 2.x)を使用して、Hadoop Distributed File System (HDFS) の読み取りと書き込みを行います。 |
| Hipchat | hipchat://Hostname[:Port][?Options] | camel-hipchat | Hipchat サービスを介してメッセージを生成および消費する場合。 |
| HL7 | mina:tcp://Host[:Port] | camel-hl7 | HL7 MLLP プロトコルおよび HL7 モデルを使用する場合は、HAPI ライブラリー を使用します。 |
| HTTP | http://Hostname[:Port][/ResourceUri] | camel-http | Apache HTTP Client 3.x を使用して外部 HTTP サーバーを呼び出す場合。 |
| HTTP4 | http4://Hostname[:Port][/ResourceUri] | camel-http4 | Apache HTTP Client 4.x を使用して外部 HTTP サーバーを呼び出す場合。 |
| iBATIS | ibatis:OperationName[?Options] | camel-ibatis | Apache iBATIS を使用してリレーショナルデータベースでクエリー、ポーリング、挿入、更新、または削除を実行します。 |
| IMAP | imap://[UserName@]Host[:Port][?Options] | camel-mail | IMap を使用して電子メールを受信する。 |
| IRC | irc:Host[:Port]/#Room | camel-irc | IRC 通信用。 |
| jasypt | camel-jasypt | Jasypt と統合し、プロパティー ファイルの機密情報を暗号化できるようにします。 | |
| JCache | cache://cacheName[?Options] | camel-jcache | JCache (JSR-107)をキャッシュ実装として使用してキャッシュ操作を実行します。 |
| jclouds | jclouds:[Blobstore|ComputService]:Provider | camel-jclouds | JClouds を介してクラウドコンピュートおよび Blobstore サービスを操作する場合 |
| JCR | jcr://UserName:Password@Repository/path/to/node | camel-jcr | Apache Jackrabbit などの JCR (JSR-170)準拠のリポジトリーへのメッセージの保存。 |
| JDBC | jdbc:DataSourceName[?Options] | camel-jdbc | JDBC クエリーおよび操作を実行する場合。 |
| Jetty | jetty:http://Host[:Port][/ResourceUri] | camel-jetty | HTTP 経由でサービスを公開する場合。 |
| JGroups | jgroups:ClusterName[?Options] | camel-jgroups | JGroups クラスターでメッセージを交換します。 |
| jing |
jing:LocalOrRemoteResource jing:LocalOrRemoteResource?compactSyntax=true
| camel-jing |
RelaxNG または RelaxNG compact 構文を使用してメッセージのペイロードを検証します。
|
| JIRA | jira://endpointId[?Options] | camel-jira | JIRA 向けの Atlassian の REST Java Client をカプセル化して JIRA API と対話する場合。 |
| JMS | jms:[temp:][queue:|topic:]DestinationName[?Options] | camel-jms | JMS プロバイダーの使用 |
| JMX | jmx://Platform[?Options] | camel-jmx | JMX 通知リスナーの使用 |
| Jolt | jolt:specName[?Options] | camel-jolt | JOLT 仕様を使用して JSON メッセージを処理できます。 |
| JPA | jpa:[EntityClassName][?Options] | camel-jpa | OpenJPA、Hibernate、または TopLink を使用するために JPA 仕様を介してデータベースをキューとして使用する場合。 |
| jsch | scp://Hostname/Destination | camel-jsch | scp プロトコルのサポート。 |
| JT400 | jt400://User:Pwd@System/PathToDTAQ | camel-jt400 | AS/400 (システム i、IBM i、i5 など)システムでデータキューと統合する場合 |
| Kafka | kafka://Hostname[:Port][?Options] | camel-kafka | Apache Kafka メッセージブローカーからメッセージを送受信します。 |
| Kestrel | kestrel://[AddressList/]Queuename[?Options] | camel-kestrel | Kestrel キューから生成または消費されます。 |
| Krati | krati://[PathToDatastore/][?Options] | camel-krati | Krati データストアの生成または消費。 |
| Kubernetes | kubernetes:[masterUrl][?Options] | camel-kubernetes | アプリケーションを Kubernetes スタンドアロンと統合する場合や、OpenShift 上で統合する場合。 |
| 言語 | language://LanguageName[:Script][?Options] | camel-core | 言語スクリプトを実行します。 |
| LDAP | ldap:Host[:Port]?base=...[&scope=Scope] | camel-ldap | LDAP サーバーでの検索の実行(範囲 は object|onelevel|subtreeのいずれかでなければなりません)。 |
| LevelDB | 該当なし | camel-leveldb | 非常に軽量で組み込み可能なキーと値のデータベース。 |
| リスト | list:ListID | camel-core | テスト、視覚化ツール、またはデバッグに役立つ簡単な BrowsableEndpoint を提供します。エンドポイントに送信されたエクスチェンジはすべて参照できます。 |
| Log | log:LoggingCategory[?level=LoggingLevel] | camel-core | Jakarta Commons Logging を使用して、log4j などの基礎となるロギングシステムにメッセージ交換をログに記録します。 |
| Lucene | lucene:SearcherName:insert[?analyzer=Analyzer] lucene:SearcherName:query[?analyzer=Analyzer] | camel-lucene | 高度な分析/トークン化機能を使用して、Apache Lucene を使用して Java ベースのインデックスと完全なテキストベースの検索を実行します。 |
| マスター | REVISIT | ||
| メトリクス | metrics:[meter|counter|histogram|timer]:Metricname[?Options] | camel-metrics |
Metrics Java ライブラリーを使用して、Camel ルートから直接さまざまなメトリクスを収集できます。
|
| MINA2 | mina2:tcp://Hostname[:Port][?Options] mina2:udp://Hostname[:Port][?Options] mina2:vm://Hostname[:Port][?Options] | camel-mina2 | Apache MINA 2.x の使用 |
| MLLP | 該当なし | camel-mllp | MLLP プロトコルを使用してシステム間の通信を行う場合このコンポーネントは、簡単な設定 URI と HL7 の自動署名およびインターイメントを提供します。 |
| Mock | mock:EndpointID | camel-core | モックを使用してルートおよび仲介ルールをテストする場合。 |
| MongoDB | mongodb:Connection[?Options] | camel-mongodb | MongoDB データベースおよびコレクションと対話します。プロデューサーエンドポイントを提供して、CRUD スタイルの操作や、データベースおよびコレクションに対してより多くの操作を実行し、コレクションおよびディスパッチオブジェクトを Camel ルートにリッスンするコンシューマーエンドポイントを提供します。 |
| MQTT | mqtt:Name | camel-mqtt | MQTT M2M メッセージブローカーと通信するためのコンポーネント |
| MSV | msv:LocalOrRemoteResource | camel-msv | MSV ライブラリーを使用してメッセージのペイロードを検証します。 |
| Mustache | mustache:TemplateName[?Options] | camel-mustache | Mustache テンプレートを使用してメッセージを処理できます。 |
| MVEL | mvel:TemplateName[?Options] | camel-mvel | MVEL テンプレートを使用してメッセージを処理できます。 |
| mybatis | mybatis:StatementName | camel-mybatis | MyBatis を使用してリレーショナルデータベースでクエリー、ポーリング、挿入、更新、または削除を実行します。 |
| Nagios | nagios://Host[:Port][?Options] | camel-nagios | JSendNSCA を使用して Nagios にパッシブチェックを送信します。 |
| Netty | netty:tcp://localhost:99999[?Options] netty:udp://Remotehost:99999/[?Options] | camel-netty |
Netty バージョン 3.x によって提供される Java NIO ベースの機能を使用して、TCP プロトコルおよび UDP プロトコルと連携できます。
|
| Netty4 | netty4:tcp://localhost:99999[?Options] netty4:udp://Remotehost:99999/[?Options] | camel-netty4 |
Netty バージョン 4.x によって提供される Java NIO ベースの機能を使用して、TCP プロトコルおよび UDP プロトコルと連携できます。
|
| Netty HTTP | netty-http:http://Hostname[:Port][?Options] | camel-netty-http | Netty コンポーネントへの拡張機能。Netty バージョン 3.x を使用した HTTP トランスポートを容易にします。 |
| Netty4 HTTP | netty4-http:http://Hostname[:Port][?Options] | camel-netty4-http | Netty コンポーネントへの拡張機能。Netty バージョン 4.x を使用した HTTP トランスポートを容易にします。 |
| OGNL | camel-ognl | OGNL は、Java オブジェクトのプロパティーを取得および設定するための式言語です。 | |
| Olingo2 | olingo2://Endpoint/ResourcePath[?Options] | camel-olingo2 |
Apache Olingo 2.0 を使用して OData 2.0 サービスと通信します。
|
| Paho | paho:QName[?Options] | camel-paho | Eclipse Paho ライブラリーを使用して MQTT メッセージングプロトコルのコネクターを提供します。 |
| pax-Logging | paxlogging:Appender | camel-paxlogging |
OSGi コンテナーのコンテキストで Pax ロギングイベントを受信します。
|
pdf:Operation[?Options] | camel-pdf | PDF ドキュメントからコンテンツを作成、変更、または抽出する機能を提供します。 | |
| PGEvent | pgevent:Datasource[?Parameters]
pgevent://[HostName][:Port]/Database/Channel[?Parameters]
| camel-pgevent | LISTEN/NOTIFY コマンドに対して PostgreSQL イベントを生成および消費する場合。 |
| POP | pop3://[UserName@]Host[:Port][?Options] | camel-mail | POP3 および JavaMail を使用して電子メールを受信します。 |
| プリンター | lpr://localhost[:Port]/default[?Options] lpr://RemoteHost[:Port]/path/to/printer[?Options] | camel-printer | ルート上のペイロードをプリンターに転送する方法を提供します。 |
| プロパティー | properties://Key[?Options] | camel-properties | エンドポイント URI 定義で直接プロパティープレースホルダーを使用することを容易にします。 |
| Quartz | quartz://[GroupName/]TimerName[?Options] quartz://GroupName/TimerName/CronExpression | camel-quartz | Quartz スケジューラーを使用して、スケジュールされたメッセージの配信を提供します。 |
| Quartz2 | quartz2://[GroupName/]TimerName[?Options] quartz2://GroupName/TimerName/CronExpression | camel-quartz2 | Quartz スケジューラー 2.x を使用したスケジュールされたメッセージの配信を提供します。 |
| QuickFix | quickfix-server:ConfigFile quickfix-client:ConfigFile | camel-quickfix | FIX メッセージを送受信できる Java エンジンの QuickFix の実装。 |
| RabbitMQ | rabbitmq://Hostname[:Port]/ExchangeName[?Options] | camel-rabbitmq | RabbitMQ インスタンスからメッセージを生成および消費できます。 |
| Ref | ref:EndpointID | camel-core | レジストリーにバインドされる既存エンドポイントを検索するためのコンポーネント。 |
| REST | rest://Method:Path[:UriTemplate][?Options] | camel-rest | Apache Camel Development Guide の Defining Services with REST DSL セクションを使用して REST エンドポイントを定義できます。 |
| Restlet | restlet:RestletUrl[?Options] | camel-restlet | Restlet を使用して Restful リソースを消費および生成するコンポーネント。 |
| RMI | rmi://RmiRegistryHost:RmiRegistryPort/RegistryPath | camel-rmi | RMI の操作。 |
| Routebox | routebox:routeboxName[?Options] | camel-routebox | |
| RSS | rss:Uri | camel-rss | RSS フィードの使用など、RSS 統合で ROME と連携します。 |
| Salesforce | salesforce:Topic[?Options] | camel-salesforce | プロデューサーおよびコンシューマーエンドポイントが Java DTO を使用して Salesforce と通信できるようにします。 |
| SAP | sap:[destination:DestinationName|server:ServerName]rfcName[?Options] | camel-sap | 同期リモート関数呼び出し sRFC を使用して、SAP システムへの送受信通信を有効にします。 |
| SAP NetWeaver | sap-netweaver:https://Hostname[:Port]/Path[?Options] | camel-sap-netweaver | HTTP トランスポートを使用して SAP NetWeaver Gateway と統合します。 |
| Schematron | schematron://Path[?Options] | camel-schematron | Schematron を使用して XML ドキュメントを検証します。 |
| SEDA | seda:EndpointID | camel-core | java.util.concurrent.BlockingQueue にメッセージを配信するために使用されます。これは、同じ CamelContext 内で SEDA スタイルの処理パイプラインを作成する場合に役立ちます。 |
| SERVLET | servlet://RelativePath[?Options] | camel-servlet | HTTP エンドポイントに到達する HTTP リクエストを消費するための HTTP ベースのエンドポイントを提供し、このエンドポイントは公開されたサーブレットにバインドされます。 |
| ServletListener | 該当なし | camel-servletlistener | Web アプリケーションで Camel アプリケーションのブートストラップに使用されます。 |
| SFTP | sftp://[Username@]Hostname[:Port]/Directoryname[?Options] | camel-ftp | SFTP でのファイルの送受信 |
| sip | sip://User@Hostname[:Port][?Options] sips://User@Hostname[:Port][?Options] | camel-sip | har SIP プロトコルを使用して通信機能をパブリッシュ/サブスクライブします。RFC3903 - Session Initiation Protocol (SIP) Extension for Event |
| SJMS | sjms:[queue:|topic:]destinationName[?Options] | camel-sjms | JMS クライアントの作成および設定にベストプラクティスを使用する Camel 用の JMS クライアント。 |
| SJMS-Batch | sjms-batch:[queue:]destinationName[?Options] | camel-sjms | JMS キューからの非常に高性能でトランザクションバッチ消費のための特殊なコンポーネント。 |
| Slack |
slack:#Channel[?Options] slack:@Username[?Options]
| camel-slack | Slack のインスタンスに接続し、事前確立済みの Slack 受信 Webhook を介してメッセージボディーに含まれるメッセージを配信できます。 |
| SMPP | smpp://UserInfo@Host[:Port][?Options] | camel-smpp | JSMPP ライブラリー を使用して Short Messaging Service Center を使用して SMS を送受信するには、以下を行います。 |
| SMTP | smtp://[UserName@]Host[:Port][?Options] | camel-mail | SMTP および JavaMail を使用した電子メールの送信。 |
| SNMP | snmp://Hostname[:Port][?Options] | camel-snmp | SNMP 対応デバイスをポーリングしたり、トラップを受信したりできます。 |
| Solr | solr://Hostname[:Port]/Solr[?Options] | camel-solr | Solrj クライアント API を使用して、Apache Lucene Solr サーバーと対話します。 |
| Splunk | splunk://Endpoint[?Options] | camel-splunk | イベントをパブリッシュし、Splunk でイベントを検索できます。 |
| Spring Batch | spring-batch:Job[?Options] | camel-spring-batch | Camel と Spring Batch のブリッジングを行います。 |
| Spring イベント | spring-event://dummy | camel-spring | Spring コンテキストの Spring ApplicationEvents オブジェクトをパブリッシュまたは消費します。 |
| Spring の統合 | spring-integration:DefaultChannelName[?Options] | camel-spring-integration | Camel および Spring Integration のブリッジコンポーネント。 |
| Spring LDAP | spring-ldap:SpringLdapTemplate[?Options] | camel-spring-ldap | Spring LDAP の Camel ラッパーを提供します。 |
| Spring Redis | spring-redis://Hostname[:Port][?Options] | camel-spring-redis | Redis からのメッセージの送受信を有効にします。これは高度なキー値ストアで、キーには文字列、ハッシュ、リスト、セット、およびソートされたセットを含めることができます。 |
| Spring Web Services | spring-ws:[MappingType:]Address[?Options] | camel-spring-ws | Web サービスにアクセスするためのクライアント側のサポート、および Spring Web サービスを使用して独自のコントラクトファースト Web サービスを作成するためのサーバー側のサポート。 |
| SQL | sql:SqlQueryString[?Options] | camel-sql | JDBC を使用した SQL クエリーの実行。 |
| SQL ストアドプロシージャ | sql-stored:Template[?Options] | camel-sql | Stored Procedure クエリーを使用してデータベースを操作する。 |
| SSH | ssh:[Username[:Password]@]Host[:Port][?Options] | camel-ssh | SSH サーバーにコマンドを送信する場合。 |
| StAX | stax:ContentHandlerClassName | camel-stax | SAX ContentHandler を介してメッセージを処理します。 |
| STOMP | stomp:queue:Destination[?Options] | camel-stomp | Apache ActiveMQ などの Stomp 準拠のブローカーとの間でメッセージを送受信する場合。 |
| ストリーム | stream:[in|out|err|header][?Options] | camel-stream | Unix パイプではなく、input/output/error/file ストリームへの読み取りまたは書き込み。 |
| string Template | string-template:TemplateURI[?Options] | camel-stringtemplate | 文字列テンプレートを使用して応答を生成します。 |
| Stub | stub:SomeOtherCamelUri | camel-core | テストやデバッグを容易にするために、一部の物理ミドルウェアエンドポイントをスタブアウトすることができます。 |
| Swagger | 該当なし | camel-swagger | CamelContext ファイルで、REST 定義のルートおよびエンドポイントの API ドキュメントを作成できます。 |
| Swagger | 該当なし | camel-swagger | CamelContext ファイルで REST 定義のルートまたはエンドポイントの API ドキュメントを作成します。 |
| Swagger Java | 該当なし | camel-swagger-java | REST DSL と統合し、Swagger を使用して REST サービスとその API を公開します。このコンポーネントは、サーブレットとして使用したり、サーブレットなしで REST コンポーネントから直接使用することもできます。 |
| Test | test:RouterEndpointUri | camel-spring | 指定の基礎となるエンドポイントからポーリングできるすべてのメッセージボディーを受信することを期待する Mock エンドポイントを作成します。 |
| Timer | timer:EndpointID[?Options] | camel-core | タイマーエンドポイント。 |
twitter://[Endpoint][?Options] | camel-twitter | Twitter エンドポイント。 | |
| Undertow | undertow:http://Hostname[:Port][/ResourceUri][?Options] | camel-undertow | HTTP 要求の使用および生成用の HTTP ベースのエンドポイントを提供します。 |
| 検証 | validator:LocalOrRemoteResource | camel-spring | XML スキーマと JAXP Validation を使用してメッセージのペイロードを検証します。 |
| velocity | velocity:TemplateURI[?Options] | camel-velocity | Apache Velocity テンプレートを使用して応答を生成します。 |
| Vertx | vertx:ChannelName[?Options] | camel-vertx | Vertx イベントバスの使用 |
| VM | vm:EndpointID | camel-core | java.util.concurrent.BlockingQueue にメッセージを配信するために使用されます。これは、同じ JVM 内で SEDA スタイルの処理パイプラインを作成する場合に役立ちます。 |
| video | weather://DummyName[?Options] | camel-weather | Open Weather Map からの投票情報をポーリングします。これは、無料のグローバル情報と予測情報を提供するサイトです。 |
| Websocket | websocket://Hostname[:Port]/Path | camel-websocket | Websocket クライアントとの通信。 |
| XML RPC | xmlrpc://ServerURI[?Options] | camel-xmlrpc | XML のデータ形式を提供します。これにより、Apache XmlRpc のバインドデータ形式を使用した要求メッセージおよび応答メッセージのシリアライズおよびデシリアライズが可能になります。 |
| XML セキュリティー | 該当なし | camel-xmlsecurity | W3C 標準の XML 署名構文および 処理で説明されているように、XML 署名を生成および 検証します。 |
| XMPP | xmpp:Hostname[:Port][/Room] | camel-xmpp | XMPP および Jabber の使用。 |
| XQuery | xquery:TemplateURI | camel-saxon | XQuery テンプレートを使用して応答を生成します。 |
| XSLT | xslt:TemplateURI[?Options] | camel-spring | XSLT テンプレートを使用してメッセージを処理できます。 |
| Yammer | yammer:[function][?Options] | camel-yammer | Yammer エンタープライズソーシャルネットワークと対話できます。 |
| ZooKeeper | zookeeper://Hostname[:Port]/Path | camel-zookeeper | ZooKeeper クラスターの使用 |
1.2. JBoss EAP の Camel コンポーネントのリスト リンクのコピーリンクがクリップボードにコピーされました!
コンポーネントの表 リンクのコピーリンクがクリップボードにコピーされました!
| コンポーネント | エンドポイント URI | アーティファクト ID | 説明 |
|---|---|---|---|
| ActiveMQ | activemq:[queue:|topic:]DestinationName | activemq-core | Apache ActiveMQ を使用した JMS メッセージングの場合。 |
| Atom | atom://AtomUri[?Options] | camel-atom | atom フィードの使用など、atom 統合での Apache Abdera の使用 |
| Bean | bean:BeanID[?methodName=Method] | camel-core | Bean バインディングを使用して、メッセージエクスチェンジをレジストリーの Bean にバインドします。は POJO (Plain Old Java Objects)の公開および呼び出しにも使用されます。 |
| Bindy | 該当なし | camel-bindy | 非構造化データの解析とバインドを有効にします。 |
| 参照 | browse: 名前 | camel-core | テスト、視覚化ツール、またはデバッグに役立つ簡単な BrowsableEndpoint を提供します。エンドポイントに送信されたエクスチェンジはすべて参照できます。 |
camel-castor | camel-castor コンポーネントは、Castor XML ライブラリーを使用して XML ペイロードを Java オブジェクトにアンマーシャリングしたり、Java オブジェクトを XML ペイロードにマーシャリングしたりするデータ形式の使用をサポートします。このコンポーネントはエンドポイントファクトリーではありません。詳細は、Apache のドキュメント を参照してください。 | ||
| CDI | 該当なし | camel-cdi | CDI 統合を提供します。 |
| クラス | class:ClassName[?method=MethodName] | camel-core | Bean バインディングを使用して、メッセージエクスチェンジをレジストリーの Bean にバインドします。は POJO の公開および呼び出しにも使用されます(Plain Old Java Objects)。 |
| ControlBus | controlbus:Command[?Options] | camel-core | Camel アプリケーションの管理および監視用にエンドポイントにメッセージを送信できるようにする ControlBus Enterprise Integration Pattern。 |
| crypto | crypto:sign:Name[?Options] crypto:verify:Name[?Options] | camel-crypto | Java Cryptographic Extension の Signature Service を使用してエクスチェンジに署名し、検証します。 |
camel-csv | camel-csv コンポーネントは、メッセージデータでコンマ区切りの値(CSV)を使用するサポートを提供します。このコンポーネントはエンドポイントファクトリーではありません。詳細は、Apache のドキュメント を参照してください。 | ||
| CXF | cxf://Address[?Options] | camel-cxf | Web サービスの統合のための Apache CXF の使用 |
| CXF Bean | cxf:BeanName | camel-cxf | レジストリーから JAX WS または JAX RS アノテーションが付けられた Bean を使用してエクスチェンジを提案します。 |
| CXFRS | cxfrs:bean:RsEndpoint[?Options] | camel-cxf | CXF でホストされる JAX-RS サービスに接続するための Apache CXF との統合を提供します。 |
| DataFormat | dataformat:Name:(marshal|unmarshal)[?Options] | camel-core | エンドポイントにメッセージを送信して、標準の Camel データフォーマットのいずれかでメッセージをマーシャリングまたはアンマーシャリングできます。 |
| DataSet | dataset:Name[?Options] | camel-core | ロードおよび soak テストの場合、DataSet はコンポーネントに送信するための大量のメッセージを作成したり、適切に消費されることをアサートしたりする方法を提供します。 |
| Direct | direct:EndpointID[?Options] | camel-core | 同じ CamelContext からの別のエンドポイントへの同期呼び出し(シングルスレッド)。 |
| Direct-VM | direct-vm:EndpointID[?Options] | camel-core | 同じ JVM で実行されている別の CamelContext の別のエンドポイントへの同期呼び出し(シングルスレッド)。 |
| Dozer | dozer:EndpointID[?Options] | camel-dozer | Dozer マッピングフレームワークを使用して Java Bean 間のマッピング機能を提供します。 |
| EJB | ejb:EjbName[?method=MethodName] | camel-ejb | Bean バインディングを使用して、メッセージエクスチェンジを EJB にバインドします。これは Bean コンポーネントのように動作しますが、EJB にアクセスする場合にのみ機能します。EJB 3.0 以降をサポートします。 |
| ElasticSearch | elasticsearch:ClusterName | camel-elasticsearch | ElasticSearch サーバーと対話する場合。 |
| File2 | file://DirectoryName[?Options] | camel-core | ファイルへのメッセージを送信するか、ファイルまたはディレクトリーをポーリングします。 |
| flatpack | flatpack:[fixed|delim]: ConfigFile | camel-flatpack | FlatPack ライブラリーを使用した固定幅または区切られたファイルまたはメッセージの処理 |
| FTP2 | ftp://[Username@]Hostname[:Port]/Directoryname[?Options] | camel-ftp | FTP でのファイルの送受信 |
camel-groovy | camel-groovy コンポーネントは、Groovy 言語の使用をサポートします。これはエンドポイントファクトリーではありません。Groovy を参照してください。 | ||
| HL7 | camel-hl7 | HL7 MLLP プロトコルおよび HL7 モデルを使用する場合は、HAPI ライブラリー を使用します。 | |
| HTTP4 | http4://Hostname[:Port][/ResourceUri] | camel-http4 | Apache HTTP Client 4.x を使用して外部 HTTP サーバーを呼び出す場合。 |
| IMAP | imap://[UserName@]Host[:Port][?Options] | camel-mail | IMap を使用して電子メールを受信する。 |
camel-jackson | camel-jackson コンポーネントは、Jackson を Camel レジストリーで型コンバーターとして統合するためのサポートを提供します。このコンポーネントはエンドポイントファクトリーではありません。camel-jackson を参照してください。 | ||
| jasypt | camel-jasypt | Jasypt と統合し、プロパティー ファイルの機密情報を暗号化できるようにします。 | |
| JAXB | camel-jaxb | JAXB2 XML マーシャリング標準を使用して XML ペイロードを Java オブジェクトにアンマーシャリングしたり、Java オブジェクトを XML ペイロードにマーシャリングしたりするデータ形式。 | |
| JGroups | jgroups:ClusterName[?Options] | camel-jgroups | JGroups クラスターでメッセージを交換します。 |
| JMS | jms:[temp:][queue:|topic:]DestinationName[?Options] | camel-jms | JMS プロバイダーの使用 |
| JMX | jmx://Platform[?Options] | camel-jmx | JMX 通知リスナーの使用 |
| JPA | jpa:[EntityClassName][?Options] | camel-jpa | OpenJPA、Hibernate、または TopLink を使用するために JPA 仕様を介してデータベースをキューとして使用する場合。 |
| Kafka | kafka://Hostname[:Port][?Options] | camel-kafka | Apache Kafka メッセージブローカーからメッセージを送受信します。 |
| 言語 | language://LanguageName[:Script][?Options] | camel-core | 言語スクリプトを実行します。 |
| リスト | list:ListID | camel-core | テスト、視覚化ツール、またはデバッグに役立つ簡単な BrowsableEndpoint を提供します。エンドポイントに送信されたエクスチェンジはすべて参照できます。 |
| Log | log:LoggingCategory[?level=LoggingLevel] | camel-core | Jakarta Commons Logging を使用して、log4j などの基礎となるロギングシステムにメッセージ交換をログに記録します。 |
| Lucene | lucene:SearcherName:insert[?analyzer=Analyzer] lucene:SearcherName:query[?analyzer=Analyzer] | camel-lucene | 高度な分析/トークン化機能を使用して、Apache Lucene を使用して Java ベースのインデックスと完全なテキストベースの検索を実行します。 |
| MINA2 | mina2:tcp://Hostname[:Port][?Options] mina2:udp://Hostname[:Port][?Options] mina2:vm://Hostname[:Port][?Options] | camel-mina2 | Apache MINA 2.x の使用 |
| MQTT | mqtt:Name | camel-mqtt | MQTT M2M メッセージブローカーと通信するためのコンポーネント |
| MVEL | mvel:TemplateName[?Options] | camel-mvel | MVEL テンプレートを使用してメッセージを処理できます。 |
| Netty4 | netty4:tcp://localhost:99999[?Options] netty4:udp://Remotehost:99999/[?Options] | camel-netty4 |
Netty バージョン 4.x によって提供される Java NIO ベースの機能を使用して、TCP プロトコルおよび UDP プロトコルと連携できます。
|
| OGNL | camel-ognl | OGNL は、Java オブジェクトのプロパティーを取得および設定するための式言語です。 | |
| POP | pop3://[UserName@]Host[:Port][?Options] | camel-mail | POP3 および JavaMail を使用して電子メールを受信します。 |
| プロパティー | properties://Key[?Options] | camel-properties | エンドポイント URI 定義で直接プロパティープレースホルダーを使用することを容易にします。 |
camel-protobuf | このコンポーネントは、Java と Protocol Buffer プロトコルのシリアライズをサポートします。プロトコルバッファーは言語に依存しないプラットフォームに依存しないため、Camel ルートによって生成されたメッセージは他の言語実装によって消費される可能性があります。詳細は、Apache のドキュメント を参照してください。 | ||
| Quartz2 | quartz2://[GroupName/]TimerName[?Options] quartz2://GroupName/TimerName/CronExpression | camel-quartz2 | Quartz スケジューラー 2.x を使用したスケジュールされたメッセージの配信を提供します。 |
| Ref | ref:EndpointID | camel-core | レジストリーにバインドされる既存エンドポイントを検索するためのコンポーネント。 |
| REST | rest://Method:Path[:UriTemplate][?Options] | camel-rest | Apache Camel Development Guide の Defining Services with REST DSL セクションを使用して REST エンドポイントを定義できます。 |
| Restlet | restlet:RestletUrl[?Options] | camel-restlet | Restlet を使用して Restful リソースを消費および生成するコンポーネント。 |
| RSS | rss:Uri | camel-rss | RSS フィードの使用など、RSS 統合で ROME と連携します。 |
| Salesforce | salesforce:Topic[?Options] | camel-salesforce | プロデューサーおよびコンシューマーエンドポイントが Java DTO を使用して Salesforce と通信できるようにします。 |
| SAP | sap:[destination:DestinationName|server:ServerName]rfcName[?Options] | camel-sap | 同期リモート関数呼び出し sRFC を使用して、SAP システムへの送受信通信を有効にします。 |
| Saxon | camel-saxon | Saxon コンポーネントは XQuery をサポートし、Java DSL または XML DSL で式または述語を使用できるようにします。 | |
| スクリプト | camel-script | Script コンポーネントは、JSR 223 標準に従って式または述語を作成するために使用できるスクリプト言語を複数サポートします。 | |
| SEDA | seda:EndpointID | camel-core | java.util.concurrent.BlockingQueue にメッセージを配信するために使用されます。これは、同じ CamelContext 内で SEDA スタイルの処理パイプラインを作成する場合に役立ちます。 |
| SERVLET | servlet://RelativePath[?Options] | camel-servlet | HTTP エンドポイントに到達する HTTP リクエストを消費するための HTTP ベースのエンドポイントを提供し、このエンドポイントは公開されたサーブレットにバインドされます。 |
| SFTP | sftp://[Username@]Hostname[:Port]/Directoryname[?Options] | camel-ftp | SFTP でのファイルの送受信 |
| SMPP | smpp://UserInfo@Host[:Port][?Options] | camel-smpp | JSMPP ライブラリー を使用して Short Messaging Service Center を使用して SMS を送受信するには、以下を行います。 |
camel-soap | camel-soap コンポーネントは、SOAP データフォーマットの使用をサポートします。これはエンドポイントファクトリーではありません。詳細は、Apache のドキュメント を参照してください。 | ||
camel-spring | camel-spring コンポーネントは、Spring Expression Language (SpEL)の使用のサポートを提供します。これはエンドポイントファクトリーではありません。SpEL を参照してください。 | ||
camel-spring-security | camel-spring-security コンポーネントは、Camel ルートのロールベースの承認を提供します。これはエンドポイントファクトリーではありません。詳細は、Apache のドキュメント を参照してください。 | ||
| SQL | sql:SqlQueryString[?Options] | camel-sql | JDBC を使用した SQL クエリーの実行。 |
| ストリーム | stream:[in|out|err|header][?Options] | camel-stream | Unix パイプではなく、input/output/error/file ストリームへの読み取りまたは書き込み。 |
| Swagger | 該当なし | camel-swagger | CamelContext ファイルで、REST 定義のルートおよびエンドポイントの API ドキュメントを作成できます。 |
camel-tagsoup | このコンポーネントは、HTML の解析と整形された HTML を返すためのサポートを提供します。このコンポーネントはエンドポイントファクトリーではありません。詳細は、Apache のドキュメント を参照してください。 | ||
| Timer | timer:EndpointID[?Options] | camel-core | タイマーエンドポイント。 |
| velocity | velocity:TemplateURI[?Options] | camel-velocity | Apache Velocity テンプレートを使用して応答を生成します。 |
| VM | vm:EndpointID | camel-core | java.util.concurrent.BlockingQueue にメッセージを配信するために使用されます。これは、同じ JVM 内で SEDA スタイルの処理パイプラインを作成する場合に役立ちます。 |
| video | weather://DummyName[?Options] | camel-weather | Open Weather Map からの投票情報をポーリングします。これは、無料のグローバル情報と予測情報を提供するサイトです。 |
camel-xmlbeans | このコンポーネントは、XML ペイロードを Java オブジェクトにアンマーシャリングし、Java オブジェクトを XML ペイロードにマーシャリングするためのサポートを提供します。このコンポーネントはファクトリーエンドポイントではありません。詳細は、Apache のドキュメント を参照してください。 | ||
| XML セキュリティー | 該当なし | camel-xmlsecurity | W3C 標準の XML 署名構文および 処理で説明されているように、XML 署名を生成および 検証します。 |
| XQuery | xquery:TemplateURI | camel-saxon | XQuery テンプレートを使用して応答を生成します。 |
| XSLT | xslt:TemplateURI[?Options] | camel-spring | XSLT テンプレートを使用してメッセージを処理できます。 |
| XStream | camel-xstream | XStream データフォーマットを提供します。これは、XStream ライブラリーを使用して Java オブジェクトを XML との間でマーシャリングおよびアンマーシャリングします。 | |
camel-zipfile | このコンポーネントは、zip ファイルにメッセージを圧縮し、zip ファイルを元のメッセージに展開するためのサポートを提供します。このコンポーネントはエンドポイントファクトリーではありません。詳細は、Apache のドキュメント を参照してください。 | ||
| ZooKeeper | zookeeper://Hostname[:Port]/Path | camel-zookeeper | ZooKeeper クラスターの使用 |
1.3. JBoss EAP でのカスタム Camel コンポーネントのデプロイ リンクのコピーリンクがクリップボードにコピーされました!
1.3.1. module.xml 定義の追加 リンクのコピーリンクがクリップボードにコピーされました!
module.xml 記述子ファイルは、コンポーネントのクラ出力ディング動作を定義します。
module.xml ファイルと任意の jar 依存関係を追加できます。たとえば、modules/system/layers/fuse/org/apache/camel/component/ftp/main ディレクトリーなどです。
camel-ftp コンポーネントの例になります。
1.3.2. 参照の追加 リンクのコピーリンクがクリップボードにコピーされました!
modules/system/layers/fuse/org/apache/camel/component/main/module.xml ファイル内にそのモジュールへの参照を追加します。
第2章 ActiveMQ リンクのコピーリンクがクリップボードにコピーされました!
ActiveMQ コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
JmsTemplate を使用し、MessageListenerContainer を使用して宣言的トランザクションに Spring の JMS サポートを使用します。JMS コンポーネントのすべてのオプションは、このコンポーネントにも適用されます。
camel-core.jar、camel-spring.jar、camel-jms.jar などの Apache Camel 依存関係とともに activemq.jar または activemq-core.jar があることを確認してください。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
activemq:[queue:|topic:]destinationName
activemq:[queue:|topic:]destinationName
FOO.BAR キューに接続するには、以下を使用します。
activemq:FOO.BAR
activemq:FOO.BAR
queue: 接頭辞を含めることができます。
activemq:queue:FOO.BAR
activemq:queue:FOO.BAR
topic: 接頭辞を含める必要があります。たとえば、Stocks.Prices トピックに接続するには、以下を使用します。
activemq:topic:Stocks.Prices
activemq:topic:Stocks.Prices
オプション リンクのコピーリンクがクリップボードにコピーされました!
Camel on EAP デプロイメント リンクのコピーリンクがクリップボードにコピーされました!
接続ファクトリーの設定 リンクのコピーリンクがクリップボードにコピーされました!
activeMQComponent () メソッド を使用して ActiveMQComponent を CamelContext に追加する方法を示しています。
camelContext.addComponent("activemq", activeMQComponent("vm://localhost?broker.persistent=false"));
camelContext.addComponent("activemq", activeMQComponent("vm://localhost?broker.persistent=false"));
Spring XML を使用した接続ファクトリーの設定 リンクのコピーリンクがクリップボードにコピーされました!
接続プールの使用 リンクのコピーリンクがクリップボードにコピーされました!
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-pool</artifactId>
<version>_activemq-version_</version>
</dependency>
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-pool</artifactId>
<version>_activemq-version_</version>
</dependency>
PooledConnectionFactory は、同時に使用する最大 8 つの接続を持つ接続プールを作成します。各接続は、多くのセッションで共有できます。maxActive という名前のオプションを使用して、接続ごとのセッションの最大数を設定できます。デフォルト値は 500 です。ActiveMQ 5.7 以降では、オプションの名前が maxActiveSessionPerConnection という名前になるよう名前が変更されました。concurrentConsumers は maxConnections よりも高い値に設定されていることに注意してください。これは、各コンシューマーがセッションを使用し、セッションが同じ接続を共有できるため、安全です。この例では、8 * 500 = 4000 のアクティブなセッションを同時に指定できます。
ルートでの MessageListener POJO の呼び出し リンクのコピーリンクがクリップボードにコピーされました!
public class MyListener implements MessageListener {
public void onMessage(Message jmsMessage) {
// ...
}
}
public class MyListener implements MessageListener {
public void onMessage(Message jmsMessage) {
// ...
}
}
from("file://foo/bar").
bean(MyListener.class);
from("file://foo/bar").
bean(MyListener.class);
MessageListener POJO に簡単に統合できます。
ActiveMQ 宛先オプションの使用 リンクのコピーリンクがクリップボードにコピーされました!
アドバイザリーメッセージの消費 リンクのコピーリンクがクリップボードにコピーされました!
コンポーネント JAR の取得 リンクのコピーリンクがクリップボードにコピーされました!
activemq-camel
<dependency> <groupId>org.apache.activemq</groupId> <artifactId>activemq-camel</artifactId> <version>_activemq-version_</version> </dependency>
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-camel</artifactId>
<version>_activemq-version_</version>
</dependency>
第3章 AHC リンクのコピーリンクがクリップボードにコピーされました!
Async Http Client (AHC)コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
pom.xml に以下の依存関係を追加する必要があります。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
ahc:http://hostname[:port][/resourceUri][?options] ahc:https://hostname[:port][/resourceUri][?options]
ahc:http://hostname[:port][/resourceUri][?options]
ahc:https://hostname[:port][/resourceUri][?options]
?option=value&option=value&.. の形式で追加できます。
AhcEndpoint オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | デフォルト値 | 説明 |
|---|---|---|
throwExceptionOnFailure
|
true
|
リモートサーバーからの応答に失敗した場合に AhcOperationFailedException を出力することを無効にするオプション。これにより、HTTP ステータスコードに関係なくすべての応答を取得できます。
|
bridgeEndpoint
|
false
|
オプションが true の場合、Exchange.HTTP_URI ヘッダーは無視され、リクエストにエンドポイントの URI を使用します。また、throwExcpetionOnFailure を false に設定して、AhcProducer がすべての障害応答を返信するようにすることもできます。 |
transferException
|
false
|
有効であり、エクスチェンジ がコンシューマー側で処理に失敗した場合、発生した 例外 が application/x-java-serialized-object コンテンツタイプとして応答でシリアライズされた場合は( Jetty または Servlet Camel コンポーネントを使用するなど)。プロデューサー側では、例外がデシリアライズされ、AhcOperationFailedException ではなくそのまま出力されます。原因となった例外はシリアライズする必要があります。
|
クライアント
|
null
|
カスタム com.ning.http.client.AsyncHttpClient を使用するには、以下を行います。
|
clientConfig
|
null
|
AsyncHttpClient がカスタム com.ning.http.client.AsyncHttpClientConfig を使用するように設定します。
|
clientConfig.x
|
null
|
エンドポイントによって使用される com.ning.http.client.AsyncHttpClientConfig インスタンスの追加プロパティーを設定します。このパラメーターを使用して設定された設定オプションは、clientConfig パラメーターまたはこのパラメーターを使用して設定されたプロパティーを持つコンポーネントレベルで設定されたインスタンスとマージされます。
|
clientConfig.realm.x
|
null
|
Camel 2.11: com.ning.http.client.AsyncHttpClientConfig のレルムプロパティーを設定するには、com.ning.http.client.Realm.RealmBuilder のオプションを使用できます。たとえば、スキームを設定するには clientConfig.realm.scheme=DIGEST を設定できます。
|
binding
|
null
|
カスタムの org.apache.camel.component.ahc.AhcBinding を使用します。
|
sslContextParameters
|
null
|
Camel 2.9: CAMEL:Registry の org.apache.camel.util.jsse.SSLContextParameters オブジェクトへの参照。この参照は、コンポーネントレベルで設定済みの SSLContextParameters を上書きします。 Security Guide および Using the JSSE Configuration Utility の Configuring Transport Security for Camel Components の章 を参照してください。 このオプションを設定すると、エンドポイントまたはコンポーネントレベルで clientConfig オプションを介して提供される SSL/TLS 設定オプションがすべて上書きされることに注意してください。
|
bufferSize
|
4096
|
Camel 2.10.3: Camel と AHC クライアント間でデータを転送する際に使用される初期インメモリーバッファーサイズ。 |
AhcComponent オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | デフォルト値 | 説明 |
|---|---|---|
クライアント
|
null
|
カスタム com.ning.http.client.AsyncHttpClient を使用するには、以下を行います。
|
clientConfig
|
null
|
AsyncHttpClients を設定するには、カスタムの com.ning.http.client.AsyncHttpClientConfig を使用します。
|
binding
|
null
|
カスタムの org.apache.camel.component.ahc.AhcBinding を使用します。
|
sslContextParameters
|
null
|
Camel 2.9: コンポーネントレベルでカスタム SSL/TLS 設定オプションを設定するには、以下を実行します。 詳細 は、Security Guide の Configuring Transport Security for Camel Components および Using the JSSE Configuration Utility を参照してください。 このオプションを設定すると、エンドポイントまたはコンポーネントレベルで clientConfig オプションを介して提供される SSL/TLS 設定オプションがすべて上書きされることに注意してください。 |
AhcComponent にオプションのいずれかを設定すると、これらのオプションが作成されている AhcEndpointに伝播されることに注意してください。ただし、AhcEndpoint はカスタムオプションを設定/上書きすることもできます。エンドポイントに設定されたオプションは常に AhcComponent のオプションよりも優先されます。
メッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | タイプ | 説明 |
|---|---|---|
Exchange.HTTP_URI
|
文字列
|
呼び出す URI。エンドポイントに設定された既存の URI を直接上書きします。 |
Exchange.HTTP_PATH
|
文字列
|
リクエスト URI のパス。ヘッダーは HTTP_URI でリクエスト URI を構築するために使用されます。パスが "/ で始まる場合、http プロデューサーは Exchange.HTTP_BASE_URI ヘッダーまたは exchange.getFromEndpoint ().getEndpointUri ();に基づいて相対パスの検索を試みます。
|
Exchange.HTTP_QUERY
|
文字列
|
URI パラメーター。エンドポイントで直接設定された既存の URI パラメーターを上書きします。 |
Exchange.HTTP_RESPONSE_CODE
|
int
|
外部サーバーからの HTTP 応答コード。OK の場合は 200 です。 |
Exchange.HTTP_CHARACTER_ENCODING
|
文字列
|
文字エンコーディング。 |
Exchange.CONTENT_TYPE
|
文字列
|
HTTP コンテンツタイプ。は IN メッセージと OUT メッセージの両方で設定され、text/html などのコンテンツタイプを提供します。
|
Exchange.CONTENT_ENCODING
|
文字列
|
HTTP コンテンツエンコーディング。は IN メッセージと OUT メッセージの両方で設定され、gzip などのコンテンツエンコーディングを提供します。
|
メッセージボディー リンクのコピーリンクがクリップボードにコピーされました!
レスポンスコード リンクのコピーリンクがクリップボードにコピーされました!
- レスポンスコードは 100..299 の範囲にあり、Camel は応答の成功と見なします。
- 応答コードは 300..399 の範囲にあり、Camel はこれをリダイレクト応答として認識し、その情報と共に
AhcOperationFailedExceptionを出力します。 - 応答コードは 400+ で、Camel はこれを外部サーバー障害とみなし、その情報と共に
AhcOperationFailedExceptionを出力します。オプションthrowExceptionOnFailureをfalseに設定すると、失敗した応答コードに対してAhcOperationFailedExceptionが出力されないようになります。これにより、リモートサーバーから応答を取得できるようになります。
AhcOperationFailedException リンクのコピーリンクがクリップボードにコピーされました!
- HTTP ステータスコード
- HTTP ステータス行 (ステータスコードのテキスト)
- サーバーがリダイレクトを返した場合は、場所をリダイレクトします
- 応答ボディー(
java.lang.String) (サーバーがボディーを応答として提供)
GET または POST を使用した呼び出し リンクのコピーリンクがクリップボードにコピーされました!
GET または POST HTTP メソッドのいずれかを使用する必要があるかどうかを判断するために使用されます:1。ヘッダーで提供されるメソッドを使用します。2.クエリー文字列がヘッダーで提供される場合は GET。3.エンドポイントがクエリー文字列で設定されている場合の GET。4.送信するデータがある場合は POST します(null ではありません)。5.それ以外の場合は GET。
呼び出す URI の設定 リンクのコピーリンクがクリップボードにコピーされました!
oldhost に呼び出します。
from("direct:start")
.to("ahc:http://oldhost");
from("direct:start")
.to("ahc:http://oldhost");
Exchange.HTTP_URI でヘッダーを追加することで、HTTP エンドポイント URI を上書きできます。
from("direct:start")
.setHeader(Exchange.HTTP_URI, constant("http://newhost"))
.to("ahc:http://oldhost");
from("direct:start")
.setHeader(Exchange.HTTP_URI, constant("http://newhost"))
.to("ahc:http://oldhost");
URI パラメーターの設定 リンクのコピーリンクがクリップボードにコピーされました!
Exchange.HTTP_QUERY を持つヘッダーとして設定できます。
from("direct:start")
.to("ahc:http://oldhost?order=123&detail=short");
from("direct:start")
.to("ahc:http://oldhost?order=123&detail=short");
from("direct:start")
.setHeader(Exchange.HTTP_QUERY, constant("order=123&detail=short"))
.to("ahc:http://oldhost");
from("direct:start")
.setHeader(Exchange.HTTP_QUERY, constant("order=123&detail=short"))
.to("ahc:http://oldhost");
http メソッド(GET/POST/PUT/DELETE/HEAD/OPTIONS/TRACE)を HTTP プロデューサーに設定する方法 リンクのコピーリンクがクリップボードにコピーされました!
from("direct:start")
.setHeader(Exchange.HTTP_METHOD, constant("POST"))
.to("ahc:http://www.google.com")
.to("mock:results");
from("direct:start")
.setHeader(Exchange.HTTP_METHOD, constant("POST"))
.to("ahc:http://www.google.com")
.to("mock:results");
charset の設定 リンクのコピーリンクがクリップボードにコピーされました!
POST を使用してデータを送信する場合は、Exchange プロパティーを使用して charset を設定できます。
exchange.setProperty(Exchange.CHARSET_NAME, "iso-8859-1");
exchange.setProperty(Exchange.CHARSET_NAME, "iso-8859-1");
エンドポイント URI からの URI パラメーター リンクのコピーリンクがクリップボードにコピーされました!
& amp; 文字をセパレーターとして使用して設定できます。この場合、Camel は複雑ではありません。
// we query for Camel at the Google page
template.sendBody("ahc:http://www.google.com/search?q=Camel", null);
// we query for Camel at the Google page
template.sendBody("ahc:http://www.google.com/search?q=Camel", null);
メッセージの URI パラメーター リンクのコピーリンクがクリップボードにコピーされました!
Map headers = new HashMap();
headers.put(Exchange.HTTP_QUERY, "q=Camel&lr=lang_en");
// we query for Camel and English language at Google
template.sendBody("ahc:http://www.google.com/search", null, headers);
Map headers = new HashMap();
headers.put(Exchange.HTTP_QUERY, "q=Camel&lr=lang_en");
// we query for Camel and English language at Google
template.sendBody("ahc:http://www.google.com/search", null, headers);
? を付け ず、通常 & amp; 文字でパラメーターを分離することができることに注意してください。
レスポンスコードの取得 リンクのコピーリンクがクリップボードにコピーされました!
Exchange.HTTP_RESPONSE_CODE で Out メッセージヘッダーから値を取得します。
AsyncHttpClient の設定 リンクのコピーリンクがクリップボードにコピーされました!
AsyncHttpClient クライアントは AsyncHttpClientConfig を使用してクライアントを設定します。詳細は、Async Http Client のドキュメントを参照してください。
AhcComponent で設定する AsyncHttpClientConfig を作成する方法を示しています。
AsyncHttpClientConfig クラスは、 AsyncHttpClientConfig で利用可能な設定オプションの getter および setter を提供します。AsyncHttpClientConfigBean のインスタンスは AHC コンポーネントに直接渡すか、clientConfig URI パラメーターを使用してエンドポイント URI で参照できます。
AsyncHttpClientConfig のさまざまな設定可能なプロパティーを設定できます。エンドポイント URI で指定されるプロパティーは、clientConfig URI パラメーターによって参照される設定で指定された値とマージされ、clientConfig. パラメーターが優先されるように設定されます。1 つのエンドポイントの設定に依存しないように、参照される AsyncHttpClientConfig インスタンスは常にエンドポイントごとにコピーされ、以前に作成されたエンドポイントの設定とは関係ありません。以下の例は、clientConfig. タイプの URI パラメーターを使用して AHC コンポーネントを設定する方法を示しています。
from("direct:start")
.to("ahc:http://localhost:8080/foo?clientConfig.maxRequestRetry=3&clientConfig.followRedirects=true")
from("direct:start")
.to("ahc:http://localhost:8080/foo?clientConfig.maxRequestRetry=3&clientConfig.followRedirects=true")
関連項目 リンクのコピーリンクがクリップボードにコピーされました!
第4章 AHC-WS リンクのコピーリンクがクリップボードにコピーされました!
Async Http Client (AHC) Websocket クライアントコンポーネント リンクのコピーリンクがクリップボードにコピーされました!
pom.xml に追加する必要があります。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
ahc-ws://hostname[:port][/resourceUri][?options] ahc-wss://hostname[:port][/resourceUri][?options]
ahc-ws://hostname[:port][/resourceUri][?options]
ahc-wss://hostname[:port][/resourceUri][?options]
AHC-WS オプション リンクのコピーリンクがクリップボードにコピーされました!
Websocket でのデータの書き込みと読み取り リンクのコピーリンクがクリップボードにコピーされました!
データの書き込みまたは読み取りのための URI の設定 リンクのコピーリンクがクリップボードにコピーされました!
from("direct:start")
.to("ahc-ws://targethost");
from("direct:start")
.to("ahc-ws://targethost");
from("ahc-ws://targethost")
.to("direct:next");
from("ahc-ws://targethost")
.to("direct:next");
第5章 AMQP リンクのコピーリンクがクリップボードにコピーされました!
AMQP リンクのコピーリンクがクリップボードにコピーされました!
pom.xml に以下の依存関係を追加する必要があります。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
amqp:[queue:|topic:]destinationName[?options]
amqp:[queue:|topic:]destinationName[?options]
AMQP オプション リンクのコピーリンクがクリップボードにコピーされました!
使用方法 リンクのコピーリンクがクリップボードにコピーされました!
AMQP コンポーネントの設定 リンクのコピーリンクがクリップボードにコピーされました!
AMQPComponent#amqp10Component(String connectionURI) ファクトリーメソッドを使用して、事前設定されたトピック接頭辞で AMQP 1.0 コンポーネントを返すこともできます。
AMQPComponent amqp = AMQPComponent.amqp10Component("amqp://guest:guest@localhost:5672");
AMQPComponent amqp = AMQPComponent.amqp10Component("amqp://guest:guest@localhost:5672");
AMQPComponent#amqp10Component(String connectionURI) は AMQPComponent#amqpComponent(String connectionURI) の代わりに ファクトリーメソッドが非推奨になりました。
AMQPComponent amqp = AMQPComponent.amqpComponent("amqp://localhost:5672");
AMQPComponent authorizedAmqp = AMQPComponent.amqpComponent("amqp://localhost:5672", "user", "password");
AMQPComponent amqp = AMQPComponent.amqpComponent("amqp://localhost:5672");
AMQPComponent authorizedAmqp = AMQPComponent.amqpComponent("amqp://localhost:5672", "user", "password");
org.apache.camel.component.amqp.AMQPConnectionDetails のインスタンスをレジストリーに追加することもできます。たとえば、Spring Boot の場合、Bean を定義する必要があります。
AMQPConnectionDetails.discoverAMQP() は、以下のスニペットが示すように、Kubernetes のような慣例で Camel プロパティーの読み取りを試みます。
トピックの使用 リンクのコピーリンクがクリップボードにコピーされました!
camel-amqp と連携するトピックを使用するには、以下のように topic:// をトピック接頭辞として使用するようコンポーネントを設定する必要があります。
AMQPComponent#amqpComponent() メソッドと AMQPConnectionDetails の両方で、トピック接頭辞でコンポーネントを事前に設定するため、明示的に設定する必要はありません。
第6章 APNS リンクのコピーリンクがクリップボードにコピーされました!
APN コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
pom.xml に以下の依存関係を追加する必要があります。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
apns:notify[?options]
apns:notify[?options]
apns:consumer[?options]
apns:consumer[?options]
オプション リンクのコピーリンクがクリップボードにコピーされました!
プロデューサー リンクのコピーリンクがクリップボードにコピーされました!
| プロパティー | デフォルト | 説明 |
|---|---|---|
トークン
|
デフォルトでは空です。通知するデバイスに関連するトークンを静的に宣言する場合は、このプロパティーを設定します。トークンはコンマで区切ります。 |
コンシューマー リンクのコピーリンクがクリップボードにコピーされました!
| プロパティー | デフォルト | 説明 |
|---|---|---|
delay
|
3600
|
各ポーリング間の遅延(秒単位)。 |
initialDelay
|
10
|
ポーリングが開始されるまでの秒数。 |
timeUnit
|
SECONDS
|
ポーリングの時間単位。 |
userFixedDelay
|
true
|
true の場合は、プール間の固定遅延を使用します。そうでない場合は、固定レートが使用されます。詳細は、JDK の ScheduledExecutorService を参照してください。
|
?option=value&option=value&.. の形式で追加できます。
コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
ApnsComponent は com.notnoop.apns.ApnsService で設定する必要があります。このサービスは、org.apache.camel.component.apns.factory.ApnsServiceFactory を使用して作成および設定できます。例については、以下を参照してください。詳細は、テストソースコード を参照してください。
エクスチェンジデータ形式 リンクのコピーリンクがクリップボードにコピーされました!
メッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| プロパティー | デフォルト | 説明 |
|---|---|---|
CamelApnsTokens
|
デフォルトでは空です。 | |
CamelApnsMessageType
|
文字列、ペイロード、APNS_NOTIFICATION
|
メッセージタイプとして PAYLOAD を選択すると、メッセージは APNS ペイロードと見なされ、そのまま送信されます。STRING を選択すると、メッセージは APNS ペイロードに変換されます。APNS_NOTIFICATION は、メッセージボディーを com.notnoop.apns.ApnsNotification タイプとして送信するために使用されます。
|
ApnsServiceFactory Builder コールバック リンクのコピーリンクがクリップボードにコピーされました!
ApnsServiceFactory には、デフォルトの ApnsServiceBuilder インスタンスの設定または置き換えに使用できる空のコールバックメソッドが含まれています。メソッドの形式は以下のとおりです。
protected ApnsServiceBuilder configureServiceBuilder(ApnsServiceBuilder serviceBuilder);
protected ApnsServiceBuilder configureServiceBuilder(ApnsServiceBuilder serviceBuilder);
サンプル リンクのコピーリンクがクリップボードにコピーされました!
Camel Xml ルート リンクのコピーリンクがクリップボードにコピーされました!
Camel Java ルート リンクのコピーリンクがクリップボードにコピーされました!
camel コンテキストを作成し、プログラムで apns コンポーネントを宣言します。 リンクのコピーリンクがクリップボードにコピーされました!
ApnsProducer - iOS ターゲットデバイスがヘッダー経由で動的に設定された "CamelApnsTokens" リンクのコピーリンクがクリップボードにコピーされました!
ApnsProducer - iOS ターゲットデバイスが URI 経由で静的に設定される リンクのコピーリンクがクリップボードにコピーされました!
ApnsConsumer リンクのコピーリンクがクリップボードにコピーされました!
from("apns:consumer?initialDelay=10&delay=3600&timeUnit=SECONDS")
.to("log:com.apache.camel.component.apns?showAll=true&multiline=true")
.to("mock:result");
from("apns:consumer?initialDelay=10&delay=3600&timeUnit=SECONDS")
.to("log:com.apache.camel.component.apns?showAll=true&multiline=true")
.to("mock:result");
関連項目 リンクのコピーリンクがクリップボードにコピーされました!
第7章 Atmosphere-Websocket リンクのコピーリンクがクリップボードにコピーされました!
Atmosphere Websocket Servlet コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
pom.xml に追加する必要があります。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
atmosphere-websocket:///relative path[?options]
atmosphere-websocket:///relative path[?options]
Websocket でのデータの読み取りと書き込み リンクのコピーリンクがクリップボードにコピーされました!
データの読み取り/書き込みのための URI の設定 リンクのコピーリンクがクリップボードにコピーされました!
from("atmosphere-websocket:///servicepath")
.to("direct:next");
from("atmosphere-websocket:///servicepath")
.to("direct:next");
from("direct:next")
.to("atmosphere-websocket:///servicepath");
from("direct:next")
.to("atmosphere-websocket:///servicepath");
第8章 Atom リンクのコピーリンクがクリップボードにコピーされました!
Atom コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
pom.xml に以下の依存関係を追加する必要があります。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
atom://atomUri[?options]
atom://atomUri[?options]
オプション リンクのコピーリンクがクリップボードにコピーされました!
| プロパティー | デフォルト | 説明 |
|---|---|---|
splitEntries
|
true
|
true の場合、Apache Camel はフィードをポーリングし、後続のポーリングではポーリングごとに各エントリーが返されます。フィードに 7 エントリーが含まれる場合、Apache Camel は最初のポーリングの最初のエントリー(次のポーリング上の 2 番目のエントリー)を返します。Apache Camel はフィードで新しい更新を行うエントリーがありません。false の場合、Apache Camel は呼び出しごとに新しいフィードをポーリングします。
|
filter
|
true
|
は、エントリーを返すようにフィルターするために分割されたエントリーでのみ使用されます。Apache Camel はデフォルトで、フィードから新しいエントリーのみを返す UpdateDateFilter を使用します。したがって、フィードから消費するクライアントは、同じエントリーを複数回受け取ることはありません。フィルターは最新の最後のエントリーを返します。
|
lastUpdate
|
null
|
選択開始タイムスタンプとしてフィルターによってのみ使用されます( entry.updated タイムスタンプを使用します)。構文の形式は yyyy-MM-ddTHH:MM:ss です。例: 2007-12-24T17:45:59
|
throttleEntries
|
true
|
camel 2.5: 単一のフィードポーリングで特定されたすべてのエントリーを即座に配信するかどうかを設定します。true の場合、consumer.delay ごとに 1 つのエントリーのみが処理されます。splitEntries が true に設定されている場合にのみ適用されます。
|
feedHeader
|
true
|
Abdera Feed オブジェクトをヘッダーとして追加するかどうかを設定します。 |
sortEntries
|
false
|
splitEntries が true の場合、これらのエントリーを更新された日付でソートするかどうかを設定します。
|
consumer.delay
|
500
|
各ポーリングの遅延(ミリ秒単位)。 |
consumer.initialDelay
|
1000
|
ポーリングを開始する前にミリス。 |
consumer.userFixedDelay
|
false
|
true の場合は、プール間の固定遅延を使用します。そうでない場合は、固定レートが使用されます。詳細は、JDK の ScheduledExecutorService を参照してください。
|
username
|
HTTP フィードからポーリングする場合の基本認証の場合。 | |
password
|
HTTP フィードからポーリングする場合の基本認証の場合。 |
?option=value&option=value&.. の形式で追加できます。
Camel on EAP デプロイメント リンクのコピーリンクがクリップボードにコピーされました!
エクスチェンジデータ形式 リンクのコピーリンクがクリップボードにコピーされました!
エクスチェンジ に In ボディーを設定します。splitEntries フラグに応じて、Apache Camel は Entry または List<Entry> を返します。
| オプション | 値 | 動作 |
|---|---|---|
splitEntries
|
true
|
現在処理中のフィードからのエントリーを 1 つだけ設定します: exchange.in.body (Entry)
|
splitEntries
|
false
|
フィードのエントリー一覧全体が設定されます: exchange.in.body (List<Entry>)
|
Feed オブジェクトを設定できます( feedHeader オプションを参照)。これを無効にします。
メッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| ヘッダー | 説明 |
|---|---|
CamelAtomFeed
|
Apache Camel 2.0: org.apache.abdera.model.Feed オブジェクトを使用する場合は、このヘッダーに設定されます。
|
サンプル リンクのコピーリンクがクリップボードにコピーされました!
from("atom://http://macstrac.blogspot.com/feeds/posts/default").to("seda:feeds");
from("atom://http://macstrac.blogspot.com/feeds/posts/default").to("seda:feeds");
第9章 avro リンクのコピーリンクがクリップボードにコピーされました!
Avro コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
pom.xml に以下の依存関係を追加する必要があります。
Apache Avro の概要 リンクのコピーリンクがクリップボードにコピーされました!
Avro データフォーマットの使用 リンクのコピーリンクがクリップボードにコピーされました!
Camel での Avro RPC の使用 リンクのコピーリンクがクリップボードにコピーされました!
avro:[transport]:[host]:[port][?options]
avro:[transport]:[host]:[port][?options]
avro:[transport]:[host]:[port][/messageName][?options]
avro:[transport]:[host]:[port][/messageName][?options]
singleParameter URI オプションを使用して、配列のラッピングなしで in メッセージボディーでダーティーとして受信できます。
Avro RPC URI オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | バージョン | 説明 |
|---|---|---|
protocolClassName
|
avro プロトコルのクラス名。 | |
singleParameter
|
2.12 | true の場合、consumer パラメーターは配列にラップされません。プロトコルがメッセージに対してさらにパラメーターを指定すると失敗する |
protocol
|
Avro Procol オブジェクト。複雑なプロトコルを作成する必要がある場合に、protocolClassName の代わりに使用できます。#name 表記を使用してレジストリーから Bean を参照できます。
|
|
reflectionProtocol
|
2.12 |
指定されたプロトコルオブジェクトがリフレクションプロトコルである場合。protocolClassName プロトコルタイプは自動検出されるため、protocol パラメーターでのみ使用する必要があります。
|
Avro RPC ヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 説明 |
|---|---|
CamelAvroMessageName
|
送信するメッセージの名前。コンシューマーによる URI からのメッセージ名の上書き(存在する場合) |
例 リンクのコピーリンクがクリップボードにコピーされました!
<route>
<from uri="direct:start"/>
<to uri="avro:http:localhost:{{avroport}}?protocolClassName=org.apache.camel.avro.generated.KeyValueProtocol"/>
<to uri="log:avro"/>
</route>
<route>
<from uri="direct:start"/>
<to uri="avro:http:localhost:{{avroport}}?protocolClassName=org.apache.camel.avro.generated.KeyValueProtocol"/>
<to uri="log:avro"/>
</route>
CamelAvroMessageName ヘッダーを入力する必要があります。2.12 以降、以下の構文を使用して定数メッセージを呼び出すことができます。
singleParameter が使用され、getProcessor はボディーで Value クラスを直接受信しますが、putProcessor は String キーと Value 値が配列の内容として入力されるサイズ 2 の配列を受け取ります。
第10章 AWS リンクのコピーリンクがクリップボードにコピーされました!
10.1. AWS コンポーネントの概要 リンクのコピーリンクがクリップボードにコピーされました!
Amazon Web Services の Camel コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
| AWS サービス | Camel コンポーネント | Camel バージョン | コンポーネントの説明 |
|---|---|---|---|
| Simple Queue Service (SQS) | AWS-SQS | 2.6 | SQS を使用したメッセージの送受信をサポートします。 |
| Simple Notification Service (SNS) | AWS-SNS | 2.8 | SNS を使用したメッセージの送信をサポートします。 |
| Simple Storage Service (S3) | AWS-S3 | 2.8 | S3 を使用したオブジェクトの保存および取得をサポートします。 |
| Simple Email Service (SES) | AWS-SES | 2.8.4 | SES を使用したメールの送信をサポートします。 |
| SimpleDB | AWS-SDB | 2.8.4 | SDB との間でデータの取得をサポートします。 |
| DynamoDB | AWS-DDB | 2.10.0 | DDB との間でデータの取得をサポートします。 |
| CloudWatch | AWS-CW | 2.10.3 | CloudWatch へのメトリクスの送信をサポートします。 |
| シンプルなワークフロー | AWS-SWF | 2.13.0 | SWF を使用したワークフローの管理をサポートします。 |
| EC2 | AWS-EC2 | 2.16.0 | EC2 インスタンスの作成、実行、開始、停止、説明、および終了するための AWS EC2 プラットフォームへのメッセージの送信をサポートします。 |
| Kinesis Streams | AWS-Kinesis | 2.17.0 | AWS Kinesis からの受信をサポートします。 |
| DynamoDB Streams | AWS-DDBSTREAM | 2.17.0 | DynamoDB Streams からの受信をサポートします。 |
10.2. AWS-CW リンクのコピーリンクがクリップボードにコピーされました!
CW コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
aws-cw://namespace[?options]
aws-cw://namespace[?options]
?options=value&option2=value&.. の形式で追加できます。
URI オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | デフォルト値 | コンテキスト | 説明 |
|---|---|---|---|
amazonCwClient
|
null
|
プロデューサー |
レジストリーの com.amazonaws.services.cloudwatch.AmazonCloudWatch への参照。
|
accessKey
|
null
|
プロデューサー | Amazon AWS Access Key |
secretKey
|
null
|
プロデューサー | Amazon AWS Secret Key |
name
|
null
|
プロデューサー | メッセージヘッダー 'CamelAwsCwMetricName' が存在しない場合に使用されるメトリクス名。 |
value
|
1.0
|
プロデューサー | メッセージヘッダー 'CamelAwsCwMetricValue' が存在しない場合に使用されるメトリック値。 |
unit
|
Count
|
プロデューサー | メッセージヘッダー 'CamelAwsCwMetricUnit' が存在しない場合に使用されるメトリクスユニット。 |
namespace
|
null
|
プロデューサー | メッセージヘッダー 'CamelAwsCwMetricNamespace' が存在しない場合に使用されるメトリック名前空間。 |
timestamp
|
null
|
プロデューサー | メッセージヘッダー 'CamelAwsCwMetricTimestamp' が存在しない場合に使用されるメトリクスのタイムスタンプ。 |
amazonCwEndpoint
|
null
|
プロデューサー | AWS-CW クライアントが操作するリージョン。 |
proxyHost
|
null
|
プロデューサー | クライアント定義内で使用されるプロキシーホストを指定します。 |
proxyPort
|
null
|
プロデューサー | クライアント定義内で使用されるプロキシーポートを指定します。 |
使用方法 リンクのコピーリンクがクリップボードにコピーされました!
CW プロデューサーによって評価されるメッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| ヘッダー | タイプ | 説明 |
|---|---|---|
CamelAwsCwMetricName
|
文字列
|
Amazon CW メトリクス名。 |
CamelAwsCwMetricValue
|
double
|
Amazon CW メトリクス値。 |
CamelAwsCwMetricUnit
|
文字列
|
Amazon CW メトリクスユニット。 |
CamelAwsCwMetricNamespace
|
文字列
|
Amazon CW メトリクス namespace。 |
CamelAwsCwMetricTimestamp
|
日付
|
Amazon CW メトリクスのタイムスタンプ。 |
CamelAwsCwMetricDimensionName
|
文字列
|
Camel 2.12: Amazon CW メトリクスディメンションの名前。 |
CamelAwsCwMetricDimensionValue
|
文字列
|
Camel 2.12: Amazon CW metric dimension の値。 |
CamelAwsCwMetricDimensions
|
Map<String, String>
|
Camel 2.12: ディメンション名とディメンション値のマッピング。 |
Advanced AmazonCloudWatch configuration リンクのコピーリンクがクリップボードにコピーされました!
AmazonCloudWatch インスタンス設定をさらに制御する必要がある場合は、独自のインスタンスを作成して、URI から参照することができます。
from("direct:start")
.to("aws-cw://namepsace?amazonCwClient=#client");
from("direct:start")
.to("aws-cw://namepsace?amazonCwClient=#client");
#client はレジストリー内の AmazonCloudWatch を参照します。
Dependencies リンクのコピーリンクがクリップボードにコピーされました!
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-aws</artifactId>
<version>${camel-version}</version>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-aws</artifactId>
<version>${camel-version}</version>
</dependency>
${camel-version} は、実際のバージョンの Camel (2.10 以降)に置き換える必要があります。
10.3. AWS-DDB リンクのコピーリンクがクリップボードにコピーされました!
DDB コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
aws-ddb://domainName[?options]
aws-ddb://domainName[?options]
URI オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | デフォルト値 | コンテキスト | 説明 |
|---|---|---|---|
amazonDDBClient
|
null
|
プロデューサー |
レジストリーの com.amazonaws.services.dynamodb.AmazonDynamoDB への参照。
|
accessKey
|
null
|
プロデューサー | Amazon AWS Access Key |
secretKey
|
null
|
プロデューサー | Amazon AWS Secret Key |
amazonDdbEndpoint
|
null
|
プロデューサー | AWS-DDB クライアントが動作するリージョン。 |
tableName
|
null
|
プロデューサー | 現在操作しているテーブルの名前。 |
readCapacity
|
0
|
プロデューサー | テーブルからリソースを読み取るために予約するプロビジョニングされたスループット |
writeCapacity
|
0
|
プロデューサー | テーブルにリソースを書き込むために予約するプロビジョニングされたスループット。 |
consistentRead
|
false
|
プロデューサー | データの読み取り時に強力な整合性を適用するべきかどうかを決定します。 |
operation
|
PutAttributes
|
プロデューサー | 有効な値は BatchGetItems、DeleteItem、DeleteTable、DescribeTable、GetItem、PutItem、Query、Scan Scan、UpdateItem、UpdateTable です。 |
proxyHost
|
null
|
プロデューサー | クライアント定義内で使用されるプロキシーホストを指定します。 |
proxyPort
|
null
|
プロデューサー | クライアント定義内で使用されるプロキシーポートを指定します。 |
使用方法 リンクのコピーリンクがクリップボードにコピーされました!
DDB プロデューサーによって評価されるメッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| ヘッダー | タイプ | 説明 |
|---|---|---|
CamelAwsDdbBatchItems
|
Map<String, KeysAndAttributes>
|
プライマリーキーによって取得するテーブル名と対応する項目のマップ。 |
CamelAwsDdbTableName
|
文字列
|
この操作のテーブル名。 |
CamelAwsDdbKey
|
Map<String, AttributeValue>
|
テーブル内の各項目を一意に識別するプライマリーキー。 |
CamelAwsDdbReturnValues
|
文字列
|
変更前または変更後の属性の名前および値のペアを取得する場合は、このパラメーターを使用します (NONE、ALL_OLD、UPDATED_OLD、ALL_NEW、UPDATED_NEW)。 |
CamelAwsDdbUpdateCondition
|
Map<String, ExpectedAttributeValue>
|
条件変更の属性を指定します。 |
CamelAwsDdbAttributeNames
|
Collection<String>
|
属性名が指定されていない場合、すべての属性が返されます。 |
CamelAwsDdbConsistentRead
|
ブール値
|
true に設定すると、一貫性のある読み取りが発行されます。それ以外の場合は、最終的に一貫性が使用されます。 |
CamelAwsDdbItem
|
Map<String, AttributeValue>
|
アイテムの属性のマップ。アイテムを定義するプライマリーキー値を含める必要があります。 |
CamelAwsDdbKeyConditions
|
Map<String, Condition>
|
このヘッダーはクエリーの選択基準を指定し、CamelAwsDdbHashKeyValue と CamelAwsDdbScanRangeKeyConditionの 2 つの古いヘッダーをマージします。 |
CamelAwsDdbStartKey
|
キー
|
以前のクエリーを続行するアイテムのプライマリーキー。 |
CamelAwsDdbLimit
|
整数
|
返すアイテムの最大数。 |
CamelAwsDdbScanIndexForward
|
ブール値
|
インデックスの順方向または逆方向のトラバーサルを指定します。 |
CamelAwsDdbScanFilter
|
Map<String, Condition>
|
スキャン結果を評価し、目的の値のみを返します。 |
CamelAwsDdbUpdateValues
|
Map<String, AttributeValueUpdate>
|
更新の新しい値とアクションへの属性名のマップ。 |
BatchGetItems 操作中に設定されたメッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| ヘッダー | タイプ | 説明 |
|---|---|---|
CamelAwsDdbBatchResponse
|
Map<String,BatchResponse>
|
テーブル名およびテーブルの各項目属性。 |
CamelAwsDdbUnprocessedKeys
|
Map<String,KeysAndAttributes>
|
テーブルのマップと、現在の応答で処理されなかった対応するキーが含まれます。 |
DeleteItem 操作時に設定されたメッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| ヘッダー | タイプ | 説明 |
|---|---|---|
CamelAwsDdbAttributes
|
Map<String, AttributeValue>
|
操作によって返される属性の一覧。 |
DeleteTable 操作時に設定されたメッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| ヘッダー | タイプ | 説明 |
|---|---|---|
CamelAwsDdbProvisionedThroughput
|
ProvisionedThroughputDescription
|
このテーブルの ProvisionedThroughput プロパティーの値 |
CamelAwsDdbCreationDate
|
日付
|
このテーブルの DateTime の作成。 |
CamelAwsDdbTableItemCount
|
Long
|
このテーブルのアイテム数。 |
CamelAwsDdbKeySchema
|
List<KeySchemaElement>
|
このテーブルのプライマリーキーを識別する KeySchema。 |
CamelAwsDdbTableName
|
文字列
|
テーブル名。 |
CamelAwsDdbTableSize
|
Long
|
テーブルサイズ(バイト単位)。 |
CamelAwsDdbTableStatus
|
文字列
|
テーブルのステータス: CREATING、UPDATING、DELETING、ACTIVE |
DescribeTable 操作中に設定されたメッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| ヘッダー | タイプ | 説明 |
|---|---|---|
CamelAwsDdbProvisionedThroughput
|
ProvisionedThroughputDescription
|
このテーブルの ProvisionedThroughput プロパティーの値 |
CamelAwsDdbCreationDate
|
日付
|
このテーブルの DateTime の作成。 |
CamelAwsDdbTableItemCount
|
Long
|
このテーブルのアイテム数。 |
CamelAwsDdbKeySchema
|
List<KeySchemaElement>
|
このテーブルのプライマリーキーを識別する KeySchema。 |
CamelAwsDdbTableName
|
文字列
|
テーブル名。 |
CamelAwsDdbTableSize
|
Long
|
テーブルサイズ(バイト単位)。 |
CamelAwsDdbTableStatus
|
文字列
|
テーブルのステータス: CREATING、UPDATING、DELETING、ACTIVE |
CamelAwsDdbReadCapacity
|
Long
|
このテーブルの ReadCapacityUnits プロパティー。 |
CamelAwsDdbWriteCapacity
|
Long
|
このテーブルの WriteCapacityUnits プロパティー。 |
GetItem 操作時に設定されたメッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| ヘッダー | タイプ | 説明 |
|---|---|---|
CamelAwsDdbAttributes
|
Map<String, AttributeValue>
|
操作によって返される属性の一覧。 |
PutItem 操作中に設定されたメッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| ヘッダー | タイプ | 説明 |
|---|---|---|
CamelAwsDdbAttributes
|
Map<String, AttributeValue>
|
操作によって返される属性の一覧。 |
Query 操作時に設定されたメッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| ヘッダー | タイプ | 説明 |
|---|---|---|
CamelAwsDdbItems
|
List<java.util.Map<String,AttributeValue>>
|
操作によって返される属性の一覧。 |
CamelAwsDdbLastEvaluatedKey
|
キー
|
前の結果セットを含む、クエリー操作が停止した項目のプライマリーキー。 |
CamelAwsDdbConsumedCapacity
|
double
|
操作中に消費された、テーブルのプロビジョニングされたスループットのキャパシティーユニットの数。 |
CamelAwsDdbCount
|
整数
|
応答のアイテム数。 |
Scan 操作時に設定されたメッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| ヘッダー | タイプ | 説明 |
|---|---|---|
CamelAwsDdbItems
|
List<java.util.Map<String,AttributeValue>>
|
操作によって返される属性の一覧。 |
CamelAwsDdbLastEvaluatedKey
|
キー
|
前の結果セットを含む、クエリー操作が停止した項目のプライマリーキー。 |
CamelAwsDdbConsumedCapacity
|
double
|
操作中に消費された、テーブルのプロビジョニングされたスループットのキャパシティーユニットの数。 |
CamelAwsDdbCount
|
整数
|
応答のアイテム数。 |
CamelAwsDdbScannedCount
|
整数
|
フィルターが適用される前の完全なスキャン内のアイテムの数。 |
UpdateItem 操作時に設定されたメッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| ヘッダー | タイプ | 説明 |
|---|---|---|
CamelAwsDdbAttributes
|
Map<String, AttributeValue>
|
操作によって返される属性の一覧。 |
高度な AmazonDynamoDB 設定 リンクのコピーリンクがクリップボードにコピーされました!
AmazonDynamoDB インスタンス設定をさらに制御する必要がある場合は、独自のインスタンスを作成し、URI から参照できます。
from("direct:start")
.to("aws-ddb://domainName?amazonDDBClient=#client");
from("direct:start")
.to("aws-ddb://domainName?amazonDDBClient=#client");
#client は、レジストリー内の AmazonDynamoDB を参照します。
Dependencies リンクのコピーリンクがクリップボードにコピーされました!
${camel-version} は、実際のバージョンの Camel (2.10 以降)に置き換える必要があります。
10.4. AWS-DDBSTREAM リンクのコピーリンクがクリップボードにコピーされました!
DynamoDB ストリームコンポーネント リンクのコピーリンクがクリップボードにコピーされました!
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
aws-ddbstream://table-name[?options]
aws-ddbstream://table-name[?options]
URI オプション リンクのコピーリンクがクリップボードにコピーされました!
|
名前
|
デフォルト値
|
コンテキスト
|
説明
|
|---|---|---|---|
| amazonDynamoDbStreamsClient |
null
|
コンシューマー |
レジストリーで com.amazonaws.services.kinesis.AmazonDynamoDBStreams への参照。
|
| maxMessagesPerPoll |
100
|
コンシューマー | 各ポーリングで AWS API に返される最大結果。シャードイテレーターがコンシューマーに固有であり、他のコンシューマーに影響を与えないことを示します。 |
| iteratorType |
LATEST
|
コンシューマー |
trim_horizon、latest、after_sequence_number、または at_sequence_number のいずれか。これら 2 つのイテレータータイプの説明は、http://docs.aws.amazon.com/dynamodbstreams/latest/APIReference/API_GetShardIterator.html を参照してください。
|
| sequenceNumberProvider | null | コンシューマー |
org.apache.camel.component.aws.ddbstream.SequenceNumberProvider の実装またはシーケンス番号を表すリテラル文字列への Bean 参照。このロールは、after_sequence_number または at_sequence_number イテレータータイプのいずれかを使用する際にストリームの開始場所を決定することです。
|
シーケンス番号 リンクのコピーリンクがクリップボードにコピーされました!
バッチコンシューマー リンクのコピーリンクがクリップボードにコピーされました!
AmazonDynamoDBStreamsClient configuration リンクのコピーリンクがクリップボードにコピーされました!
AWS 認証情報の指定 リンクのコピーリンクがクリップボードにコピーされました!
Downtime のコッピング リンクのコピーリンクがクリップボードにコピーされました!
- AWS DynamoDB Streams の 24 時間未満の停止
- コンシューマーは( CAMEL-9515に実装されているように)最後に見られたシーケンス番号から再開するため、停止に DynamoDB 自体も含まれていない限り、高速にイベントのフラッディングを受け取る必要があります。
- AWS DynamoDB Streams の 24 時間以上停止
- AWS は 24 時間の変更のみを保持するため、どのような軽減策がある場合でも、変更イベントを見逃すことができます。
Dependencies リンクのコピーリンクがクリップボードにコピーされました!
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-aws</artifactId>
<version>${camel-version}</version>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-aws</artifactId>
<version>${camel-version}</version>
</dependency>
${camel-version} は実際のバージョンの Camel (2.7 以降)に置き換える必要があります。
10.5. AWS-EC2 リンクのコピーリンクがクリップボードにコピーされました!
EC2 コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
aws-ec2://label[?options]
aws-ec2://label[?options]
URI オプション リンクのコピーリンクがクリップボードにコピーされました!
|
名前
|
デフォルト値
|
コンテキスト
|
説明
|
|---|---|---|---|
|
amazonEc2Client
|
null
|
プロデューサー
|
レジストリーの com.amazonaws.services.ec2.AmazonEC2Client への参照。
|
|
accessKey
|
null
|
プロデューサー
|
Amazon AWS Access Key
|
|
secretKey
|
null
|
プロデューサー
|
Amazon AWS Secret Key
|
|
amazonEc2Endpoint
|
null
|
プロデューサー
|
AWS-EC2 クライアントが操作するリージョン。
|
|
operation
|
null
|
プロデューサー
|
有効な値は、createAndRunInstances、startInstances、stopInstances、exitInstances、describeInstancesStatus、rebootInstances、monitorInstances、および unmonitorInstances です。
|
|
proxyHost
|
null
|
プロデューサー
|
Camel 2.16: クライアント定義内で使用されるプロキシーホストを指定します。
|
|
proxyPort
|
null
|
プロデューサー
|
Camel 2.16: クライアント定義内で使用されるプロキシーポートを指定します。
|
EC2 プロデューサーによって評価されるメッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
|
ヘッダー
|
タイプ
|
説明
|
|---|---|---|
CamelAwsEC2ImageId
|
String
|
AWS マーケットプレイスのイメージ ID
|
CamelAwsEC2InstanceType
|
com.amazonaws.services.ec2.model.InstanceType
|
作成して実行するインスタンスタイプ
|
CamelAwsEC2Operation
|
String
|
実行する操作
|
CamelAwsEC2InstanceMinCount
|
Int
|
実行するインスタンスの最小値数。
|
CamelAwsEC2InstanceMaxCount
|
Int
|
実行するインスタンスの最大数。
|
CamelAwsEC2InstanceMonitoring
|
Boolean
|
実行中のインスタンスを監視するかどうかを定義します。
|
CamelAwsEC2InstanceEbsOptimized
|
Boolean
|
作成インスタンスが EBS I/O に対して最適化されているかどうかを定義します。
|
CamelAwsEC2InstanceSecurityGroups
|
Collection
|
インスタンスに関連付けるセキュリティーグループ
|
CamelAwsEC2InstancesIds
|
Collection
|
起動、停止、説明、および終了操作を実行するインスタンス IDS のコレクションです。
|
Dependencies リンクのコピーリンクがクリップボードにコピーされました!
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-aws</artifactId>
<version>${camel-version}</version>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-aws</artifactId>
<version>${camel-version}</version>
</dependency>
${camel-version} は実際のバージョンの Camel (2.16 以降)に置き換える必要があります。
10.6. AWS-Kinesis リンクのコピーリンクがクリップボードにコピーされました!
Kinesis コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
aws-kinesis://stream-name[?options]
aws-kinesis://stream-name[?options]
URI オプション リンクのコピーリンクがクリップボードにコピーされました!
|
名前
|
デフォルト値
|
コンテキスト
|
説明
|
|---|---|---|---|
|
amazonKinesisClient
|
null
|
コンシューマー
|
レジストリーで
com.amazonaws.services.kinesis.AmazonKinesisClient への参照。
|
|
maxMessagesPerPoll
|
100
|
コンシューマー
|
各ポーリングで AWS API に返される最大結果。シャードイテレーターがコンシューマーに固有であり、他のコンシューマーに影響を与えないことを示します。
|
|
iteratorType
|
TRIM_HORIZON
|
コンシューマー
|
trim_horizon または latest のいずれか。これら 2 つのイテレータータイプの説明は、http://docs.aws.amazon.com/kinesis/latest/APIReference/API_GetShardIterator.html を参照してください。
|
バッチコンシューマー リンクのコピーリンクがクリップボードにコピーされました!
Kinesis コンシューマーによって設定されるメッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
|
ヘッダー
|
タイプ
|
説明
|
|---|---|---|
CamelAwsKinesisSequenceNumber
|
String
|
このレコードのシーケンス番号。これは、サイズが API によって定義されていないため、文字列として表されます。数値型として使用する場合は、次を使用します
|
CamelAwsKinesisApproximateArrivalTimestamp
|
String
|
AWS がレコードの到着時間として割り当てた時間。
|
CamelAwsKinesisPartitionKey
|
String
|
データレコードが割り当てられているストリーム内のシャードを識別します。
|
AmazonKinesis の設定 リンクのコピーリンクがクリップボードにコピーされました!
AWS 認証情報の指定 リンクのコピーリンクがクリップボードにコピーされました!
Dependencies リンクのコピーリンクがクリップボードにコピーされました!
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-aws</artifactId>
<version>${camel-version}</version>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-aws</artifactId>
<version>${camel-version}</version>
</dependency>
${camel-version} は実際のバージョンの Camel (2.17 以降)に置き換える必要があります。
10.7. AWS-S3 リンクのコピーリンクがクリップボードにコピーされました!
S3 コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
aws-s3://bucket-name[?options]
aws-s3://bucket-name[?options]
URI オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | デフォルト値 | コンテキスト | 説明 |
|---|---|---|---|
amazonS3Client
|
null
|
共有 |
レジストリーの com.amazonaws.services.sqs.AmazonS3 への参照。
|
accessKey
|
null
|
共有 | Amazon AWS Access Key |
secretKey
|
null
|
共有 | Amazon AWS Secret Key |
amazonS3Endpoint
|
null
|
共有 | AWS-S3 クライアントが操作するリージョン。 |
region
|
null
|
プロデューサー |
バケットのあるリージョン。このオプションは com.amazonaws.services.s3.model.CreateBucketRequest で使用されます。
|
deleteAfterRead
|
true
|
コンシューマー | 取得後に S3 からオブジェクトを削除します。 |
deleteAfterWrite
|
false
|
プロデューサー | S3 ファイルのアップロード後の Camel 2.11.0 Delete ファイルオブジェクト |
maxMessagesPerPoll
|
10 | コンシューマー |
1 回のポーリングで取得できるオブジェクトの最大数。com.amazonaws.services.s3.model.ListObjectsRequest で使用されています。
|
policy
|
null
|
共有 |
camel 2.8.4: com.amazonaws.services.s3.AmazonS3#setBucketPolicy () メソッドに設定するこのキューのポリシー。
|
storageClass
|
null
|
プロデューサー |
camel 2.8.4: com.amazonaws.services.s3.model.PutObjectRequest リクエストに設定するストレージクラス。
|
prefix
|
null
|
コンシューマー |
Camel 2.10.1: 対象のオブジェクトのみを消費するために com.amazonaws.services.s3.model.ListObjectsRequest で使用される接頭辞。
|
multiPartUpload
|
false
|
プロデューサー |
Camel 2.15.0: true の場合、Camel はマルチパート形式でファイルをアップロードします。ここで、パートサイズは partSize オプションで指定できます。
|
partSize
|
25 * 1024 * 1024
|
プロデューサー |
Camel 2.15.0: マルチパートアップロードで使用される partSize を指定します。デフォルトは 25 MB です。
|
serverSideEncryption
|
null
|
プロデューサー | camel 2.16: AWS 管理のキーを使用してオブジェクトを暗号化する際にサーバー側の暗号化アルゴリズムを設定します。たとえば、AES256 を使用します。 |
proxyHost
|
null
|
プロデューサー | Camel 2.16: クライアント定義内で使用されるプロキシーホストを指定します。 |
proxyPort
|
null
|
プロデューサー | Camel 2.16: クライアント定義内で使用されるプロキシーポートを指定します。 |
includeBody
|
null
|
コンシューマー |
Camel 2.17: true の場合、エクスチェンジボディーはファイルの内容にストリームに設定されます。false の場合、ヘッダーは S3 オブジェクトメタデータで設定されますが、ボディーは null になります。
|
バッチコンシューマー リンクのコピーリンクがクリップボードにコピーされました!
使用方法 リンクのコピーリンクがクリップボードにコピーされました!
S3 プロデューサーによって評価されるメッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| ヘッダー | タイプ | 説明 |
|---|---|---|
CamelAwsS3Key
|
文字列
|
このオブジェクトが保存されるキー。 |
CamelAwsS3ContentLength
|
Long
|
このオブジェクトのコンテンツの長さ。 |
CamelAwsS3ContentType
|
文字列
|
このオブジェクトのコンテンツタイプ。 |
CamelAwsS3ContentControl
|
文字列
|
このオブジェクトのコンテンツ制御。 |
CamelAwsS3ContentDisposition
|
文字列
|
このオブジェクトの内容。 |
CamelAwsS3ContentEncoding
|
文字列
|
このオブジェクトのコンテンツエンコーディング。 |
CamelAwsS3ContentMD5
|
文字列
|
このオブジェクトの md5 チェックサム。 |
CamelAwsS3LastModified
|
java.util.Date
|
このオブジェクトの最後に変更されたタイムスタンプ。 |
CamelAwsS3StorageClass
|
文字列
|
*Camel 2.8.4:* このオブジェクトのストレージクラス。 |
CamelAwsS3CannedAcl
|
文字列
|
Camel 2.11.0: オブジェクトに適用される正規の acl。許可される値の com.amazonaws.services.s3.model.CannedAccessControlList を参照してください。
|
CamelAwsS3Acl
|
com.amazonaws.services.s3.model.AccessControlList
|
Camel 2.11.0: 適切に構築された Amazon S3 Access Control List オブジェクト。詳細は、com.amazonaws.services.s3.model.AccessControlList を参照してください。
|
CamelAwsS3Headers
|
Map<String,String>
|
Camel 2.15.0: カスタム objectMetadata ヘッダーの取得および 設定をサポートします。
|
CamelAwsS3ServerSideEncryption
|
文字列
|
camel 2.16: AWS 管理のキーを使用してオブジェクトを暗号化する際にサーバー側の暗号化アルゴリズムを設定します。たとえば、AES256 を使用します。 |
S3 プロデューサーによって設定されたメッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| ヘッダー | タイプ | 説明 |
|---|---|---|
CamelAwsS3ETag
|
文字列
|
新たにアップロードしたオブジェクトの ETag 値。 |
CamelAwsS3VersionId
|
文字列
|
新たにアップロードしたオブジェクトの オプション のバージョン ID。 |
S3 コンシューマーによって設定されたメッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| ヘッダー | タイプ | 説明 |
|---|---|---|
CamelAwsS3Key
|
文字列
|
このオブジェクトが保存されるキー。 |
CamelAwsS3BucketName
|
文字列
|
このオブジェクトが含まれるバケットの名前。 |
CamelAwsS3ETag
|
文字列
|
RFC 1864 に従って、関連付けられたオブジェクトの 16 進エンコードされた 128 ビット MD5 ダイジェスト。このデータは整合性チェックとして使用され、呼び出し元が受信したデータが Amazon S3 によって送信されたデータと同じであることを確認します。 |
CamelAwsS3LastModified
|
日付
|
Amazon S3 が最後に関連付けられたオブジェクトへの変更を記録した日時を示す Last-Modified ヘッダーの値。 |
CamelAwsS3VersionId
|
文字列
|
関連する Amazon S3 オブジェクトのバージョン ID (ある場合)。バージョン ID は、オブジェクトがオブジェクトのバージョン管理が有効にされている Amazon S3 バケットにアップロードされる場合にのみオブジェクトに割り当てられます。 |
CamelAwsS3ContentType
|
文字列
|
関連付けられたオブジェクトに保存されるコンテンツのタイプを示す Content-Type HTTP ヘッダー。このヘッダーの値は標準の MIME タイプです。 |
CamelAwsS3ContentMD5
|
文字列
|
RFC 1864 に準拠した、関連付けられたオブジェクト(ヘッダーを含まないコンテンツ)の base64 でエンコードされた 128 ビット MD5 ダイジェスト。このデータは、Amazon S3 が受信したデータが呼び出し元によって送信されたデータと同じであることを確認するために、メッセージ整合性チェックとして使用されます。 |
CamelAwsS3ContentLength
|
Long
|
関連付けられたオブジェクトのサイズ(バイト単位)を示す Content-Length HTTP ヘッダー。 |
CamelAwsS3ContentEncoding
|
文字列
|
オプション の Content-Encoding HTTP ヘッダーには、オブジェクトに適用されたコンテンツエンコーディング、および Content-Type フィールドで参照されるメディアタイプを取得するために適用する必要のあるデコードメカニズムを指定します。 |
CamelAwsS3ContentDisposition
|
文字列
|
オプション の Content-Disposition HTTP ヘッダー。これは、オブジェクトの保存に使用する推奨ファイル名などの表示情報を指定します。 |
CamelAwsS3ContentControl
|
文字列
|
オプション の Cache-Control HTTP ヘッダー。これにより、ユーザーは HTTP 要求/リプライチェーンでキャッシュ動作を指定できます。 |
CamelAwsS3ServerSideEncryption
|
文字列
|
Camel 2.16: AWS 管理のキーを使用してオブジェクトを暗号化する際にサーバー側の暗号化アルゴリズム。 |
高度な AmazonS3 設定 リンクのコピーリンクがクリップボードにコピーされました!
AmazonS3 インスタンス設定をより詳細に制御する必要がある場合は、独自のインスタンスを作成できます。
from("aws-s3://MyBucket?amazonS3Client=#client&delay=5000&maxMessagesPerPoll=5")
.to("mock:result");
from("aws-s3://MyBucket?amazonS3Client=#client&delay=5000&maxMessagesPerPoll=5")
.to("mock:result");
Dependencies リンクのコピーリンクがクリップボードにコピーされました!
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-aws</artifactId>
<version>${camel-version}</version>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-aws</artifactId>
<version>${camel-version}</version>
</dependency>
$\{camel-version\} は実際の Camel バージョン(2.8 以降)に置き換える必要があります。
10.8. AWS-SDB リンクのコピーリンクがクリップボードにコピーされました!
SDB コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
aws-sdb://domainName[?options]
aws-sdb://domainName[?options]
URI オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | デフォルト値 | コンテキスト | 説明 |
|---|---|---|---|
amazonSDBClient
|
null
|
プロデューサー |
レジストリーの com.amazonaws.services.simpledb.AmazonSimpleDB への参照。
|
accessKey
|
null
|
プロデューサー | Amazon AWS Access Key |
secretKey
|
null
|
プロデューサー | Amazon AWS Secret Key |
amazonSdbEndpoint
|
null
|
プロデューサー | AWS-SDB クライアントが動作するリージョン。 |
domainName
|
null
|
プロデューサー | 現在作業中のドメイン名。 |
maxNumberOfDomains
|
100
|
プロデューサー | 返すドメイン名の最大数。範囲は 1 * から 100 です。 |
consistentRead
|
false
|
プロデューサー | データの読み取り時に強力な整合性を適用するべきかどうかを決定します。 |
operation
|
PutAttributes
|
プロデューサー | 有効な値は BatchDeleteAttributes、BatchPutAttributes、DeleteAttributes、DeleteDomain、DomainMetadata、GetAttributes、ListDomains、PutAttributes、Select です。 |
proxyHost
|
null
|
プロデューサー | クライアント定義内で使用されるプロキシーホストを指定します。 |
proxyPort
|
null
|
プロデューサー | クライアント定義内で使用されるプロキシーポートを指定します。 |
使用方法 リンクのコピーリンクがクリップボードにコピーされました!
SDB プロデューサーによって評価されるメッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| ヘッダー | タイプ | 説明 |
|---|---|---|
CamelAwsSdbAttributes
|
collection<Attribute>
|
処理対象の属性の一覧。 |
CamelAwsSdbAttributeNames
|
Collection<String>
|
取得する属性の名前。 |
CamelAwsSdbConsistentRead
|
ブール値
|
データの読み取り時に強力な整合性を適用するべきかどうかを決定します。 |
CamelAwsSdbDeletableItems
|
Collection<DeletableItem>
|
バッチで削除操作を実行する項目のリスト。 |
CamelAwsSdbDomainName
|
文字列
|
現在作業中のドメイン名。 |
CamelAwsSdbItemName
|
文字列
|
この項目の一意の鍵 |
CamelAwsSdbMaxNumberOfDomains
|
整数
|
返すドメイン名の最大数。範囲は 1 * から 100 です。 |
CamelAwsSdbNextToken
|
文字列
|
ドメイン/アイテム名の次のリストを開始する場所を指定する文字列。 |
CamelAwsSdbOperation
|
文字列
|
URI オプションから操作を上書きするには、以下を実行します。 |
CamelAwsSdbReplaceableAttributes
|
Collection<ReplaceableAttribute>
|
Item に配置する属性のリスト。 |
CamelAwsSdbReplaceableItems
|
Collection<ReplaceableItem>
|
ドメインに配置する項目のリスト。 |
CamelAwsSdbSelectExpression
|
文字列
|
ドメインのクエリーに使用される式。 |
CamelAwsSdbUpdateCondition
|
UpdateCondition
|
指定された場合、指定された属性が更新/削除されるかどうかを決定する更新条件。 |
DomainMetadata 操作中に設定されたメッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| ヘッダー | タイプ | 説明 |
|---|---|---|
CamelAwsSdbTimestamp
|
整数
|
メタデータの計算時のデータと時間(Epoch (UNIX)秒)。 |
CamelAwsSdbItemCount
|
整数
|
ドメインのすべてのアイテム数。 |
CamelAwsSdbAttributeNameCount
|
整数
|
ドメイン内の一意の属性名の数。 |
CamelAwsSdbAttributeValueCount
|
整数
|
ドメイン内のすべての属性名と値のペアの数。 |
CamelAwsSdbAttributeNameSize
|
Long
|
ドメイン内のすべての一意の属性名の合計サイズ(バイト単位)。 |
CamelAwsSdbAttributeValueSize
|
Long
|
ドメインのすべての属性値の合計サイズ(バイト単位)。 |
CamelAwsSdbItemNameSize
|
Long
|
ドメイン内のすべての項目名の合計サイズ(バイト単位)。 |
GetAttributes 操作中に設定されたメッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| ヘッダー | タイプ | 説明 |
|---|---|---|
CamelAwsSdbAttributes
|
List<Attribute>
|
操作によって返される属性の一覧。 |
ListDomains 操作中に設定されるメッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| ヘッダー | タイプ | 説明 |
|---|---|---|
CamelAwsSdbDomainNames
|
List<String>
|
式に一致するドメイン名の一覧。 |
CamelAwsSdbNextToken
|
文字列
|
指定された MaxNumberOfDomains よりも多くのドメインがあることを示す不透明なトークン。 |
Select 操作時に設定されたメッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| ヘッダー | タイプ | 説明 |
|---|---|---|
CamelAwsSdbItems
|
List<Item>
|
select 式に一致するアイテムの一覧。 |
CamelAwsSdbNextToken
|
文字列
|
MaxNumberOfItems を超えるアイテム、応答サイズが 1 メガバイト、または実行時間が 5 秒を超えたことを示す不透明なトークン。 |
高度な AmazonSimpleDB 設定 リンクのコピーリンクがクリップボードにコピーされました!
AmazonSimpleDB インスタンス設定をさらに制御する必要がある場合は、独自のインスタンスを作成して、URI から参照することができます。
from("direct:start")
.to("aws-sdb://domainName?amazonSDBClient=#client");
from("direct:start")
.to("aws-sdb://domainName?amazonSDBClient=#client");
#client はレジストリー内の AmazonSimpleDB を参照します。
Dependencies リンクのコピーリンクがクリップボードにコピーされました!
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-aws</artifactId>
<version>${camel-version}</version>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-aws</artifactId>
<version>${camel-version}</version>
</dependency>
${camel-version} は、実際のバージョンの Camel (2.8.4 以降)に置き換える必要があります。
10.9. AWS-SES リンクのコピーリンクがクリップボードにコピーされました!
SES コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
aws-ses://from[?options]
aws-ses://from[?options]
URI オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | デフォルト値 | コンテキスト | 説明 |
|---|---|---|---|
amazonSESClient
|
null
|
プロデューサー |
レジストリーの com.amazonaws.services.simpleemail.AmazonSimpleEmailService への参照。
|
accessKey
|
null
|
プロデューサー | Amazon AWS Access Key |
secretKey
|
null
|
プロデューサー | Amazon AWS Secret Key |
amazonSESEndpoint
|
null
|
プロデューサー | AWS-SES クライアントが動作するリージョン。 |
subject
|
null
|
プロデューサー | メッセージヘッダー 'CamelAwsSesSubject' が存在しない場合に使用されるサブジェクト。 |
to
|
null
|
プロデューサー | 宛先メールアドレスの一覧。'CamelAwsSesTo' ヘッダーで上書きできます。 |
returnPath
|
null
|
プロデューサー | 通知が転送されるメールアドレス。CamelAwsSesReturnPath ヘッダーを使用して上書きします。 |
replyToAddresses
|
null
|
プロデューサー | メッセージの返信先メールアドレスのリスト。CamelAwsSesReplyToAddresses ヘッダーを使用して上書きします。 |
proxyHost
|
null
|
プロデューサー | クライアント定義内で使用されるプロキシーホストを指定します。 |
proxyPort
|
null
|
プロデューサー | クライアント定義内で使用されるプロキシーポートを指定します。 |
使用方法 リンクのコピーリンクがクリップボードにコピーされました!
SES プロデューサーによって評価されるメッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| ヘッダー | タイプ | 説明 |
|---|---|---|
CamelAwsSesFrom
|
文字列
|
送信者のメールアドレス。 |
CamelAwsSesTo
|
List<String>
|
このメールの宛先。 |
CamelAwsSesSubject
|
文字列
|
メッセージの件名。 |
CamelAwsSesReplyToAddresses
|
List<String>
|
メッセージの返信先のメールアドレス。 |
CamelAwsSesReturnPath
|
文字列
|
通知の転送先となるメールアドレス。 |
CamelAwsSesHtmlEmail
|
Boolean
|
Camel 2.12.3 以降、メールコンテンツが HTML かどうかを表示するフラグ。
|
SES プロデューサーによって設定されたメッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| ヘッダー | タイプ | 説明 |
|---|---|---|
CamelAwsSesMessageId
|
文字列
|
Amazon SES メッセージ ID。 |
AmazonSimpleEmailService の高度な設定 リンクのコピーリンクがクリップボードにコピーされました!
AmazonSimpleEmailService インスタンス設定をさらに制御する必要がある場合は、独自のインスタンスを作成して URI から参照することができます。
from("direct:start")
.to("aws-ses://example@example.com?amazonSESClient=#client");
from("direct:start")
.to("aws-ses://example@example.com?amazonSESClient=#client");
#client はレジストリー内の AmazonSimpleEmailService を参照します。
Dependencies リンクのコピーリンクがクリップボードにコピーされました!
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-aws</artifactId>
<version>${camel-version}</version>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-aws</artifactId>
<version>${camel-version}</version>
</dependency>
${camel-version} は、実際のバージョンの Camel (2.8.4 以降)に置き換える必要があります。
10.10. AWS-SNS リンクのコピーリンクがクリップボードにコピーされました!
SNS コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
aws-sns://topicName[?options]
aws-sns://topicName[?options]
?options=value&option2=value&.. の形式で追加できます。
URI オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | デフォルト値 | コンテキスト | 説明 |
|---|---|---|---|
amazonSNSClient
|
null
|
プロデューサー |
レジストリーの com.amazonaws.services.sns.AmazonSNS への参照。
|
accessKey
|
null
|
プロデューサー | Amazon AWS Access Key |
secretKey
|
null
|
プロデューサー | Amazon AWS Secret Key |
subject
|
null
|
プロデューサー | メッセージヘッダー 'CamelAwsSnsSubject' が存在しない場合に使用されるサブジェクト。 |
amazonSNSEndpoint
|
null
|
プロデューサー | AWS-SNS クライアントが操作するリージョン。 |
policy
|
null
|
プロデューサー |
camel 2.8.4: com.amazonaws.services.sns.model.SetTopicAttributesRequest に設定するこのキューのポリシー。
|
proxyHost
|
null
|
プロデューサー | クライアント定義内で使用されるプロキシーホストを指定します。 |
proxyPort
|
null
|
プロデューサー | クライアント定義内で使用されるプロキシーポートを指定します。 |
使用方法 リンクのコピーリンクがクリップボードにコピーされました!
SNS プロデューサーによって評価されるメッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| ヘッダー | タイプ | 説明 |
|---|---|---|
CamelAwsSnsSubject
|
文字列
|
Amazon SNS メッセージサブジェクト。設定されていない場合は、SnsConfiguration からのサブジェクトが使用されます。
|
SNS プロデューサーによって設定されたメッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| ヘッダー | タイプ | 説明 |
|---|---|---|
CamelAwsSnsMessageId
|
文字列
|
Amazon SNS メッセージ ID。 |
AmazonSNS の高度な設定 リンクのコピーリンクがクリップボードにコピーされました!
AmazonSNS インスタンス設定をさらに制御する必要がある場合は、独自のインスタンスを作成して、URI から参照することができます。
from("direct:start")
.to("aws-sns://MyTopic?amazonSNSClient=#client");
from("direct:start")
.to("aws-sns://MyTopic?amazonSNSClient=#client");
#client は、レジストリー内の AmazonSNS を参照します。
Dependencies リンクのコピーリンクがクリップボードにコピーされました!
$\{camel-version\} は実際の Camel バージョン(2.8 以降)に置き換える必要があります。
10.11. AWS-SQS リンクのコピーリンクがクリップボードにコピーされました!
SQS コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
aws-sqs://queue-name[?options]
aws-sqs://queue-name[?options]
URI オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | デフォルト値 | コンテキスト | 説明 |
|---|---|---|---|
amazonSQSClient
|
null
|
共有 |
レジストリーの com.amazonaws.services.sqs.AmazonSQS への参照。
|
accessKey
|
null
|
共有 | Amazon AWS Access Key |
secretKey
|
null
|
共有 | Amazon AWS Secret Key |
amazonSQSEndpoint
|
null
|
共有 | AWS-SQS クライアントが操作するリージョン。Camel が AWS-SQS クライアントを作成する場合にのみ機能します。つまり、amazonSQSClient を明示的に設定した場合、この設定は効果がありません。直接作成するクライアントにこれを設定する必要があります。 |
attributeNames
|
null
|
コンシューマー |
消費時に受け取る属性名のリスト。
Camel 2.17: 複数の名前はコンマで区切ることができます。
|
messageAttributeNames
|
null
|
コンシューマー |
消費時に受け取るメッセージ属性名のリスト。
Camel 2.17: 複数の名前はコンマで区切ることができます。
|
concurrentConsumers
|
1
|
コンシューマー |
Camel 2.15.0 では、 複数のスレッドを使用して SQS キューをポーリングしてスループットを増やすことができます。また、これを正常に機能させるには、maxMessagesPerPoll オプションを設定する必要があります。
|
defaultVisibilityTimeout
|
null
|
共有 |
com.amazonaws.services.sqs.model.CreateQueueRequest に設定される可視性のタイムアウト(秒単位)。
|
deleteAfterRead
|
true
|
コンシューマー | メッセージがルートによって読み取られ、処理された後に SQS からメッセージを削除します。 |
deleteIfFiltered
|
true
|
コンシューマー | Camel 2.12.2,2.13.0 エクスチェンジがフィルターを通過できない場合、DeleteMessage を SQS キューに送信するかどうか。false およびエクスチェンジがルートのアップストリームで Camel フィルターを作成しない場合は、DeleteMessage を送信しません。 |
maxMessagesPerPoll
|
null
|
コンシューマー |
com.amazonaws.services.sqs.model.ReceiveMessageRequest に設定できる 1 回のポーリングで受信できるメッセージの最大数。
|
visibilityTimeout
|
null
|
共有 |
ReceiveMessage リクエストによって受信メッセージが取得されてから、後続の取得要求から受信したメッセージが非表示になる期間(秒単位)。これは、defaultVisibilityTimeout とは異なる場合にのみ有効です。
|
extendMessageVisibility
|
false
|
コンシューマー |
Camel 2.10: 有効にすると、スケジュールされたバックグラウンドタスクは SQS でのメッセージの可視性を拡張し続けます。これは、メッセージの処理に時間がかかる場合に必要です。true に設定すると、visibilityTimeout を設定する必要があります。詳細は、Amazon ドキュメント を参照してください。
|
maximumMessageSize
|
null
|
共有 |
Camel 2.8: maximumMessageSize (バイト単位)で、このキューに SQS メッセージを含めることができ、com.amazonaws.services.sqs.model.SetQueueAttributesRequest で設定できます。
|
messageRetentionPeriod
|
null
|
共有 |
Camel 2.8: messageRetentionPeriod (秒単位)は、com.amazonaws.services.sqs.model.SetQueueAttributesRequest に設定されるこのキューの SQS によってメッセージが保持されます。
|
policy
|
null
|
共有 |
camel 2.8: com.amazonaws.services.sqs.model.SetQueueAttributesRequest に設定するこのキューのポリシー。
|
delaySeconds
|
null
|
プロデューサー | Camel 2.9.3: 数秒間メッセージの送信を遅延します。 |
waitTimeSeconds
|
0
|
プロデューサー | Camel 2.11: ReceiveMessage アクション呼び出しは応答に含めるメッセージがキューにあるまで待機する期間(秒単位(0 から 20)。 |
receiveMessageWaitTimeSeconds
|
0
|
共有 | Camel 2.11: リクエストで WaitTimeSeconds を指定しない場合、キュー属性 ReceiveMessageWaitTimeSeconds を使用して待機時間を決定します。 |
queueOwnerAWSAccountId
|
null
|
共有 | Camel 2.12: キューを別のアカウント所有者に接続する必要がある場合は、キュー所有者の aws アカウント ID を指定します。 |
region
|
null
|
共有
|
Camel 2.12.3: サービス URL をビルドするために
queueOwnerAWSAccountId で使用できるキューリージョンを指定します。
|
redrivePolicy
|
null
|
共有
|
Camel 2.15.0: DeadLetter キューにメッセージを送信するポリシーを指定します。詳細は、Amazon ドキュメント を参照してください。
|
proxyHost
|
null
|
プロデューサー | クライアント定義内で使用されるプロキシーホストを指定します。 |
proxyPort
|
null
|
プロデューサー | クライアント定義内で使用されるプロキシーポートを指定します。 |
バッチコンシューマー リンクのコピーリンクがクリップボードにコピーされました!
使用方法 リンクのコピーリンクがクリップボードにコピーされました!
SQS プロデューサーによって設定されたメッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| ヘッダー | タイプ | 説明 |
|---|---|---|
CamelAwsSqsMD5OfBody
|
文字列
|
Amazon SQS メッセージの MD5 チェックサム。 |
CamelAwsSqsMessageId
|
文字列
|
Amazon SQS メッセージ ID。 |
CamelAwsSqsDelaySeconds
|
整数
|
Camel 2.11 以降、Amazon SQS メッセージが他から確認できる遅延秒数。 |
SQS コンシューマーによって設定されたメッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| ヘッダー | タイプ | 説明 |
|---|---|---|
CamelAwsSqsMD5OfBody
|
文字列
|
Amazon SQS メッセージの MD5 チェックサム。 |
CamelAwsSqsMessageId
|
文字列
|
Amazon SQS メッセージ ID。 |
CamelAwsSqsReceiptHandle
|
文字列
|
Amazon SQS メッセージ受信ハンドル。 |
CamelAwsSqsAttributes
|
Map<String, String>
|
Amazon SQS メッセージ属性。 |
AmazonSQS の高度な設定 リンクのコピーリンクがクリップボードにコピーされました!
from("aws-sqs://MyQueue?amazonSQSClient=#client&delay=5000&maxMessagesPerPoll=5")
.to("mock:result");
from("aws-sqs://MyQueue?amazonSQSClient=#client&delay=5000&maxMessagesPerPoll=5")
.to("mock:result");
Dependencies リンクのコピーリンクがクリップボードにコピーされました!
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-aws</artifactId>
<version>${camel-version}</version>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-aws</artifactId>
<version>${camel-version}</version>
</dependency>
$\{camel-version\} は実際の Camel バージョン(2.6 以降)に置き換える必要があります。
JMS スタイルのセレクター リンクのコピーリンクがクリップボードにコピーされました!
visibilityTimeout を設定することで、これを効果的に実行できます。SQS がメッセージをディスパッチすると、DeleteMessage を受信しない限り、別のコンシューマーにメッセージをディスパッチするまで、可視性のタイムアウトを待機します。デフォルトでは、ルートが失敗しない限り、Camel はルートの最後に DeleteMessage を常に送信します。適切なフィルターリングを行い、ルートが正常に完了する場合でも DeleteMessage を送信しないようにするには、フィルターを使用します。
from("aws-sqs://MyQueue?amazonSQSClient=#client&defaultVisibilityTimeout=5000&deleteIfFiltered=false")
.filter("${header.login} == true")
.to("mock:result");
from("aws-sqs://MyQueue?amazonSQSClient=#client&defaultVisibilityTimeout=5000&deleteIfFiltered=false")
.filter("${header.login} == true")
.to("mock:result");
10.12. AWS-SWF リンクのコピーリンクがクリップボードにコピーされました!
SWF コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
aws-swf://<workflow|activity>[?options]
aws-swf://<workflow|activity>[?options]
URI オプション リンクのコピーリンクがクリップボードにコピーされました!
|
名前
|
デフォルト値
|
コンテキスト
|
説明
|
|---|---|---|---|
amazonSWClient
|
null
|
すべて |
レジストリー の com.amazonaws.services.simpleworkflow.AmazonSimpleWorkflowClient への 参照。
|
accessKey
|
null
|
すべて
|
Amazon AWS Access Key。
|
secretKey
|
null
|
すべて
|
Amazon AWS Secret Key。
|
sWClient.XXX
|
null
|
すべて
|
使用中の AmazonSimpleWorkflowClient に設定するプロパティー。
|
clientConfiguration.XXX
|
null
|
すべて
|
使用中の ClientConfiguration に設定するプロパティー。
|
startWorkflowOptions.XXX
|
null
|
ワークフロー/プロデューサー
|
使用中の useStartWorkflowOptions に設定するプロパティー。
|
operation
|
START
|
ワークフロー/プロデューサー
|
ワークフローで実行する操作。サポートされる操作は次のとおりです。
SIGNAL、CANCEL、TERMINATE、GET_STATE、NORMAL、NORMAL。START DESCRIBE GET_HISTORY
|
domainName
|
null
|
すべて
|
使用するワークフロードメイン。
|
activityList
|
null
|
アクティビティー/コンシューマー
|
アクティビティーの使用元となるリスト名。
|
workflowList
|
null
|
ワークフロー/コンシューマー
|
ワークフローを使用するリスト名。
|
eventName
|
null
|
すべて | 使用するワークフローまたはアクティビティーイベント名。 |
version
|
null
|
すべて | 使用するワークフローまたはアクティビティーイベントバージョン。 |
signalName
|
null
|
ワークフロー/プロデューサー | ワークフローに送信するシグナルの名前。 |
childPolicy
|
null
|
ワークフロー/プロデューサー | ワークフローを終了する際に子ワークフローで使用するポリシー。 |
terminationReason
|
null
|
ワークフロー/プロデューサー | ワークフローを終了する理由。 |
stateResultType
|
Object
|
ワークフロー/プロデューサー | ワークフローの状態のクエリー時の結果のタイプ。 |
terminationDetails
|
null
|
ワークフロー/プロデューサー | ワークフローを終了するための詳細。 |
dataConverter
|
JsonDataConverter
|
すべて |
データをシリアライズ/デシリアライズするために使用する com.amazonaws.services.simpleworkflow.flow.DataConverter のインスタンス。
|
activitySchedulingOptions
|
null
|
アクティビティー/プロデューサー |
異なるタイムアウトオプションを指定するために使用される ActivitySchedulingOptions のインスタンス。
|
activityTypeExecutionOptions
|
null
|
アクティビティー/コンシューマー |
ActivityTypeExecutionOptions のインスタンス。
|
activityTypeRegistrationOptions
|
null
|
アクティビティー/コンシューマー |
ActivityTypeRegistrationOptions のインスタンス。
|
workflowTypeRegistrationOptions
|
null
|
ワークフロー/コンシューマー |
WorkflowTypeRegistrationOptions のインスタンス。
|
使用方法 リンクのコピーリンクがクリップボードにコピーされました!
SWF ワークフロープロデューサーによって評価されるメッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
|
ヘッダー
|
タイプ
|
説明
|
|---|---|---|
CamelSWFOperation
|
String
|
ワークフローで実行する操作。サポートされている操作:SIGNAL、CANCEL、TERMINATE、GET_STATE、START、DESCRIBE、GET_HISTORY。
|
CamelSWFWorkflowId
|
String
|
使用するワークフロー ID。
|
CamelAwsDdbKeyCamelSWFRunId
|
String
|
使用するワクロー実行 ID。
|
CamelSWFStateResultType
|
String
|
ワークフローの状態のクエリー時の結果のタイプ。
|
CamelSWFEventName
|
String
|
使用するワークフローまたはアクティビティーイベント名。
|
CamelSWFVersion
|
String
|
使用するワークフローまたはアクティビティーイベントバージョン。
|
CamelSWFReason
|
String
|
ワークフローを終了する理由。
|
CamelSWFDetails
|
String
|
ワークフローを終了するための詳細。
|
CamelSWFChildPolicy
|
String
|
ワークフローを終了する際に子ワークフローで使用するポリシー。
|
SWF ワークフロープロデューサーによって設定されたメッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
|
ヘッダー
|
タイプ
|
説明
|
|---|---|---|
CamelSWFWorkflowId
|
String
|
使用される Worfklow ID、または新たに生成された ID。
|
CamelAwsDdbKeyCamelSWFRunId
|
String
|
使用されるか、または生成される Worfklow run ID。
|
SWF ワークフローコンシューマーによって設定されたメッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
|
ヘッダー
|
タイプ
|
説明
|
|---|---|---|
CamelSWFAction
|
String
|
現在のイベントのタイプ(CamelSWFActionExecute、CamelSWFSignalReceivedAction または CamelSWFGetStateAction)を指定します。
|
CamelSWFWorkflowReplaying
|
boolean
|
現在のデシジョンタスクが再生されているかどうかを示します。
|
CamelSWFWorkflowStartTime
|
long
|
このデシジョンタスクの開始イベントの時間。
|
SWF アクティビティープロデューサーによって設定されたメッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
|
ヘッダー
|
タイプ
|
説明
|
|---|---|---|
CamelSWFEventName
|
String
|
スケジュールするアクティビティー名。
|
CamelSWFVersion
|
String
|
スケジュールするアクティビティーバージョン。
|
SWF Activity コンシューマーによって設定されたメッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
|
ヘッダー
|
タイプ
|
説明
|
|---|---|---|
CamelSWFTaskToken
|
String
|
手動で完了したタスクのタスク完了を報告するのに必要なタスクトークン。
|
高度な amazonSWClient 設定 リンクのコピーリンクがクリップボードにコピーされました!
#client は、レジストリー の AmazonSimpleWorkflowClient を参照し ます。
Dependencies リンクのコピーリンクがクリップボードにコピーされました!
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-aws</artifactId>
<version>${camel-version}</version>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-aws</artifactId>
<version>${camel-version}</version>
</dependency>
${camel-version} は実際のバージョンの Camel (2.13 以降)に置き換える必要があります。
第11章 Bean リンクのコピーリンクがクリップボードにコピーされました!
Bean コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
bean:beanID[?options]
bean:beanID[?options]
オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | タイプ | デフォルト | 説明 |
|---|---|---|---|
メソッド
|
文字列
|
null
|
呼び出される Bean のメソッド名。指定しない場合、Camel はメソッド自体を判断しようとします。あいまいな場合は、例外が発生します。詳細は、Bean Binding を参照してください。Camel 2.8 以降 では、タイプ修飾子を指定して、オーバーロードされたメソッドに使用する正確なメソッドを特定することができます。Camel 2.9 以降では、メソッド構文でパラメーター値を直接指定できます。 |
cache
|
boolean
|
false
|
有効にすると、Apache Camel は最初の レジストリー ルックアップの結果をキャッシュします。レジストリー の Bean がシングルトンスコープとして定義されている場合、キャッシュを有効にできます。 |
multiParameterArray
|
boolean
|
false
|
メッセージボディーから渡されるパラメーターを処理する方法。true の場合、In メッセージボディーはパラメーターの配列である必要があります。
|
bean.xxx
|
null
|
Camel 2.17: クラス名から create bean インスタンスで追加オプションを設定します。たとえば、Bean で
foo オプションを設定するには、bean.foo=123 を使用します。
|
?option=value&option=value&.. の形式で追加できます。
使用 リンクのコピーリンクがクリップボードにコピーされました!
spring.xml で Bean を定義する必要があり、Spring を使用しない場合は Bean を JNDI に配置します。
createProxy() メソッドを使用して、BeanExchange を生成して任意のエンドポイントに送信するプロキシーを作成できます。
Endpoint endpoint = camelContext.getEndpoint("direct:hello");
ISay proxy = ProxyHelper.createProxy(endpoint, ISay.class);
String rc = proxy.say();
assertEquals("Good Bye!", rc);
Endpoint endpoint = camelContext.getEndpoint("direct:hello");
ISay proxy = ProxyHelper.createProxy(endpoint, ISay.class);
String rc = proxy.say();
assertEquals("Good Bye!", rc);
<route>
<from uri="direct:hello">
<to uri="bean:bye"/>
</route>
<route>
<from uri="direct:hello">
<to uri="bean:bye"/>
</route>
エンドポイントとしての Bean リンクのコピーリンクがクリップボードにコピーされました!
myBean にルーティングされると、Apache Camel は Bean バインディングを使用し て Bean を呼び出します。Bean のソースはプレーン POJO です。
sayHello メソッドを呼び出します。これには、エクスチェンジの In ボディーを String 型に変換し、メソッドの出力を Exchange Out ボディーに保存します。
Java DSL Bean 構文 リンクのコピーリンクがクリップボードにコピーされました!
to ("bean:beanName")) として指定する代わりに、次の構文を使用できます。
Bean バインディング リンクのコピーリンクがクリップボードにコピーされました!
- クラス コンポーネント
Bean 言語 リンクのコピーリンクがクリップボードにコピーされました!
ApplicationContext などのレジストリーで Bean 名を指定すると、メソッドを呼び出して Expression または Predicate を評価します。ただし、メソッド名を指定しない場合は、以下を使用して選択できます。
- Bean バインディングのルール
- メッセージボディーのタイプ
- Bean メソッドのアノテーション
NullPointerException.
第12章 Bean バリデーター リンクのコピーリンクがクリップボードにコピーされました!
Bean バリデーターコンポーネント リンクのコピーリンクがクリップボードにコピーされました!
pom.xml に以下の依存関係を追加する必要があります。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
bean-validator:label[?options]
bean-validator:label[?options]
bean-validator://label[?options]
bean-validator://label[?options]
label は、エンドポイントを記述する任意のテキスト値です。以下の形式で URI にクエリーオプションを追加できます。 ?option=value&option=value&...
URI オプション リンクのコピーリンクがクリップボードにコピーされました!
| オプション | デフォルト | 説明 |
|---|---|---|
group
|
javax.validation.groups.Default
|
使用するカスタム検証グループ。 |
messageInterpolator
|
org.hibernate.validator.engine.ResourceBundleMessageInterpolator
|
レジストリーのカスタム javax.validation.MessageInterpolator への参照。
|
traversableResolver
|
org.hibernate.validator.engine.resolver.DefaultTraversableResolver
|
レジストリーのカスタム javax.validation.TraversableResolver への参照。
|
constraintValidatorFactory
|
org.hibernate.validator.engine.ConstraintValidatorFactoryImpl
|
レジストリーのカスタム javax.validation.ConstraintValidatorFactory への参照。
|
OSGi デプロイメント リンクのコピーリンクがクリップボードにコピーされました!
org.apache.camel.component.bean.validator.HibernateValidationProviderResolver と同じように、専用の ValidationProviderResolver 実装を使用します。以下のスニペットは、このアプローチを示しています。Camel 2.13.0 から HibernateValidationProviderResolver を使用できることに注意してください。
例12.1 Using HibernateValidationProviderResolver
ValidationProviderResolver が定義されておらず、バリデーターコンポーネントが OSGi 環境にデプロイされている場合、HibernateValidationProviderResolver は自動的に使用されます。
例 リンクのコピーリンクがクリップボードにコピーされました!
public interface OptionalChecks {
}
public interface OptionalChecks {
}
javax.validation.groups.Defaultを使用します)。
from("direct:start")
.to("bean-validator://x")
.to("mock:end")
from("direct:start")
.to("bean-validator://x")
.to("mock:end")
OptionalChecks グループからの制約を確認する場合は、以下のようなルートを定義する必要があります。
from("direct:start")
.to("bean-validator://x?group=OptionalChecks")
.to("mock:end")
from("direct:start")
.to("bean-validator://x?group=OptionalChecks")
.to("mock:end")
@GroupSequence({Default.class, OptionalChecks.class})
public interface AllChecks {
}
@GroupSequence({Default.class, OptionalChecks.class})
public interface AllChecks {
}
from("direct:start")
.to("bean-validator://x?group=AllChecks")
.to("mock:end")
from("direct:start")
.to("bean-validator://x?group=AllChecks")
.to("mock:end")
META-INF/validation.xml を提供する必要があります。
constraints-car.xml ファイル
第13章 Beanstalk リンクのコピーリンクがクリップボードにコピーされました!
Beanstalk コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
Dependencies リンクのコピーリンクがクリップボードにコピーされました!
pom.xml
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-beanstalk</artifactId>
<version>${camel-version}</version>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-beanstalk</artifactId>
<version>${camel-version}</version>
</dependency>
${camel-version} は実際のバージョンの Camel (2.15.0 以降)に置き換える必要があります。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
beanstalk://[host[:port]][/tube][?options]
beanstalk://[host[:port]][/tube][?options]
port または host と port のいずれかを省略できます(localhost と 11300)。tube を省略すると、Beanstalk コンポーネントは "default" という名前の tube を使用します。
beanstalk://localhost:11300/tube1+tube2
beanstalk://localhost:11300/tube1+tube2
一般的な URI オプション リンクのコピーリンクがクリップボードにコピーされました!
|
名前
|
デフォルト値
|
説明
|
|---|---|---|
| jobPriority | 1000 | ジョブの優先度。(0 は最大で、Beantalk プロトコルを参照) |
| jobDelay | 0 | ジョブの遅延(秒単位)。 |
| jobTimeToRun | 60 | 秒単位でのジョブの実行時間(0 の場合)、beanstalkd デーモンがそれを 1 に自動的に引き上げます。Beanstalk プロトコルを参照してください)。 |
プロデューサー UIR オプション リンクのコピーリンクがクリップボードにコピーされました!
command パラメーターの影響を受けます。このパラメーターは、ジョブの動作を指示します。
|
名前
|
デフォルト値
|
説明
|
|---|---|---|
| command | put |
|
コンシューマー UIR オプション リンクのコピーリンクがクリップボードにコピーされました!
consumer.awaitJob パラメーターによって制御されます。このパラメーターは、デフォルトで true に相当します(Beantalkd の性質)。
delete を呼び出して、失敗時に bury を呼び出します。URI で consumer.onFailure パラメーターを指定すると、失敗時に実行するコマンドを選択できます。bury、delete または release の値を取ることができます。
consumer.useBlockIO があります。デフォルトでは、true です。
release を指定する際には、失敗したジョブが同じ tube ですぐに利用可能になり、コンシューマーが再度取得を試みるため注意してください。release を指定し、jobDelay を指定できます。
|
名前
|
デフォルト値
|
説明
|
|---|---|---|
| onFailure | bury | 処理に失敗した場合に使用するコマンド。bury、delete、または release のいずれかを選択できます。 |
| useBlockIO | true | blockIO を使用するかどうか。 |
| awaitJob | true | beanstalk からジョブを確認する前にジョブが完了するまで待機するかどうか。 |
コンシューマーヘッダー リンクのコピーリンクがクリップボードにコピーされました!
|
プロパティー
|
タイプ
|
説明
|
|---|---|---|
| beanstalk.jobId | long | ジョブ ID: |
| beanstalk.tube | string | このジョブを含む tube の名前 |
| beanstalk.state | string | "ready" または "delayed" または "reserved" または "buried" (予約されている必要があります) |
| beanstalk.priority | long | 優先度値セット |
| beanstalk.age | int | このジョブを作成した put コマンドからの秒単位の時間 |
| beanstalk.time-left | int | サーバーがこのジョブを準備状態にあるキューに配置するまでの秒数 |
| beanstalk.timeouts | int | 予約中にこのジョブがタイムアウトした回数 |
| beanstalk.releases | int | クライアントが予約からこのジョブをリリースした回数 |
| beanstalk.buries | int | このジョブが入念された回数 |
| beanstalk.kicks | int | このジョブが起動した回数 |
例 リンクのコピーリンクがクリップボードにコピーされました!
from("timer:dig?period=30seconds").
setBody(constant(10)).log("Kick ${in.body} buried/delayed tasks").
to("beanstalk:testTube?command=kick");
from("timer:dig?period=30seconds").
setBody(constant(10)).log("Kick ${in.body} buried/delayed tasks").
to("beanstalk:testTube?command=kick");
第14章 Bindy リンクのコピーリンクがクリップボードにコピーされました!
Bindy コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
camel-bindy コンポーネントは、Java Bean を介して構造化されていないデータの解析とバインディングを有効にします。これらの Java Bean はアノテーションで定義されたバインディングマッピングで設定されます。
BindyCsvDataFormat unmarshall CSV データをドメインモデルに提供することもできます。
Camel on EAP デプロイメント リンクのコピーリンクがクリップボードにコピーされました!
第15章 Box リンクのコピーリンクがクリップボードにコピーされました!
Box コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
camel-box コンポーネントを設定するには、Security Guide の Configuring Transport Security for Camel Components の章を参照してください。
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-box</artifactId>
<version>${camel-version}</version>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-box</artifactId>
<version>${camel-version}</version>
</dependency>
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
box://endpoint-prefix/endpoint?[options]
box://endpoint-prefix/endpoint?[options]
- コラボレーション
- コメント
- events
- files
- folders
- groups
- poll-events
- search
- 共有コメント
- shared-files
- shared-folders
- shared-items
- users
Box コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
org.apache.camel.component.box.BoxConfiguration タイプのコンポーネントの Bean プロパティー configuration を使用して提供できます。これらのオプションは、エンドポイント URI で指定することもできます。
|
オプション
|
タイプ
|
説明
|
|
authSecureStorage
|
com.box.boxjavalibv2.authorization.IAuthSecureStorage
|
OAuth Secure Storage コールバックは、OAuth トークンを提供および保存するために使用できます。コールバックは最初の呼び出し時に null を返し、コンポーネントがアプリケーションのログインおよび承認を行い、OAuth トークンを取得できるようにします。これにより、セキュアなストレージに保存できます。コンポーネントがトークンを自動的に作成できるようにするには、ユーザーパスワードを指定する必要があります。
|
|
boxConfig
|
com.box.boxjavalibv2.IBoxConfig
|
カスタム Box SDK 設定(通常は必要ありません)
|
|
clientId
|
文字列
|
Box アプリケーションクライアント ID
|
|
clientSecret
|
文字列
|
Box アプリケーションクライアントシークレット
|
|
connectionManagerBuilder
|
com.box.boxjavalibv2.BoxConnectionManagerBuilder
|
カスタム Box 接続マネージャービルダー。基礎となる HttpClient の最大接続などのデフォルト設定を上書きするために使用されます。
|
|
httpParams
|
java.util.Map
|
プロキシーホストなどの設定用のカスタム HTTP パラメーター
|
|
loginTimeout
|
int
|
コンポーネントが Box.com からの応答を待つ時間。デフォルトは 30 秒です。
|
|
refreshListener
|
com.box.boxjavalibv2.authorization.OAuthRefreshListener
|
Camel アプリケーションがルート外のアクセストークンを使用する必要がある場合は、トークン更新の OAuth リスナー
|
|
revokeOnShutdown
|
boolean
|
ルートシャットダウン時に OAuth 更新トークンを取り消すフラグ。デフォルトは false です。ユーザーパスワードを指定して、カスタム IAuthSecureStorage または自動コンポーネントのログインのいずれかを使用して再起動時に新しい更新トークンが必要になります。
|
|
sharedLink
|
文字列
|
shared-* エンドポイントのボックス共有リンク。共有コメント、ファイル、またはフォルダーのリンクにすることができます。
|
|
sharedPassword
|
文字列
|
共有リンクに関連付けられたパスワード。sharedLink で指定する必要があります。
|
|
userName
|
文字列
|
Box ユーザー名(指定が必要)
|
|
userPassword
|
文字列
|
Box ユーザーパスワード。authSecureStorage が設定されていない場合や、最初の呼び出しで null を返す必要があります。
|
プロデューサーエンドポイント: リンクのコピーリンクがクリップボードにコピーされました!
inBody を使用することもできます。
CamelBox.<option> の形式で指定する必要があります。inBody オプションはメッセージヘッダーを上書きすることに注意してください。つまり、エンドポイントオプション inBody=option は CamelBox.option ヘッダーを上書きすることに注意してください。
null であると想定されます。null 値は、他のオプションが一致するエンドポイントを満たさない場合にのみ使用されることに注意してください。
エンドポイント接頭辞コラボレーション リンクのコピーリンクがクリップボードにコピーされました!
collaborations で呼び出すことができます。
box://collaborations/endpoint?[options]
box://collaborations/endpoint?[options]
|
エンドポイント
|
短縮形エイリアス
|
オプション
|
結果ボディーのタイプ
|
|
createCollaboration
|
create
|
collabRequest, folderId
|
com.box.boxjavalibv2.dao.BoxCollaboration
|
|
deleteCollaboration
|
delete
|
collabId, defaultRequest
|
|
|
getAllCollaborations
|
allCollaborations
|
getAllCollabsRequest
|
java.util.List
|
|
getCollaboration
|
コラボレーション
|
collabId, defaultRequest
|
com.box.boxjavalibv2.dao.BoxCollaboration
|
|
updateCollaboration
|
update
|
collabId, collabRequest
|
com.box.boxjavalibv2.dao.BoxCollaboration
|
コラボレーションの URI オプション リンクのコピーリンクがクリップボードにコピーされました!
|
名前
|
タイプ
|
|
collabId
|
文字列
|
|
collabRequest
|
com.box.boxjavalibv2.requests.requestobjects.BoxCollabRequestObject
|
|
defaultRequest
|
com.box.restclientv2.requestsbase.BoxDefaultRequestObject
|
|
folderId
|
文字列
|
|
getAllCollabsRequest
|
com.box.boxjavalibv2.requests.requestobjects.BoxGetAllCollabsRequestObject
|
エンドポイント接頭辞イベント リンクのコピーリンクがクリップボードにコピーされました!
events で呼び出すことができます。
box://events/endpoint?[options]
box://events/endpoint?[options]
|
エンドポイント
|
短縮形エイリアス
|
オプション
|
結果ボディーのタイプ
|
|
getEventOptions
|
eventOptions
|
defaultRequest
|
com.box.boxjavalibv2.dao.BoxCollection
|
|
getEvents
|
events
|
eventRequest
|
com.box.boxjavalibv2.dao.BoxEventCollection
|
イベントの URI オプション リンクのコピーリンクがクリップボードにコピーされました!
|
名前
|
タイプ
|
|
defaultRequest
|
com.box.restclientv2.requestsbase.BoxDefaultRequestObject
|
|
eventRequest
|
com.box.boxjavalibv2.requests.requestobjects.BoxEventRequestObject
|
エンドポイント接頭辞グループ リンクのコピーリンクがクリップボードにコピーされました!
groups で呼び出すことができます。
box://groups/endpoint?[options]
box://groups/endpoint?[options]
|
エンドポイント
|
短縮形エイリアス
|
オプション
|
結果ボディーのタイプ
|
|
createGroup
|
|
[groupRequest], [name]
|
com.box.boxjavalibv2.dao.BoxGroup
|
|
createMembership
|
|
[groupId, role, userId], [groupMembershipRequest]
|
com.box.boxjavalibv2.dao.BoxGroupMembership
|
|
deleteGroup
|
delete
|
defaultRequest, groupId
|
|
|
deleteMembership
|
delete
|
defaultRequest, membershipId
|
|
|
getAllCollaborations
|
allCollaborations
|
defaultRequest, groupId
|
com.box.boxjavalibv2.dao.BoxCollection
|
|
getAllGroups
|
allGroups
|
defaultRequest
|
com.box.boxjavalibv2.dao.BoxCollection
|
|
getMembership
|
メンバーシップ
|
defaultRequest, membershipId
|
com.box.boxjavalibv2.dao.BoxGroupMembership
|
|
getMemberships
|
メンバーシップ
|
defaultRequest, groupId
|
com.box.boxjavalibv2.dao.BoxCollection
|
|
updateGroup
|
update
|
groupId、groupRequest
|
com.box.boxjavalibv2.dao.BoxGroup
|
|
updateMembership
|
update
|
[groupMembershipRequest], [role], membershipId
|
com.box.boxjavalibv2.dao.BoxGroupMembership
|
グループの URI オプション リンクのコピーリンクがクリップボードにコピーされました!
|
名前
|
タイプ
|
|
defaultRequest
|
com.box.restclientv2.requestsbase.BoxDefaultRequestObject
|
|
groupId
|
文字列
|
|
groupMembershipRequest
|
com.box.boxjavalibv2.requests.requestobjects.BoxGroupMembershipRequestObject
|
|
groupRequest
|
com.box.boxjavalibv2.requests.requestobjects.BoxGroupRequestObject
|
|
membershipId
|
文字列
|
|
name
|
文字列
|
|
role
|
文字列
|
|
userId
|
文字列
|
エンドポイント接頭辞検索 リンクのコピーリンクがクリップボードにコピーされました!
search で呼び出すことができます。
box://search/endpoint?[options]
box://search/endpoint?[options]
|
エンドポイント
|
短縮形エイリアス
|
オプション
|
結果ボディーのタイプ
|
|
search
|
|
defaultRequest、searchQuery
|
com.box.boxjavalibv2.dao.BoxCollection
|
検索の URI オプション リンクのコピーリンクがクリップボードにコピーされました!
|
名前
|
タイプ
|
|
defaultRequest
|
com.box.restclientv2.requestsbase.BoxDefaultRequestObject
|
|
searchQuery
|
文字列
|
エンドポイント接頭辞のコメントと共有コメント リンクのコピーリンクがクリップボードにコピーされました!
shared-comments で呼び出すことができます。shared-comments 接頭辞には sharedLink および sharedPassword プロパティーが必要です。
box://comments/endpoint?[options]
box://shared-comments/endpoint?[options]
box://comments/endpoint?[options]
box://shared-comments/endpoint?[options]
|
エンドポイント
|
短縮形エイリアス
|
オプション
|
結果ボディーのタイプ
|
|
addComment
|
|
[commentRequest], [commentedItemId, commentedItemType, message]
|
com.box.boxjavalibv2.dao.BoxComment
|
|
deleteComment
|
delete
|
commentId, defaultRequest
|
|
|
getComment
|
comment
|
commentId, defaultRequest
|
com.box.boxjavalibv2.dao.BoxComment
|
|
updateComment
|
update
|
commentId, commentRequest
|
com.box.boxjavalibv2.dao.BoxComment
|
コメントおよび共有コメントの URI オプション リンクのコピーリンクがクリップボードにコピーされました!
|
名前
|
タイプ
|
|
commentId
|
文字列
|
|
commentRequest
|
com.box.boxjavalibv2.requests.requestobjects.BoxCommentRequestObject
|
|
commentedItemId
|
文字列
|
|
commentedItemType
|
com.box.boxjavalibv2.dao.IBoxType
|
|
defaultRequest
|
com.box.restclientv2.requestsbase.BoxDefaultRequestObject
|
|
message
|
文字列
|
エンドポイント接頭辞ファイルと共有ファイル リンクのコピーリンクがクリップボードにコピーされました!
files または shared-files で呼び出すことができます。shared-files 接頭辞には sharedLink および sharedPassword プロパティーが必要です。
box://files/endpoint?[options] box://shared-files/endpoint?[options]
box://files/endpoint?[options]
box://shared-files/endpoint?[options]
|
エンドポイント
|
短縮形エイリアス
|
オプション
|
結果ボディーのタイプ
|
|
copyFile
|
|
fileId, itemCopyRequest
|
com.box.boxjavalibv2.dao.BoxFile
|
|
createSharedLink
|
create
|
fileId, sharedLinkRequest
|
com.box.boxjavalibv2.dao.BoxFile
|
|
deleteFile
|
|
defaultRequest, fileId
|
|
|
downloadFile
|
ダウンロード
|
[destination, listener], [listener, outputStreams], defaultRequest, fileId
|
java.io.InputStream
|
|
downloadThumbnail
|
ダウンロード
|
extension, fileId, imageRequest
|
java.io.InputStream
|
|
getFile
|
file
|
defaultRequest, fileId
|
com.box.boxjavalibv2.dao.BoxFile
|
|
getFileComments
|
fileComments
|
defaultRequest, fileId
|
com.box.boxjavalibv2.dao.BoxCollection
|
|
getFileVersions
|
fileVersions
|
defaultRequest, fileId
|
java.util.List
|
|
getPreview
|
preview
|
extension, fileId, imageRequest
|
com.box.boxjavalibv2.dao.BoxPreview
|
|
getThumbnail
|
thumbnail
|
extension, fileId, imageRequest
|
com.box.boxjavalibv2.dao.BoxThumbnail
|
|
updateFileInfo
|
update
|
fileId, fileRequest
|
com.box.boxjavalibv2.dao.BoxFile
|
|
uploadFile
|
upload
|
fileUploadRequest
|
com.box.boxjavalibv2.dao.BoxFile
|
|
uploadNewVersion
|
upload
|
fileId, fileUploadRequest
|
com.box.boxjavalibv2.dao.BoxFile
|
ファイルおよび shared-files の URI オプション リンクのコピーリンクがクリップボードにコピーされました!
|
名前
|
タイプ
|
|
defaultRequest
|
com.box.restclientv2.requestsbase.BoxDefaultRequestObject
|
|
destination
|
java.io.File
|
|
extension
|
文字列
|
|
fileId
|
文字列
|
|
fileRequest
|
com.box.boxjavalibv2.requests.requestobjects.BoxFileRequestObject
|
|
fileUploadRequest
|
com.box.restclientv2.requestsbase.BoxFileUploadRequestObject
|
|
imageRequest
|
com.box.boxjavalibv2.requests.requestobjects.BoxImageRequestObject
|
|
itemCopyRequest
|
com.box.boxjavalibv2.requests.requestobjects.BoxItemCopyRequestObject
|
|
listener
|
com.box.boxjavalibv2.filetransfer.IFileTransferListener
|
|
outputStreams
|
java.io.OutputStream[]
|
|
sharedLinkRequest
|
com.box.boxjavalibv2.requests.requestobjects.BoxSharedLinkRequestObject
|
エンドポイント接頭辞フォルダーおよび共有フォルダー リンクのコピーリンクがクリップボードにコピーされました!
folders または shared-folders で呼び出すことができます。接頭辞 shared-folders には sharedLink および sharedPassword プロパティーが必要です。
box://folders/endpoint?[options]
box://shared-folders/endpoint?[options]
box://folders/endpoint?[options]
box://shared-folders/endpoint?[options]
|
エンドポイント
|
短縮形エイリアス
|
オプション
|
結果ボディーのタイプ
|
|
copyFolder
|
|
folderId, itemCopyRequest
|
com.box.boxjavalibv2.dao.BoxFolder
|
|
createFolder
|
create
|
folderRequest
|
com.box.boxjavalibv2.dao.BoxFolder
|
|
createSharedLink
|
create
|
folderId, sharedLinkRequest
|
com.box.boxjavalibv2.dao.BoxFolder
|
|
deleteFolder
|
delete
|
folderDeleteRequest, folderId
|
|
|
getFolder
|
folder
|
defaultRequest, folderId
|
com.box.boxjavalibv2.dao.BoxFolder
|
|
getFolderCollaborations
|
folderCollaborations
|
defaultRequest, folderId
|
java.util.List
|
|
getFolderItems
|
folderItems
|
folderId, pagingRequest
|
com.box.boxjavalibv2.dao.BoxCollection
|
|
updateFolderInfo
|
update
|
folderId, folderRequest
|
com.box.boxjavalibv2.dao.BoxFolder
|
フォルダーまたは共有フォルダーの URI オプション リンクのコピーリンクがクリップボードにコピーされました!
|
名前
|
タイプ
|
|
defaultRequest
|
com.box.restclientv2.requestsbase.BoxDefaultRequestObject
|
|
folderDeleteRequest
|
com.box.boxjavalibv2.requests.requestobjects.BoxFolderDeleteRequestObject
|
|
folderId
|
文字列
|
|
folderRequest
|
com.box.boxjavalibv2.requests.requestobjects.BoxFolderRequestObject
|
|
itemCopyRequest
|
com.box.boxjavalibv2.requests.requestobjects.BoxItemCopyRequestObject
|
|
pagingRequest
|
com.box.boxjavalibv2.requests.requestobjects.BoxPagingRequestObject
|
|
sharedLinkRequest
|
com.box.boxjavalibv2.requests.requestobjects.BoxSharedLinkRequestObject
|
エンドポイント接頭辞 shared-items リンクのコピーリンクがクリップボードにコピーされました!
shared-items で呼び出すことができます。
box://shared-items/endpoint?[options]
box://shared-items/endpoint?[options]
|
エンドポイント
|
短縮形エイリアス
|
オプション
|
結果ボディーのタイプ
|
|
getSharedItem
|
sharedItem
|
defaultRequest
|
com.box.boxjavalibv2.dao.BoxItem
|
shared-items の URI オプション リンクのコピーリンクがクリップボードにコピーされました!
|
名前
|
タイプ
|
|
defaultRequest
|
com.box.restclientv2.requestsbase.BoxDefaultRequestObject
|
エンドポイント接頭辞ユーザー リンクのコピーリンクがクリップボードにコピーされました!
users で呼び出すことができます。
box://users/endpoint?[options]
box://users/endpoint?[options]
|
エンドポイント
|
短縮形エイリアス
|
オプション
|
結果ボディーのタイプ
|
|
addEmailAlias
|
|
emailAliasRequest, userId
|
com.box.boxjavalibv2.dao.BoxEmailAlias
|
|
createEnterpriseUser
|
create
|
userRequest
|
com.box.boxjavalibv2.dao.BoxUser
|
|
deleteEmailAlias
|
|
defaultRequest, emailId, userId
|
|
|
deleteEnterpriseUser
|
|
userDeleteRequest, userId
|
|
|
getAllEnterpriseUser
|
allEnterpriseUser
|
defaultRequest, filterTerm
|
java.util.List
|
|
getCurrentUser
|
currentUser
|
defaultRequest
|
com.box.boxjavalibv2.dao.BoxUser
|
|
getEmailAliases
|
emailAliases
|
defaultRequest, userId
|
java.util.List
|
|
moveFolderToAnotherUser
|
|
folderId、simpleUserRequest、userId
|
com.box.boxjavalibv2.dao.BoxFolder
|
|
updateUserInformaiton
|
update
|
userId, userRequest
|
com.box.boxjavalibv2.dao.BoxUser
|
|
updateUserPrimaryLogin
|
update
|
userId, userUpdateLoginRequest
|
com.box.boxjavalibv2.dao.BoxUser
|
ユーザーの URI オプション リンクのコピーリンクがクリップボードにコピーされました!
|
名前
|
タイプ
|
|
defaultRequest
|
com.box.restclientv2.requestsbase.BoxDefaultRequestObject
|
|
emailAliasRequest
|
com.box.boxjavalibv2.requests.requestobjects.BoxEmailAliasRequestObject
|
|
emailId
|
文字列
|
|
filterTerm
|
文字列
|
|
folderId
|
文字列
|
|
simpleUserRequest
|
com.box.boxjavalibv2.requests.requestobjects.BoxSimpleUserRequestObject
|
|
userDeleteRequest
|
com.box.boxjavalibv2.requests.requestobjects.BoxUserDeleteRequestObject
|
|
userId
|
文字列
|
|
userRequest
|
com.box.boxjavalibv2.requests.requestobjects.BoxUserRequestObject
|
|
userUpdateLoginRequest
|
com.box.boxjavalibv2.requests.requestobjects.BoxUserUpdateLoginRequestObject
|
コンシューマーエンドポイント: リンクのコピーリンクがクリップボードにコピーされました!
box://poll-events/endpoint?[options]
box://poll-events/endpoint?[options]
|
エンドポイント
|
短縮形エイリアス
|
オプション
|
結果ボディーのタイプ
|
|
poll
|
|
limit、streamPosition、streamType
|
デフォルトでは com.box.boxjavalibv2.dao.BoxEvent、または consumer.splitResult=false の場合は com.box.boxjavalibv2.dao.BoxEventCollection です。
|
poll-events の URI オプション リンクのコピーリンクがクリップボードにコピーされました!
|
名前
|
タイプ
|
|
limit
|
整数
|
|
streamPosition
|
Long
|
|
streamType
|
文字列
|
|
splitResult
|
boolean
|
メッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
メッセージボディー リンクのコピーリンクがクリップボードにコピーされました!
型コンバーター リンクのコピーリンクがクリップボードにコピーされました!
ユースケース リンクのコピーリンクがクリップボードにコピーされました!
from("file:...")
.to("box://files/upload/inBody=fileUploadRequest");
from("file:...")
.to("box://files/upload/inBody=fileUploadRequest");
from("box://poll-events/poll?streamPosition=-1&streamType=all&limit=100")
.to("bean:blah");
from("box://poll-events/poll?streamPosition=-1&streamType=all&limit=100")
.to("bean:blah");
from("direct:foo")
.setHeader("CamelBox.fileId", header("fileId"))
.to("box://files/download")
.to("file://...");
from("direct:foo")
.setHeader("CamelBox.fileId", header("fileId"))
.to("box://files/download")
.to("file://...");
第16章 Braintree リンクのコピーリンクがクリップボードにコピーされました!
Braintree コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
pom.xml に追加する必要があります。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
braintree://endpoint-prefix/endpoint?[options]
braintree://endpoint-prefix/endpoint?[options]
addOnaddressclientTokencreditCardverificationcustomerdiscountmerchantAccountpaymentmethodpaymentmethodNonceplansettlementBatchSummarysubscriptiontransactionwebhookNotification
BraintreeComponent リンクのコピーリンクがクリップボードにコピーされました!
| オプション | タイプ | 説明 |
|---|---|---|
environment
|
String
|
要求の転送先を指定する値 - サンドボックスまたは実稼働 |
merchantId
|
String
|
使用するゲートウェイアカウントの一意の識別子。これは、実際の業者アカウント ID とは異なります。 |
publicKey
|
String
|
ユーザー固有のパブリック ID |
privateKey
|
String
|
共有すべきでないユーザー固有のセキュアな ID。 |
httpLogLevel
|
java.util.logging.Level
|
HTTP 呼び出し の Camel 2.17.1 ロギングレベル |
httpLogName
|
String
|
http 呼び出しをログに記録するために使用する Camel 2 .17.1 ログカテゴリー。デフォルトは Braintree です。 |
httpReadTimeout
|
Integer
|
HTTP 呼び出しの Camel 2.17.1 の読み取りタイムアウト |
プロデューサーエンドポイント: リンクのコピーリンクがクリップボードにコピーされました!
endpoint prefix addOn リンクのコピーリンクがクリップボードにコピーされました!
braintree://addOn/endpoint
braintree://addOn/endpoint
| エンドポイント | 短縮形エイリアス | オプション | 結果ボディーのタイプ |
|---|---|---|---|
| all | List<com.braintreegateway.Addon> |
エンドポイント接頭辞 アドレス リンクのコピーリンクがクリップボードにコピーされました!
braintree://address/endpoint?[options]
braintree://address/endpoint?[options]
| エンドポイント | 短縮形エイリアス | オプション | 結果ボディーのタイプ |
|---|---|---|---|
create
|
customerId, request
|
com.braintreegateway.Result<com.braintreegateway.Address>
|
|
delete
|
customerId, id
|
com.braintreegateway.Result<com.braintreegateway.Address>
|
|
find
|
customerId, id
|
com.braintreegateway.Address
|
|
update
|
customerId, id, request
|
com.braintreegateway.Result<com.braintreegateway.Address>
|
| 名前 | タイプ |
|---|---|
customerId
|
String
|
request
|
com.braintreegateway.AddressRequest
|
id
|
String
|
エンドポイント接頭辞 clientToken リンクのコピーリンクがクリップボードにコピーされました!
braintree://clientToken/endpoint?[options]
braintree://clientToken/endpoint?[options]
| エンドポイント | 短縮形エイリアス | オプション | 結果ボディーのタイプ |
|---|---|---|---|
generate
|
request
|
String
|
| 名前 | タイプ |
|---|---|
request
|
com.braintreegateway.ClientTokenrequest
|
エンドポイント接頭辞 creditCardVerification リンクのコピーリンクがクリップボードにコピーされました!
braintree://creditCardVerification/endpoint?[options]
braintree://creditCardVerification/endpoint?[options]
| エンドポイント | 短縮形エイリアス | オプション | 結果ボディーのタイプ |
|---|---|---|---|
find
|
id
|
com.braintreegateway.CreditCardVerification
|
|
search
|
query
|
com.braintreegateway.ResourceCollection<com.braintreegateway.CreditCardVerification>
|
| 名前 | タイプ |
|---|---|
id
|
String
|
query
|
com.braintreegateway.CreditCardVerificationSearchRequest
|
エンドポイント接頭辞 customer リンクのコピーリンクがクリップボードにコピーされました!
braintree://customer/endpoint?[options]
braintree://customer/endpoint?[options]
| エンドポイント | 短縮形エイリアス | オプション | 結果ボディーのタイプ |
|---|---|---|---|
| all | |||
| create | request | com.braintreegateway.Result<com.braintreegateway.Customer> | |
| delete | id |
com.braintreegateway.Result<com.braintreegateway.Customer>
|
|
| find | id |
com.braintreegateway.Customer
|
|
| search | query |
com.braintreegateway.ResourceCollection<com.braintreegateway.Customer>
|
|
| update | Id、request |
com.braintreegateway.Result<com.braintreegateway.Customer>
|
| 名前 | タイプ |
|---|---|
| id | 文字列 |
| request |
com.braintreegateway.CustomerRequest
|
| query |
com.braintreegateway.CustomerSearchRequest
|
エンドポイント接頭辞 discount リンクのコピーリンクがクリップボードにコピーされました!
braintree://discount/endpoint
braintree://discount/endpoint
| エンドポイント | 短縮形エイリアス | オプション | 結果ボディーのタイプ |
|---|---|---|---|
| all | List<com.braintreegateway.Discount> |
エンドポイント接頭辞 merchantAccount リンクのコピーリンクがクリップボードにコピーされました!
braintree://merchantAccount/endpoint?[options]
braintree://merchantAccount/endpoint?[options]
| エンドポイント | 短縮形エイリアス | オプション | 結果ボディーのタイプ |
|---|---|---|---|
| create | request | com.braintreegateway.Result<com.braintreegateway.MerchantAccount> | |
| find | id | com.braintreegateway.MerchantAccount | |
| update | Id、request | com.braintreegateway.Result<com.braintreegateway.MerchantAccount> |
| 名前 | タイプ |
|---|---|
| id | 文字列 |
| request |
com.braintreegateway.MerchantAccountRequest
|
エンドポイント接頭辞 paymentMethod リンクのコピーリンクがクリップボードにコピーされました!
braintree://paymentMethod/endpoint?[options]
braintree://paymentMethod/endpoint?[options]
| エンドポイント | 短縮形エイリアス | オプション | 結果ボディーのタイプ |
|---|---|---|---|
| create | request | com.braintreegateway.Result<com.braintreegateway.PaymentMethod> | |
| delete | token |
com.braintreegateway.Result<com.braintreegateway.PaymentMethod>
|
|
| find |
token
|
com.braintreegateway.PaymentMethod | |
| update |
token、request
|
com.braintreegateway.Result<com.braintreegateway.PaymentMethod> |
| 名前 | タイプ |
|---|---|
| token | 文字列 |
| request | com.braintreegateway.PaymentMethodRequest |
エンドポイント接頭辞 paymentMethodNonce リンクのコピーリンクがクリップボードにコピーされました!
braintree://paymentMethodNonce/endpoint?[options]
braintree://paymentMethodNonce/endpoint?[options]
| エンドポイント | 短縮形エイリアス | オプション | 結果ボディーのタイプ |
|---|---|---|---|
| create | paymentMethodToken | com.braintreegateway.Result<com.braintreegateway.PaymentMethodNonce> | |
| find | paymentMethodNonce | com.braintreegateway.PaymentMethodNonce |
| 名前 | タイプ |
|---|---|
paymentMethodToken
|
文字列 |
paymentMethodNonce
|
String
|
エンドポイント接頭辞 plan リンクのコピーリンクがクリップボードにコピーされました!
braintree://plan/endpoint
braintree://plan/endpoint
| エンドポイント | 短縮形エイリアス | オプション | 結果ボディーのタイプ |
|---|---|---|---|
| all | List<com.braintreegateway.Plan> |
エンドポイント接頭辞 settlementBatchSummary リンクのコピーリンクがクリップボードにコピーされました!
braintree://settlementBatchSummary/endpoint?[options]
braintree://settlementBatchSummary/endpoint?[options]
| エンドポイント | 短縮形エイリアス | オプション | 結果ボディーのタイプ |
|---|---|---|---|
| generate | request |
com.braintreegateway.Result<com.braintreegateway.SettlementBatchSummary>
|
| 名前 | タイプ |
|---|---|
| settlementDate | カレンダー |
| groupByCustomField | 文字列 |
エンドポイント接頭辞 subscription リンクのコピーリンクがクリップボードにコピーされました!
braintree://subscription/endpoint?[options]
braintree://subscription/endpoint?[options]
| エンドポイント | 短縮形エイリアス | オプション | 結果ボディーのタイプ |
|---|---|---|---|
| cancel | id |
com.braintreegateway.Result<com.braintreegateway.Subscription>
|
|
| create | request |
com.braintreegateway.Result<com.braintreegateway.Subscription>
|
|
| delete | customerId, id |
com.braintreegateway.Result<com.braintreegateway.Subscription>
|
|
| find | id |
com.braintreegateway.Subscription
|
|
| retryCharge | subscriptionId, amount |
com.braintreegateway.Result<com.braintreegateway.Transaction>
|
|
| search | searchRequest |
com.braintreegateway.ResourceCollection<com.braintreegateway.Subscription>
|
|
| update | Id、request |
com.braintreegateway.Result<com.braintreegateway.Subscription>
|
| 名前 | タイプ |
|---|---|
| id | 文字列 |
| request | com.braintreegateway.SubscriptionRequest |
customerId
|
文字列 |
subscriptionId
|
文字列 |
amount
|
BigDecimal |
searchRequest
|
com.braintreegateway.SubscriptionSearchRequest. |
エンドポイント接頭辞 transaction リンクのコピーリンクがクリップボードにコピーされました!
braintree://transaction/endpoint?[options]
braintree://transaction/endpoint?[options]
| エンドポイント | 短縮形エイリアス | オプション | 結果ボディーのタイプ |
|---|---|---|---|
| cancelRelease | id |
com.braintreegateway.Result<com.braintreegateway.Transaction>
|
|
| cloneTransaction | id, cloneRequest |
com.braintreegateway.Result<com.braintreegateway.Transaction>
|
|
| クレジット | request |
com.braintreegateway.Result<com.braintreegateway.Transaction>
|
|
| find | id | com.braintreegateway.Transaction | |
| holdInEscrow | id | com.braintreegateway.Result<com.braintreegateway.Transaction> | |
| releaseFromEscrow |
id
|
com.braintreegateway.Result<com.braintreegateway.Transaction>
|
|
| refund | id、amount |
com.braintreegateway.Result<com.braintreegateway.Transaction>
|
|
| sale | request |
com.braintreegateway.Result<com.braintreegateway.Transaction>
|
|
| search | query |
com.braintreegateway.ResourceCollection<com.braintreegateway.Transaction>
|
|
| submitForPartialSettlement | id、amount |
com.braintreegateway.Result<com.braintreegateway.Transaction>
|
|
| submitForSettlement | Id, amount, request |
com.braintreegateway.Result<com.braintreegateway.Transaction>
|
|
| voidTransaction | id |
com.braintreegateway.Result<com.braintreegateway.Transaction>
|
| 名前 | タイプ |
|---|---|
| id | 文字列 |
| request | com.braintreegateway.TransactionCloneRequest |
cloneRequest
|
com.braintreegateway.TransactionCloneRequest |
| amount | BigDecimal |
query
|
com.braintreegateway.TransactionSearchRequest |
エンドポイント接頭辞 webhookNotification リンクのコピーリンクがクリップボードにコピーされました!
braintree://webhookNotification/endpoint?[options]
braintree://webhookNotification/endpoint?[options]
| エンドポイント | 短縮形エイリアス | オプション | 結果ボディーのタイプ |
|---|---|---|---|
| parse | 署名、ペイロード | com.braintreegateway.WebhookNotification | |
| verify | challenge | 文字列 |
| 名前 | タイプ |
|---|---|
signature
|
String
|
payload
|
文字列 |
challenge
|
String
|
コンシューマーエンドポイント リンクのコピーリンクがクリップボードにコピーされました!
メッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
Message body リンクのコピーリンクがクリップボードにコピーされました!
Examples リンクのコピーリンクがクリップボードにコピーされました!
第17章 参照 リンクのコピーリンクがクリップボードにコピーされました!
コンポーネントの参照 リンクのコピーリンクがクリップボードにコピーされました!
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
browse:someName
browse:someName
例 リンクのコピーリンクがクリップボードにコピーされました!
browse: コンポーネントを挿入し、パススルーしているエクスチェンジを参照できます。
from("activemq:order.in").to("browse:orderReceived").to("bean:processOrder");
from("activemq:order.in").to("browse:orderReceived").to("bean:processOrder");
第18章 Cache リンクのコピーリンクがクリップボードにコピーされました!
18.1. キャッシュコンポーネント リンクのコピーリンクがクリップボードにコピーされました!
Camel 2.1 以降で利用可能 リンクのコピーリンクがクリップボードにコピーされました!
pom.xml に以下の依存関係を追加する必要があります。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
cache://cacheName[?options]
cache://cacheName[?options]
?option=value&option=#beanRef&.. の形式で追加できます。
オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | デフォルト値 | 説明 |
|---|---|---|
maxElementsInMemory
|
1000
|
定義されたキャッシュに格納できる要素の数 |
memoryStoreEvictionPolicy
|
MemoryStoreEvictionPolicy.LFU
|
定義されたキャッシュに保存される可能性のある要素の数。オプションは以下のとおりです。
|
overflowToDisk
|
true
|
キャッシュがディスクにオーバーフローできるかどうかを指定します。 |
eternal
|
false
|
要素が eternal かどうかを設定します。eternal の場合、タイムアウトは無視され、要素が期限切れになりません。
|
timeToLiveSeconds
|
300
|
作成時間と要素の有効期限の最大時間。要素が eternal でない場合にのみ使用されます。
|
timeToIdleSeconds
|
300
|
要素の有効期限が切れる前のアクセス間の最大時間 |
diskPersistent
|
false
|
ディスクストアが仮想マシンの再起動後も持続するかどうか。 |
diskExpiryThreadIntervalSeconds
|
120
|
ディスク期限切れスレッドの実行間隔(秒単位)。 |
cacheManagerFactory
|
null
|
Camel 2.8: EHCache net.sf.ehcache.CacheManager をインスタンス化して作成するカスタムファクトリーを使用する場合。タイプ: abstract org.apache.camel.component.cache.CacheManagerFactory
|
eventListenerRegistry
|
null
|
camel 2.8: 新しいキャッシュすべてに EHCache net.sf.ehcache.event.CacheEventListener の一覧を設定します。EHCache xml 設定のキャッシュごとに定義する必要はありません。Type: org.apache.camel.component.cache.CacheEventListenerRegistry
|
cacheLoaderRegistry
|
null
|
camel 2. 8: 新しいキャッシュごとに EHCache net.sf.ehcache.loader.CacheLoader Wrapper を拡張する org.apache.camel.component.cache.CacheLoaderWrapper の一覧を設定します。これは、EHCache xml 設定のキャッシュごとに定義する必要はありません。タイプ: org.apache.camel.component.cache.CacheLoaderRegistry
|
key
|
null
|
Camel 2.10: デフォルトではキャッシュキーを使用して を設定します。キーがメッセージヘッダーに提供されている場合は、ヘッダーのキーが優先されます。 |
operation
|
null
|
Camel 2.10: デフォルトではキャッシュ操作を使用して設定します。メッセージヘッダーで操作を行うと、ヘッダーからの操作が優先されます。 |
objectCache
|
false
|
Camel 2.10: シリアライズできないオブジェクトをキャッシュに格納できるようにするかどうか。このオプションを有効にすると、ディスクへのオーバーフローも有効にできません。 |
configurationFile
|
|
Camel 2.13/2.12.3: 使用する
ehcache.xml ファイルの場所を設定します(例:クラスパスからロードする classpath:com/foo/mycache.xml など)。設定が指定されていない場合は、EHCache のデフォルト設定が使用されます。
|
configuration
|
|
カスタムの
org.apache.camel.component.cache.CacheConfiguration 設定を使用します。
|
キャッシュコンポーネントのオプション リンクのコピーリンクがクリップボードにコピーされました!
|
名前
|
デフォルト値
|
説明
|
|---|---|---|
configuration
|
|
カスタムの
org.apache.camel.component.cache.CacheConfiguration 設定を使用します。
|
cacheManagerFactory
|
|
カスタム
org.apache.camel.component.cache.CacheManagerFactory を使用するには、を使用します。
|
configurationFile
|
|
Camel 2.13/2.12.3: 使用する
ehcache.xml ファイルの場所を設定します(例:クラスパスからロードする classpath:com/foo/mycache.xml など)。設定が指定されていない場合は、EHCache のデフォルト設定が使用されます。
|
Message Headers Camel 2.8 以降 リンクのコピーリンクがクリップボードにコピーされました!
| ヘッダー | 説明 |
|---|---|
CamelCacheOperation
|
キャッシュで実行される操作。有効なオプションは です。
|
CamelCacheKey
|
キャッシュに Message を保存するために使用されるキャッシュキー。CamelCacheOperation の場合、キャッシュキーは任意になります。 CamelCacheDeleteAll
|
CamelCache とユースケースが混在するように変更されました。これにより、他のヘッダーから個別のヘッダーを簡単に特定し、維持することができます。CacheConstants の変数名は変更されませんが、値のみが変更されました。また、キャッシュ操作の実行後に、これらのヘッダーがエクスチェンジから削除されるようになりました。
CamelCacheAdd および CamelCacheUpdate 操作は追加のヘッダーをサポートします。
| ヘッダー | タイプ | 説明 |
|---|---|---|
CamelCacheTimeToLive
|
整数
|
Camel 2.11: 存続時間(秒単位) |
CamelCacheTimeToIdle
|
整数
|
Camel 2.11: アイドル時間(秒単位) |
CamelCacheEternal
|
ブール値
|
Camel 2.11: コンテンツの対象となるかどうか。 |
キャッシュプロデューサー リンクのコピーリンクがクリップボードにコピーされました!
- 上記のメッセージ交換ヘッダーの設定。
- メッセージ交換ボディーにキャッシュに送信されるメッセージが含まれていることの確認
キャッシュコンシューマー リンクのコピーリンクがクリップボードにコピーされました!
- 追加/更新されたばかりのペイロードが含まれる Message Exchange ヘッダーと、メッセージ交換ヘッダーを含むエクスチェンジが配置および送信されます。
- CamelCacheDeleteAll 操作の場合、Message Exchange Header CamelCacheKey および Message Exchange Body は入力されません。
キャッシュプロセッサー リンクのコピーリンクがクリップボードにコピーされました!
- ボディー
- token
- XPath レベル
例 1: キャッシュの設定 リンクのコピーリンクがクリップボードにコピーされました!
例 2: キーのキャッシュへの追加 リンクのコピーリンクがクリップボードにコピーされました!
例 2: キャッシュ内の既存のキーの更新 リンクのコピーリンクがクリップボードにコピーされました!
例 3: キャッシュ内の既存のキーの削除 リンクのコピーリンクがクリップボードにコピーされました!
例 4: キャッシュ内のすべての既存キーの削除 リンクのコピーリンクがクリップボードにコピーされました!
例 5: キャッシュに登録されている変更のプロセッサーおよびその他のプロデューサーへの通知 リンクのコピーリンクがクリップボードにコピーされました!
例 6: プロセッサーを使用したペイロードをキャッシュ値で選択的に置き換える リンクのコピーリンクがクリップボードにコピーされました!
例 7: キャッシュからのエントリーの取得 リンクのコピーリンクがクリップボードにコピーされました!
例 8: キャッシュ内のエントリーの確認 リンクのコピーリンクがクリップボードにコピーされました!
EHCache の管理 リンクのコピーリンクがクリップボードにコピーされました!
ManagementService.registerMBeans(CacheManager.getInstance(), mbeanServer, true, true, true, true);
ManagementService.registerMBeans(CacheManager.getInstance(), mbeanServer, true, true, true, true);
Cache replication Camel 2.8+ リンクのコピーリンクがクリップボードにコピーされました!
ehcache.xmlを手動で設定できます。または、- 以下の 3 つのオプションを設定できます。
cacheManagerFactoryeventListenerRegistrycacheLoaderRegistry
ehcache.xml を使用することは適切ではありません。
CacheManager ごとおよび CacheEndpoint ごとに設定されるためです。また、開発フェーズでキャッシュ名がわからない場合は唯一の方法です。
例:JMS キャッシュレプリケーション リンクのコピーリンクがクリップボードにコピーされました!
18.2. cacheReplicationJMSExample リンクのコピーリンクがクリップボードにコピーされました!
例:JMS キャッシュレプリケーション リンクのコピーリンクがクリップボードにコピーされました!
CacheManagerFactory の独自の実装を作成します。
CacheLoaderWrapper の独自の実装を作成します。最も簡単な方法は以下のとおりです。
- cacheManagerFactory
- eventListenerRegistry
- cacheLoaderRegistry
第19章 CDI リンクのコピーリンクがクリップボードにコピーされました!
CDI コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
camel-cdi コンポーネントは CDI 統合を提供します。
@Inject
@ContextName("cdi-context")
private CamelContext camelctx;
@Inject
@ContextName("cdi-context")
private CamelContext camelctx;
Camel on EAP デプロイメント リンクのコピーリンクがクリップボードにコピーされました!
第20章 Cassandra リンクのコピーリンクがクリップボードにコピーされました!
Camel Cassandra コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
pom.xml に追加する必要があります。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
| URI | 説明 |
|---|---|
cql:localhost/keyspace
|
単一のホスト、デフォルトポート(通常はテスト用) |
cql:host1,host2/keyspace
|
マルチホスト、デフォルトポート |
cql:host1,host2:9042/keyspace
|
マルチホスト、カスタムポート |
cql:host1,host2
|
デフォルトのポートおよびキースペース |
cql:bean:sessionRef
|
提供されるセッション参照 |
cql:bean:clusterRef/keyspace
|
提供されるクラスター参照 |
エンドポイントオプション リンクのコピーリンクがクリップボードにコピーされました!
| オプション | デフォルト | 説明 |
|---|---|---|
clusterName
|
Cluster name
|
|
username and password
|
セッション認証
|
|
cql
|
CQL クエリー。メッセージヘッダーで上書きできます。
|
|
consistencyLevel
|
ANY, ONE, TWO, QUORUM, LOCAL_QUORUM...
|
|
prepareStatements
|
true
|
準備済みステートメント(デフォルト)を使用する(デフォルト)かどうか |
resultSetConversionStrategy
|
ALL
|
ResultSet がメッセージボディーに変換および変換する方法
ALL、ONE、LIMIT_10、および LIMIT_100...
|
メッセージ リンクのコピーリンクがクリップボードにコピーされました!
受信メッセージ リンクのコピーリンクがクリップボードにコピーされました!
Object または Object[] または Collection<Object>)があることを想定しています。メッセージボディーが null または空の場合、CQL クエリーはバインディングパラメーターなしで実行されます。
CamelCqlQuery(オプション、String): プレーンな文字列として、またはRegularStatementを使用してビルドした CQL クエリー。QueryBuilder
送信メッセージ リンクのコピーリンクがクリップボードにコピーされました!
resultSetConversionStrategy に応じて 1 つまたは複数の Cassandra Row オブジェクトを生成します。
List<Row>resultSetConversionStrategyがALLまたは の場合LIMIT_[0-9]+- single
RowifresultSetConversionStrategyONE resultSetConversionStrategyがカスタム実装である場合、それ以外ResultSetConversionStrategy
リポジトリー リンクのコピーリンクがクリップボードにコピーされました!
Idempotent リポジトリー リンクのコピーリンクがクリップボードにコピーされました!
NamedCassandraIdempotentRepository は、以下のような Cassandra テーブルにメッセージキーを保存します。
CassandraIdempotentRepository には NAME 列がなく、別のデータモデルを使用するように拡張することもできます。
| オプション | デフォルト | 説明 |
|---|---|---|
table
|
CAMEL_IDEMPOTENT
|
テーブル名 |
pkColumns
|
NAME, KEY
|
プライマリーキー列 |
name
|
Repository name, value used for NAME column (リポジトリー名、列に使用される値)
|
|
ttl
|
キーの有効期間 | |
writeConsistencyLevel
|
キーの挿入/削除に使用する一貫性レベル: ANY, ONE, TWO, QUORUM, ----------|-----… LOCAL_QUORUM
|
|
readConsistencyLevel
|
キーの読み取り/チェックに使用する一貫性レベル: ONE, TWO, QUORUM, LOCAL_QUORUM…
|
集約リポジトリー リンクのコピーリンクがクリップボードにコピーされました!
NamedCassandraAggregationRepository は、以下のように相関キーでエクスチェンジを Cassandra テーブルに保存します。
CassandraAggregationRepository には NAME 列がなく、別のデータモデルを使用するように拡張することもできます。
| オプション | デフォルト | 説明 |
|---|---|---|
table
|
CAMEL_AGGREGATION
|
テーブル名 |
pkColumns
|
NAME,KEY
|
プライマリーキー列 |
exchangeIdColumn
|
EXCHANGE_ID
|
エクスチェンジ ID 列 |
exchangeColumn
|
EXCHANGE
|
コンテンツ列の交換 |
name
|
Repository name, value used for NAME column (リポジトリー名、列に使用される値)
|
|
ttl
|
存続時間の交換 | |
writeConsistencyLevel
|
交換の挿入/削除に使用する一貫性レベル: ANY, ONE, TWO, QUORUM, ----------|-----… LOCAL_QUORUM
|
|
readConsistencyLevel
|
交換の読み取り/チェックに使用する一貫性レベル: ONE, TWO, QUORUM, LOCAL_QUORUM…
|
第21章 Chunk リンクのコピーリンクがクリップボードにコピーされました!
チャンクコンポーネント リンクのコピーリンクがクリップボードにコピーされました!
pom.xml に追加する必要があります。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
chunk:templateName[?options]
chunk:templateName[?options]
?option=value&option=value&...
オプション リンクのコピーリンクがクリップボードにコピーされました!
|
オプション
|
デフォルト
|
説明
|
|---|---|---|
allowContextMapAll (producer)
|
false
|
コンテキストマップが前詳細へのアクセスを許可するかどうかを設定します。デフォルトでは、メッセージの本文とヘッダーにのみアクセスできます。このオプションは、現在の Exchange および CamelContext へのフルアクセスに対して有効にできます。これを行うと、CamelContext API の全機能へのアクセスが開かれるため、潜在的なセキュリティーリスクが発生します。
|
allowTemplateFromHeader (producer)
|
false
|
ヘッダーのリソーステンプレートの使用を許可するかどうか (デフォルトは false)。このオプションを有効にすると、セキュリティーの問題があります。たとえば、ヘッダーに信頼されていないコンテンツやユーザー派生コンテンツが含まれている場合、これは最終的にエンドアプリケーションの信頼性および完全性に影響を与える可能性があるため、このオプションは注意して使用してください。
|
encoding
|
null
|
リソースコンテンツの文字エンコーディング。
|
|
themesFolder
|
null
|
テンプレート名をスキャンする代替フォルダー。
|
|
themeSubfolder
|
null
|
themeFolder パラメーターが設定されている場合にテンプレート名をスキャンする代替サブフォルダー。
|
themeLayer
|
null
|
テンプレートとして使用するテンプレートファイルの特定のレイヤー。
|
extension
|
null
|
themeFolder および themeSubfolder が設定されている場合にテンプレート名をスキャンする代替拡張。
|
チャンクコンテキスト リンクのコピーリンクがクリップボードにコピーされました!
MapExchange は以下のように転送されます。
|
key
|
value
|
|---|---|
exchange
|
Exchange 自体。
|
exchange.properties
|
Exchange プロパティー。
|
headers
|
In メッセージのヘッダー。
|
camelContext
|
Camel コンテキスト。
|
request
|
In メッセージ。
|
body
|
In メッセージのボディー。
|
response
|
Out メッセージ(InOut メッセージ交換パターンにのみ有効)。
|
動的テンプレート リンクのコピーリンクがクリップボードにコピーされました!
|
ヘッダー
|
タイプ
|
説明
|
サポートバージョン
|
|---|---|---|---|
|
ChunkConstants.CHUNK_RESOURCE_URI
|
文字列
|
設定されたエンドポイントの代わりに使用するテンプレートリソースの URI。
|
|
|
ChunkConstants.CHUNK_TEMPLATE
|
文字列
|
設定されたエンドポイントの代わりに使用するテンプレート。
|
|
サンプル リンクのコピーリンクがクリップボードにコピーされました!
from("activemq:My.Queue").
to("chunk:template");
from("activemq:My.Queue").
to("chunk:template");
JMSReplyTo ヘッダーがある)のメッセージの応答を形成するには、以下を実行します。
from("activemq:My.Queue").
to("chunk:template").
to("activemq:Another.Queue");
from("activemq:My.Queue").
to("chunk:template").
to("activemq:Another.Queue");
from("direct:in").
setHeader(ChunkConstants.CHUNK_RESOURCE_URI).constant("template").
to("chunk:dummy?allowTemplateFromHeader=true");
from("direct:in").
setHeader(ChunkConstants.CHUNK_RESOURCE_URI).constant("template").
to("chunk:dummy?allowTemplateFromHeader=true");
allowTemplateFromHeader オプションを有効にすると、セキュリティーの問題があります。たとえば、ヘッダーに信頼できないコンテンツまたはユーザー派生コンテンツが含まれる場合、これは最終的に、エンドアプリケーションの確実性と整合性に及ぼす可能性があるため、このオプションを使用してください。
from("direct:in").
to("chunk:file_example?themeFolder=template&themeSubfolder=subfolder&extension=chunk");
from("direct:in").
to("chunk:file_example?themeFolder=template&themeSubfolder=subfolder&extension=chunk");
電子メールのサンプル リンクのコピーリンクがクリップボードにコピーされました!
第22章 クラス リンクのコピーリンクがクリップボードにコピーされました!
クラスコンポーネント リンクのコピーリンクがクリップボードにコピーされました!
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
class:className[?options]
class:className[?options]
オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | タイプ | デフォルト | 説明 |
|---|---|---|---|
メソッド
|
文字列
|
null
|
Bean が呼び出されるメソッド名。指定のない場合は、Apache Camel はメソッド自体を選択しようとします。曖昧さが発生すると、例外が発生します。詳細は、Bean Binding を参照してください。 |
multiParameterArray
|
boolean
|
false
|
メッセージボディーから渡されるパラメーターを処理する方法。true の場合、In メッセージボディーはパラメーターの配列である必要があります。
|
bean.xxx
|
null
|
Camel 2.17: クラス名から create bean インスタンスで追加オプションを設定します。たとえば、Bean で
foo オプションを設定するには、bean.foo=123 を使用します。
|
?option=value&option=value&.. の形式で追加できます。
使用 リンクのコピーリンクがクリップボードにコピーされました!
MyFooBean を使用するには、次のようにする必要があります。
from("direct:start").to("class:org.apache.camel.component.bean.MyFooBean").to("mock:result");
from("direct:start").to("class:org.apache.camel.component.bean.MyFooBean").to("mock:result");
MyFooBean で呼び出すメソッドを指定することもできます(例: hello )。
from("direct:start").to("class:org.apache.camel.component.bean.MyFooBean?method=hello").to("mock:result");
from("direct:start").to("class:org.apache.camel.component.bean.MyFooBean?method=hello").to("mock:result");
作成されたインスタンスでのプロパティーの設定 リンクのコピーリンクがクリップボードにコピーされました!
setPrefix メソッドがある場合です。
# 構文を使用して、レジストリーで検索するプロパティーを参照することもできます。
foo でレジストリーから Bean を検索し、MyPrefixBean クラスの作成されたインスタンスで setCool メソッドを呼び出します。
第23章 CMIS リンクのコピーリンクがクリップボードにコピーされました!
CMIS コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
cmis://cmisServerUrl[?options]
cmis://cmisServerUrl[?options]
URI オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | デフォルト値 | コンテキスト | 説明 |
|---|---|---|---|
| queryMode |
false
|
プロデューサー | true の場合、はメッセージボディーから cmis クエリーを実行し、結果を返します。そうでない場合は、cmis リポジトリーにノードを作成します。 |
| query |
文字列
|
コンシューマー | リポジトリーに対して実行する cmis クエリー。指定しない場合、コンシューマーはコンテンツツリーを再帰的に反復することで、コンテンツリポジトリーからすべてのノードを取得します。 |
| username |
null
|
両方 | cmis リポジトリーのユーザー名 |
| password |
null
|
両方 | cmis リポジトリーのパスワード |
| repositoryId |
null
|
両方 | 使用するリポジトリーの ID。指定しない場合、最初に利用可能なリポジトリーが使用されます。 |
| pageSize |
100
|
両方 | ページごとに取得するノード数 |
| readCount |
0
|
両方 | 読み取るノードの最大数 |
| readContent |
false
|
両方 | true に設定すると、ドキュメントノードのコンテンツはプロパティーに加えて取得されます。 |
使用方法 リンクのコピーリンクがクリップボードにコピーされました!
プロデューサーによって評価されるメッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| ヘッダー | デフォルト値 | 説明 |
|---|---|---|
CamelCMISFolderPath
|
/
|
実行時に使用する現在のフォルダー。指定しない場合はルートフォルダーを使用します。 |
CamelCMISRetrieveContent
|
false
|
queryMode では、このヘッダーはプロデューサーがドキュメントノードの内容を取得するように強制します。
|
CamelCMISReadSize
|
0
|
読み取るノードの最大数。 |
cmis:path
|
null
|
CamelCMISFolderPath が設定されていない場合、はこの cmis プロパティーからノードのパスを見つけようとします。これは名前になります。
|
cmis:name
|
null
|
CamelCMISFolderPath が設定されていない場合、はこの cmis プロパティーからノードのパスを見つけようとします。これは path です。
|
cmis:objectTypeId
|
null
|
ノードのタイプ |
cmis:contentStreamMimeType
|
null
|
ドキュメントに設定する mimetype |
プロデューサー操作のクエリー中に設定されたメッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| ヘッダー | タイプ | 説明 |
|---|---|---|
CamelCMISResultCount
|
整数
|
クエリーから返されるノード数。 |
${camel-version} は、実際のバージョンの Camel (2.11 以降)に置き換える必要があります。
第24章 Cometd リンクのコピーリンクがクリップボードにコピーされました!
Cometd コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
cometd://host:port/channelName[?options]
cometd://host:port/channelName[?options]
例 リンクのコピーリンクがクリップボードにコピーされました!
cometd://localhost:8080/service/mychannel cometds://localhost:8443/service/mychannel
cometd://localhost:8080/service/mychannel
cometds://localhost:8443/service/mychannel
cometds: は SSL が設定されたエンドポイントを表します。
オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | デフォルト値 | 説明 |
|---|---|---|
resourceBase
|
Web リソースまたはクラスパスのルートディレクトリー。コンポーネントがファイルシステムまたはクラスパスからリソースを読み込むかどうかに応じて、プロトコル file: または classpath: を使用します。クラスパスは、リソースが jar にパッケージ化されている OSGI デプロイメントに必要です。 | |
baseResource
|
Camel 2.7: Web リソースまたはクラスパスのルートディレクトリー。コンポーネントがファイルシステムまたはクラスパスからリソースを読み込むかどうかに応じて、プロトコル file: または classpath: を使用します。クラスパスは、リソースが jar にパッケージ化されている OSGI デプロイメントに必要です。 | |
timeout
|
240000
|
サーバー側のポーリングのタイムアウト(ミリ秒単位)。これは、応答前にサーバーが再接続要求を保持する期間です。 |
interval
|
0
|
クライアント側のポーリングのタイムアウト(ミリ秒単位)。クライアントが再接続間で待機する時間 |
maxInterval
|
30000
|
クライアント側の最大ポーリングタイムアウト(ミリ秒単位)。接続がこの時間内に受信されない場合、クライアントは削除されます。 |
multiFrameInterval
|
1500
|
同じブラウザーから複数の接続が検出されると、クライアント側のポーリングのタイムアウト。 |
jsonCommented
|
true
|
true の場合、サーバーはコメントでラップされた JSON を受け入れ、コメントでラップされた JSON を生成します。これは、Hijacking に対する defence です。
|
logLevel
|
1
|
0=none, 1=info, 2=debug.
|
sslContextParameters
|
Camel 2.9: レジストリー の org.apache.camel.util.jsse.SSLContextParameters オブジェクトへの 参照。 この参照は、コンポーネントレベルで設定済みの SSLContextParameters を上書きします。 Security Guide および Using the JSSE Configuration Utility の Configuring Transport Security for Camel Components の章 を参照してください。
|
|
crossOriginFilterOn
|
false
|
Camel 2.10: true の場合、サーバーはドメイン間のフィルターリングをサポートします
|
allowedOrigins
|
*
|
Camel 2.10: crosssOriginFilterOn が trueの場合、クロスをサポートするオリジンドメイン
|
filterPath
|
Camel 2.10: crosssOriginFilterOn が trueの場合、filterPath は CrossOriginFilter によって使用されます。
|
|
disconnectLocalSession
|
false
|
Camel 2.10.5/2.11.1: (プロデューサーのみ): メッセージをチャネルに公開した後にローカルセッションを切断するかどうか。デフォルトでは CometD によって調整されないため、ローカルセッションの切断が必要です。そのため、メモリー不足になります。 |
?option=value&option=value&.. の形式で追加できます。
cometd://localhost:8080?resourceBase=file./webappクラスパスの場合(Web リソースが Webapp フォルダー内にパッケージ化される場合) cometd://localhost:8080?resourceBase=classpath:webapp
認証 リンクのコピーリンクがクリップボードにコピーされました!
Cometd コンポーネントでの SSL の設定 リンクのコピーリンクがクリップボードにコピーされました!
CometdComponent クラスで SSL を設定する必要があります。
第25章 コンテキスト リンクのコピーリンクがクリップボードにコピーされました!
コンテキストコンポーネント リンクのコピーリンクがクリップボードにコピーされました!
pom.xml に以下の依存関係を追加する必要があります。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
context:camelContextId:localEndpointName[?options]
context:camelContextId:localEndpointName[?options]
camelContextId:localEndpointName[?options]
camelContextId:localEndpointName[?options]
- camelContextId は、CamelContext をレジストリーに登録するのに使用した ID です。
- localEndpointName は、ブラックリストボックス CamelContext 内で評価される有効な Camel URI にすることができます。または、ローカルエンドポイントにマップされる論理名を使用することもできます。たとえば、ローカルで direct:invoices や seda:purchaseOrders などのエンドポイントが id supplyChain の CamelContext 内にある場合は、URI supplyChain:invoices または supplyChain:purchaseOrders を使用して物理エンドポイントの種類を省略し、純粋な論理 URI を使用できます。
?option=value&option=value&.. の形式で追加できます。
例 リンクのコピーリンクがクリップボードにコピーされました!
コンテキストコンポーネントの定義 リンクのコピーリンクがクリップボードにコピーされました!
コンテキストコンポーネントの使用 リンクのコピーリンクがクリップボードにコピーされました!
エンドポイントの命名 リンクのコピーリンクがクリップボードにコピーされました!
第26章 ControlBus コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
ControlBus コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
controlbus:command[?options]
controlbus:command[?options]
コマンド リンクのコピーリンクがクリップボードにコピーされました!
| コマンド | 説明 |
|---|---|
route
|
routeId および action パラメーターを使用してルートを制御します。特別なキーワード current は現在のルートを示します。
|
言語
|
メッセージボディーの評価に 使用する言語 を指定できます。評価の結果がある場合は、結果はメッセージボディーに配置されます。 |
オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | デフォルト値 | 説明 |
|---|---|---|
routeId
|
null
|
ID でルートを指定し ます。
|
action
|
null
|
start、stop、または status のいずれかのアクションを示します。ルートを開始または停止する場合、またはメッセージボディーの出力としてルートのステータスを取得します。Camel 2.11.1 以降の suspend および resume を使用して、ルートを一時停止または再開できます。Camel 2.11.1 以降では、統計を使用して XML 形式で返されるパフォーマンスの静的を取得できます。routeId オプションを使用して、パフォーマンス統計を取得するルートを定義できます。routeId が定義されていない場合は、CamelContext 全体の統計を取得できます。
|
async
|
false
|
コントロールバスタスクを非同期で実行するかどうか。重要: このオプションが有効な場合には、タスクの結果は Exchange に設定されて いません。これは、タスクを同期的に実行する場合にのみ可能です。 |
loggingLevel
|
INFO
|
タスクの完了時またはタスクの処理中に例外が発生した場合に使用されるロギングレベル。 |
?option=value&option=value&.. の形式で追加できます。
サンプル リンクのコピーリンクがクリップボードにコピーされました!
route コマンドの使用 リンクのコピーリンクがクリップボードにコピーされました!
template.sendBody("controlbus:route?routeId=foo&action=start", null);
template.sendBody("controlbus:route?routeId=foo&action=start", null);
String status = template.requestBody("controlbus:route?routeId=foo&action=status", null, String.class);
String status = template.requestBody("controlbus:route?routeId=foo&action=status", null, String.class);
パフォーマンス統計の取得 リンクのコピーリンクがクリップボードにコピーされました!
String xml = template.requestBody("controlbus:route?routeId=foo&action=stats", null, String.class);
String xml = template.requestBody("controlbus:route?routeId=foo&action=stats", null, String.class);
ManagedRouteMBean で dumpRouteStatsAsXml 操作で JMX から取得できるものと同じデータ。
String xml = template.requestBody("controlbus:route?action=stats", null, String.class);
String xml = template.requestBody("controlbus:route?action=stats", null, String.class);
Simple 言語の使用 リンクのコピーリンクがクリップボードにコピーされました!
"controlbus:language:simple" エンドポイントにメッセージを送信することができます。
template.sendBody("controlbus:language:simple", "${camelContext.stopRoute('myRoute')}");
template.sendBody("controlbus:language:simple", "${camelContext.stopRoute('myRoute')}");
String status = template.requestBody("controlbus:language:simple", "${camelContext.getRouteStatus('myRoute')}", String.class);
String status = template.requestBody("controlbus:language:simple", "${camelContext.getRouteStatus('myRoute')}", String.class);
route コマンドを使用してルートのライフサイクルを制御するのが簡単になります。language コマンドを使用すると、Groovy などの強力な、または Simple 言語を拡張できる言語スクリプトを実行することができます。
template.sendBody("controlbus:language:simple?async=true", "${camelContext.stop()}");
template.sendBody("controlbus:language:simple?async=true", "${camelContext.stop()}");
async=true を使用して、Camel を非同期的に停止することに注意してください。それ以外の場合は、制御バスコンポーネントに送信されたメッセージの処理中に Camel を停止しようとします。
- ControlBus EIP
- JMX コンポーネント
- Camel での JMX の使用
第27章 CouchDB リンクのコピーリンクがクリップボードにコピーされました!
Camel CouchDB コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
- コンシューマーとして、は、挿入、更新、および削除をメッセージとして Camel ルートに公開するために couch changeset を監視します。
- プロデューサーとして、はドキュメントを保存または更新できます。
- 複数のインスタンスにまたがる複数のデータベースなど、必要な数だけエンドポイントをサポートできます。
- 削除時にのみイベントトリガーを持つことができ、挿入/更新または all (デフォルト)のみを挿入します。
- sequenceId、ドキュメントリビジョン、ドキュメント ID、および HTTP メソッドタイプに設定されたヘッダー。
pom.xml に以下の依存関係を追加する必要があります。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
couchdb:http://hostname[:port]/database?[options]
couchdb:http://hostname[:port]/database?[options]
オプション リンクのコピーリンクがクリップボードにコピーされました!
| プロパティー | デフォルト | 説明 |
|---|---|---|
削除
|
true
|
ドキュメントの削除はイベントとして公開されます。 |
updates
|
true
|
ドキュメントの挿入/更新がイベントとして公開される |
heartbeat
|
30000
|
ソケットを存続させるための空のメッセージを送信する頻度 |
createDatabase
|
true
|
データベースが存在しない場合は作成します。 |
username
|
null
|
認証されたデータベースの場合のユーザー名 |
password
|
null
|
認証されたデータベースのパスワード |
Headers リンクのコピーリンクがクリップボードにコピーされました!
| プロパティー | 値 |
|---|---|
CouchDbDatabase
|
メッセージの元となったデータベース |
CouchDbSeq
|
更新/削除メッセージの couchdb 変更セットシーケンス番号 |
CouchDbId
|
couchdb ドキュメント ID |
CouchDbRev
|
couchdb ドキュメントリビジョン |
CouchDbMethod
|
メソッド(削除/更新) |
メッセージボディー リンクのコピーリンクがクリップボードにコピーされました!
サンプル リンクのコピーリンクがクリップボードにコピーされました!
from("couchdb:http://localhost:9999").process(someProcessor);
from("couchdb:http://localhost:9999").process(someProcessor);
from("couchdb:http://localhost:9999?updates=false").process(someProcessor);
from("couchdb:http://localhost:9999?updates=false").process(someProcessor);
from("someProducingEndpoint").process(someProcessor).to("couchdb:http://localhost:9999")
from("someProducingEndpoint").process(someProcessor).to("couchdb:http://localhost:9999")
第28章 暗号(デジタル署名) リンクのコピーリンクがクリップボードにコピーされました!
デジタル署名の暗号コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
pom.xml に以下の依存関係を追加する必要があります。
Camel on EAP デプロイメント リンクのコピーリンクがクリップボードにコピーされました!
はじめに リンクのコピーリンクがクリップボードにコピーされました!
- Bruce Schneier's Applied Cryptography
- David Hook による Java の暗号開始
- The ever insightful, Wikipedia Digital_signatures
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
crypto:sign:name[?options] crypto:verify:name[?options]
crypto:sign:name[?options]
crypto:verify:name[?options]
crypto:signは署名を作成し、定数org.apache.camel.component.crypto.DigitalSignatureConstants.SIGNATURE、つまり Header キーに保存します。"CamelDigitalSignature".crypto:verifyはこのヘッダーの内容で読み取り、検証の計算を行います。
PrivateKey に署名し、PublicKey (またはそれを含む 証明書 )を検証する必要があります。JCE の使用は、これらのキーペアの生成が非常に簡単ですが、通常は KeyStore を使用してキーを格納し、共有することが最も安全です。DSL は、キーがどのように提供されるかについて非常に柔軟であり、さまざまなメカニズムを提供します。
crypto:sign エンドポイントは通常、あるルートと補完的な crypto:verify で定義されます。ただし、もう 1 つのルートの後に表示される例を簡潔にしています。記号と検証の両方を同時に設定すべきという意味はありません。
オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | タイプ | デフォルト | 説明 |
|---|---|---|---|
algorithm
|
文字列
|
DSA
|
使用される JCE 署名アルゴリズムの名前。 |
alias
|
文字列
|
null
|
キーストアからキーを選択するために使用されるエイリアス名。 |
bufferSize
|
整数
|
2048
|
署名プロセスで使用されるバッファーサイズ |
certificate
|
証明書
|
null
|
エクスチェンジのペイロードの署名の検証に使用される証明書。このキーまたは公開鍵のいずれかが必要です。 |
keystore
|
keystore
|
null
|
署名および検証に使用されるキーおよび証明書を格納する JCE キーストアへの参照。 |
provider
|
文字列
|
null
|
使用する必要がある JCE セキュリティープロバイダーの名前。 |
privateKey
|
PrivatKey
|
null
|
エクスチェンジのペイロードの署名に使用される秘密鍵。 |
publicKey
|
PublicKey
|
null
|
エクスチェンジのペイロードの署名の検証に使用される公開鍵。 |
secureRandom
|
secureRandom
|
null
|
署名サービスの初期化に使用される SecureRandom オブジェクトへの参照。
|
password
|
char[]
|
null
|
キーストアのパスワード。 |
clearHeaders
|
文字列
|
true
|
検証操作後にメッセージから camel 暗号化ヘッダーを削除します(値は "true"/{{"false"}})できます。
|
1)raw キー リンクのコピーリンクがクリップボードにコピーされました!
from("direct:keypair").to("crypto:sign://basic?privateKey=#myPrivateKey", "crypto:verify://basic?publicKey=#myPublicKey", "mock:result");
from("direct:keypair").to("crypto:sign://basic?privateKey=#myPrivateKey", "crypto:verify://basic?publicKey=#myPublicKey", "mock:result");
2)キーストアとエイリアス。 リンクのコピーリンクがクリップボードにコピーされました!
from("direct:keystore").to("crypto:sign://keystore?keystore=#keystore&alias=bob&password=letmein", "crypto:verify://keystore?keystore=#keystore&alias=bob", "mock:result");
from("direct:keystore").to("crypto:sign://keystore?keystore=#keystore&alias=bob&password=letmein", "crypto:verify://keystore?keystore=#keystore&alias=bob", "mock:result");
3)JCE プロバイダーとアルゴリズムの変更 リンクのコピーリンクがクリップボードにコピーされました!
from("direct:provider").to("crypto:sign://provider?privateKey=#myPrivateKey&provider=SUN", "crypto:verify://provider?publicKey=#myPublicKey&provider=SUN", "mock:result");
from("direct:provider").to("crypto:sign://provider?privateKey=#myPrivateKey&provider=SUN", "crypto:verify://provider?publicKey=#myPublicKey&provider=SUN", "mock:result");
4)署名メッジヘッダーの変更 リンクのコピーリンクがクリップボードにコピーされました!
from("direct:signature-header").to("crypto:sign://another?privateKey=#myPrivateKey&signatureHeader=AnotherDigitalSignature",
"crypto:verify://another?publicKey=#myPublicKey&signatureHeader=AnotherDigitalSignature", "mock:result");
from("direct:signature-header").to("crypto:sign://another?privateKey=#myPrivateKey&signatureHeader=AnotherDigitalSignature",
"crypto:verify://another?publicKey=#myPublicKey&signatureHeader=AnotherDigitalSignature", "mock:result");
5)バッファーサイズの変更 リンクのコピーリンクがクリップボードにコピーされました!
from("direct:buffersize").to("crypto:sign://buffer?privateKey=#myPrivateKey&buffersize=1024", "crypto:verify://buffer?publicKey=#myPublicKey&buffersize=1024", "mock:result");
from("direct:buffersize").to("crypto:sign://buffer?privateKey=#myPrivateKey&buffersize=1024", "crypto:verify://buffer?publicKey=#myPublicKey&buffersize=1024", "mock:result");
6)キーを動的に指定します。 リンクのコピーリンクがクリップボードにコピーされました!
Exchange.SIGNATURE_PRIVATE_KEY,"CamelSignaturePrivateKey"Exchange.SIGNATURE_PUBLIC_KEY_OR_CERT,"CamelSignaturePublicKeyOrCert"
from("direct:headerkey-sign").to("crypto:sign://alias");
from("direct:headerkey-verify").to("crypto:verify://alias", "mock:result");
from("direct:headerkey-sign").to("crypto:sign://alias");
from("direct:headerkey-verify").to("crypto:verify://alias", "mock:result");
Exchange.KEYSTORE_ALIAS,"CamelSignatureKeyStoreAlias"
from("direct:alias-sign").to("crypto:sign://alias?keystore=#keystore");
from("direct:alias-verify").to("crypto:verify://alias?keystore=#keystore", "mock:result");
from("direct:alias-sign").to("crypto:sign://alias?keystore=#keystore");
from("direct:alias-verify").to("crypto:verify://alias?keystore=#keystore", "mock:result");
- 暗号化は データ形式としても利用できます。
第29章 CXF リンクのコピーリンクがクリップボードにコピーされました!
CXF コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
pom.xml に以下の依存関係を追加する必要があります。
WHICH-JARS テキストファイルを参照してください。
Camel on EAP デプロイメント リンクのコピーリンクがクリップボードにコピーされました!
webservices サブシステムと統合します。詳細は、JAX-WS を参照してください。
CamelProxy を使用して CXF コンシューマーの動作を模倣できます。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
cxf:bean:cxfEndpoint[?options]
cxf:bean:cxfEndpoint[?options]
cxf://someAddress[?options]
cxf://someAddress[?options]
cxf:bean:cxfEndpoint?wsdlURL=wsdl/hello_world.wsdl&dataFormat=PAYLOAD
cxf:bean:cxfEndpoint?wsdlURL=wsdl/hello_world.wsdl&dataFormat=PAYLOAD
オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 必須 | 説明 |
|---|---|---|
wsdlURL
|
いいえ |
WSDL の場所。WSDL はデフォルトでエンドポイントアドレスから取得されます。以下に例を示します。
file://local/wsdl/hello.wsdl または wsdl/hello.wsdl
|
serviceClass
|
はい |
SEI (サービスエンドポイントインターフェイス)クラスの名前。このクラスは JSR181 アノテーションを持つことができますが、必須ではありません。 2.0 以降、このオプションは POJO モードでのみ必要です。wsdlURL オプションを指定すると、PAYLOAD モードおよび MESSAGE モードに serviceClass は必要ありません。serviceClass なしで wsdlURL オプションを使用する場合は、serviceName および portName (Spring 設定の endpointName)オプションを指定する 必要 があります。
2.0 以降、
# 表記を使用してレジストリーから serviceClass オブジェクトインスタンスを参照できます。
Spring AOP プロキシー以外の場合は
Object.getClass ().getName ()メソッドに依存するため、参照されるオブジェクトは Proxy (Spring AOP Proxy は OK)にすること はできません。
2.8 以降、 PAYLOAD モードと MESSAGE モードの wsdlURL オプションと serviceClass オプションの両方を省略できます。省略すると、CXF Dispatch モードを容易にするために、任意の XML 要素を PAYLOAD モードで CxfPayload のボディーに配置できます。
例:
org.apache.camel.Hello
|
serviceName
|
WSDL に複数の serviceName が存在する場合のみ
|
このサービスが実装しているサービス名。
wsdl:service@name にマップされます。以下に例を示します。
{http://org.apache.camel}ServiceName
|
endpointName
|
serviceName の下に複数の portName が存在し、Camel 2.2 以降の camel-cxf コンシューマーに必要です。
|
このサービスが実装しているポート名は、
wsdl:port@name にマップされます。以下に例を示します。
{http://org.apache.camel}PortName
|
dataFormat
|
いいえ |
CXF エンドポイントがサポートするメッセージデータ形式。使用できる値は POJO (デフォルト)、PAYLOAD、MESSAGE です。
|
relayHeaders
|
いいえ |
このオプションについては、relayHeadersオプション の説明を参照してください。ルートに CXF エンドポイントリレーヘッダーが必要です。現在、dataFormat=POJOデフォルト:trueの例:true、false
|
wrapped
|
いいえ |
CXF エンドポイントプロデューサーが呼び出す操作の種類。使用できる値は true、false (デフォルト) です。
|
wrappedStyle
|
いいえ |
2.5.0 以降、パラメーターが SOAP ボディーでどのように表現されるかを記述する WSDL スタイル。値が false の場合、CXF はドキュメントリテラルのアンラップスタイルを選択します。値が true の場合、CXF はドキュメントリテラルラップスタイルを選択します。
|
setDefaultBus
|
いいえ |
非推奨: このエンドポイントにデフォルトの CXF バスを使用するかどうかを指定します。使用できる値は true、false (デフォルト) です。このオプションは非推奨となり、Camel 2.16 以降では defaultBus を使用する必要があります。
|
defaultBus
|
いいえ |
非推奨: このエンドポイントにデフォルトの CXF バスを使用するかどうかを指定します。使用できる値は true、false (デフォルト) です。このオプションは非推奨となり、Camel 2.16 以降では defaultBus を使用する必要があります。
|
bus
|
いいえ |
# 表記を使用してレジストリーからバスオブジェクトを参照します(例: bus=#busName )。参照オブジェクトは org.apache.cxf.Bus のインスタンスである必要があります。
デフォルトでは、は CXF Bus Factory によって作成されたデフォルトのバスを使用します。
|
cxfBinding
|
いいえ |
# 表記を使用して、レジストリーから CXF バインディングオブジェクトを参照します(例: cxfBinding=#bindingName )。参照されるオブジェクトは org.apache.camel.component.cxf.CxfBinding のインスタンスである必要があります。
|
headerFilterStrategy
|
いいえ |
# 表記を使用して、レジストリーからヘッダーフィルターストラテジーオブジェクトを参照します(例: headerFilterStrategy=#strategyName )。参照されるオブジェクトは org.apache.camel.spi.HeaderFilterStrategy のインスタンスである必要があります。
|
loggingFeatureEnabled
|
いいえ |
新しい 2.3 では、このオプションは、インバウンドおよびアウトバウンド SOAP メッセージをログに書き込む CXF Logging Feature を有効にします。使用できる値は true、false (デフォルト) です。
|
defaultOperationName
|
いいえ |
2.4 の新機能として、このオプションはリモートサービスを呼び出す
CxfProducer によって使用されるデフォルトの operationName を設定します。以下に例を示します。
defaultOperationName=greetMe
|
defaultOperationNamespace
|
いいえ |
2.4 の新機能として、このオプションはリモートサービスを呼び出す CxfProducer によって使用されるデフォルトの operationNamespace を設定します。以下に例を示します。
defaultOperationNamespace= http://apache.org/hello_world_soap_http
|
同期
|
いいえ |
2.5 の新機能として、このオプションにより、CXF エンドポイントで sync または async API を使用して基礎となる作業を実行できます。デフォルト値は false です。つまり、camel-cxf エンドポイントはデフォルトで非同期 API の使用を試行します。
|
publishedEndpointUrl
|
いいえ |
2.5 の新機能で、このオプションは、サービスアドレス URL と
?wsdl を使用してアクセスされる公開された WSDL に表示されるエンドポイント URL を上書きします。以下に例を示します。
publshedEndpointUrl=http://example.com/service
|
properties.propName
|
いいえ |
Camel 2.8: エンドポイント URI でカスタム CXF プロパティーを設定できます。たとえば、properties.mtom-enabled=true を設定して MTOM を有効にします。呼び出しの開始時に CXF がスレッドを切り替えないようにするには、properties.org.apache.cxf.interceptor.OneWayProcessorInterceptor.USE_ORIGINAL_THREAD=true を設定します。
|
allowStreaming
|
いいえ | 2.8.2 の新機能このオプションは、PAYLOAD モード(以下を参照)で実行しているときに CXF コンポーネントを制御するか、またはペイロードを DOM 要素に解析するか、場合によってはストリーミングを可能にする javax.xml.transform.Source オブジェクトとしてペイロードを保持するかどうかを制御します。 |
skipFaultLogging
|
いいえ | 2.11 の新機能このオプションは、PhaseInterceptorChain がキャッチする Fault のロギングをスキップするかどうかを制御します。 |
cxfEndpointConfigurer
|
いいえ
|
Camel 2.11 の新機能このオプションは、
org.apache.camel.component.cxf.CxfEndpointConfigurer which supports の実装を適用して、プログラム的に CXF エンドポイントを設定できます。Camel 2.15.0 以降、ユーザーは CxfEndpointConfigurer の configure{Server|Client} メソッドを実装して CXF サーバーおよびクライアントを設定できます。
|
username
|
いいえ
|
Camel 2.12.3 の新機能。このオプションは、CXF クライアントのユーザー名の基本認証情報を設定するために使用されます。
|
password
|
いいえ
|
Camel 2.12.3 の新機能。このオプションは、CXF クライアントのパスワードの基本認証情報を設定するために使用されます。
|
continuationTimeout
|
いいえ
|
Camel 2.14.0 の新機能は、CXF サーバーが Jetty または Servlet トランスポートを使用している場合にデフォルトで CxfConsumer で使用できる CXF 継続タイムアウトを設定するために使用されます。( Camel 2.14. 0 よりも前のバージョンでは、CxfConsumer は継続タイムアウトを 0 に設定するだけで、継続一時停止操作がタイムアウトしないことを意味します)。
デフォルト: 30000 例: continuation=80000
|
データ形式の説明 リンクのコピーリンクがクリップボードにコピーされました!
| DataFormat | 説明 |
|---|---|
POJO
|
POJO (旧称の Java オブジェクト)は、ターゲットサーバーで呼び出されるメソッドの Java パラメーターです。Protocol および Logical JAX-WS ハンドラーの両方がサポートされます。 |
PAYLOAD
|
PAYLOAD は、CXF エンドポイントのメッセージ設定の適用後のメッセージペイロード( soap:bodyの内容)です。プロトコル JAX-WS ハンドラーのみがサポートされます。論理 JAX-WS ハンドラーはサポートされていません。
|
MESSAGE
|
MESSAGE は、トランスポート層から受信される生のメッセージです。Stream をタッチまたは変更することは意図されていません。このような DataFormat を使用している場合は、CXF インターセプターの一部が削除されるため、camel-cxf コンシューマーと JAX-WS ハンドラーがサポートされていない後に soap ヘッダーは表示されません。
|
CXF_MESSAGE
|
Camel 2.8.2 の新機能のCXF_MESSAGE では、メッセージをトランスポート層から raw SOAP メッセージに変換して CXF インターセプターの完全な機能を呼び出すことができます。
|
CamelCXFDataFormat を取得することで、エクスチェンジのデータフォーマットモードを決定できます。Exchange キー定数は org.apache.camel.component.cxf.CxfConstants.DATA_FORMAT_PROPERTY で定義されます。
Apache Aries Blueprint での CXF エンドポイントの設定 リンクのコピーリンクがクリップボードにコピーされました!
MESSAGE モードで CXF の LoggingOutInterceptor を有効にする方法 リンクのコピーリンクがクリップボードにコピーされました!
LoggingOutInterceptor は、ロギングシステム()に対応するアウトバウンドメッセージを出力します。java.util.loggingLoggingOutInterceptor は PRE_STREAM フェーズであるため(ただし、PRE_STREAM フェーズは MESSAGE モードで削除)、WRITE フェーズ中に実行する LoggingOutInterceptor を設定する必要があります。以下は例です。
relayHeaders オプションの説明 リンクのコピーリンクがクリップボードにコピーされました!
relayHeaders はデフォルト値の true に設定する必要があります。
POJO モードでのみ利用可能 リンクのコピーリンクがクリップボードにコピーされました!
relayHeaders=true 設定は、ヘッダーをリレーする意図を表します。指定されたヘッダーがリレーされるかどうかに関する実際の決定は、MessageHeadersRelay インターフェイスを実装するプラグ可能なインスタンスに委譲されます。MessageHeadersRelay の具体的な実装は、ヘッダーをリレーする必要があるかどうかを判断するために参照されます。よく知られている SOAP 名前空間にバインドする SoapMessageHeadersRelay の実装があります。現在、帯域外ヘッダーのみがフィルターされ、relayHeaders=true の場合に帯域内ヘッダーが常にリレーされます。ネットワーク上でヘッダーがあり、その名前空間がランタイムに認識されていない場合は、フォールバック DefaultMessageHeadersRelay が使用され、単純にすべてのヘッダーをリレーできます。
relayHeaders=false 設定は、すべてのヘッダー(in-band および out-of-band)が破棄されることをアサートします。
MessageHeadersRelay 実装を上書きするか、リレーのリストに追加の実装を追加できます。事前に読み込んだリレーインスタンスをオーバーライドするには、MessageHeadersRelay 実装サービスが、上書きするものと同じ名前空間であることを確認します。また、オーバーライドするリレーは、上書きする名前空間としてすべての名前空間に対応する必要があります。そうしないと、インスタンスマッピングをリレーする名前空間に曖昧さが発生するため、ルート起動時にランタイム例外が出力されます。
リリース 2.0 以降の変更点 リンクのコピーリンクがクリップボードにコピーされました!
POJOモードおよびPAYLOADモードがサポートされます。POJOモードでは、帯域内ヘッダーが処理され、CXF によってヘッダーリストから削除されたため、帯域外メッセージヘッダーのみがフィルターリングできます。帯域内ヘッダーは、POJOモードでMessageContentListに組み込まれます。camel-cxfコンポーネントは、MessageContentListから帯域内ヘッダーの削除を試行しようとします。帯域内ヘッダーのフィルターリングが必要な場合、PAYLOADモードを使用するか、CXF インターセプター/JAXWS ハンドラーのプラグインを CXF エンドポイントに使用してください。- Message Header Relay メカニズムは
CxfHeaderFilterStrategyに統合されました。relayHeadersオプション、そのセマンティクス、およびデフォルト値は同じですが、CxfHeaderFilterStrategyのプロパティーです。以下は、設定例です。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次に、エンドポイントはCxfHeaderFilterStrategyを参照できます。<route> <from uri="cxf:bean:routerNoRelayEndpoint?headerFilterStrategy=#dropAllMessageHeadersStrategy"/> <to uri="cxf:bean:serviceNoRelayEndpoint?headerFilterStrategy=#dropAllMessageHeadersStrategy"/> </route><route> <from uri="cxf:bean:routerNoRelayEndpoint?headerFilterStrategy=#dropAllMessageHeadersStrategy"/> <to uri="cxf:bean:serviceNoRelayEndpoint?headerFilterStrategy=#dropAllMessageHeadersStrategy"/> </route>Copy to Clipboard Copied! Toggle word wrap Toggle overflow MessageHeadersRelayインターフェイスは若干変更され、MessageHeaderFilterに変更されました。これはCxfHeaderFilterStrategyのプロパティーです。以下は、ユーザー定義のメッセージヘッダーフィルターを設定する例です。Copy to Clipboard Copied! Toggle word wrap Toggle overflow relayHeaders以外に、CxfHeaderFilterStrategyで設定できる新しいプロパティーがあります。
| 名前 | 説明 | type | 必須 ? | デフォルト値 |
|---|---|---|---|---|
relayHeaders
|
すべてのメッセージヘッダーがメッセージヘッダーフィルターによって処理されます。 |
boolean
|
いいえ |
true (1.6.1 動作)
|
relayAllMessageHeaders
|
すべてのメッセージヘッダーが伝播されます(メッセージヘッダーフィルターによる処理なし)。 |
boolean
|
いいえ |
false (1.6.1 の動作)
|
allowFilterNamespaceClash
|
2 つのフィルターがアクティベーション namespace で重複する場合、プロパティーはその処理方法を制御します。値が true の場合、最後の値が優先されます。値が false の場合、例外が発生します。
|
boolean
|
いいえ |
false (1.6.1 の動作)
|
Spring での CXF エンドポイントの設定 リンクのコピーリンクがクリップボードにコピーされました!
camelContext タグに埋め込むこともできます。サービスエンドポイントを呼び出す場合、operationName および operationNamespace ヘッダーを、呼び出す操作を明示的に設定できます。
http://camel.apache.org/schema/cxf を CXF エンドポイントのターゲット namespace として使用するよう変更します。
http://activemq.apache.org/camel/schema/cxfEndpoint 名前空間が http://camel.apache.org/schema/cxf に変更されました。
schemaLocation 属性を含めるようにしてください。これにより、CXF はファイルを検証でき、必須です。また、< cxf:cxfEndpoint/ > タグの末尾にある namespace 宣言にも注意してください。これらの宣言は、組み合わせた {namespace}localName 構文がこのタグの属性値ではサポートされていないためです。
cxf:cxfEndpoint 要素は、多くの追加属性をサポートします。
| 名前 | 値 |
|---|---|
PortName
|
このサービスが実装しているエンドポイント名は、wsdl:port@name にマップされます。ns:PORT_NAME の形式で、ns はこのスコープで有効な namespace 接頭辞になります。
|
serviceName
|
このサービスが実装しているサービス名。wsdl:service@name にマップされます。ns:SERVICE_NAME の形式で、ns はこのスコープで有効な namespace 接頭辞になります。
|
wsdlURL
|
WSDL の場所。クラスパス、ファイルシステム上、またはリモートでホストできます。 |
bindingId
|
使用するサービスモデルの bindingId。
|
address
|
サービスの公開アドレス。 |
bus
|
JAX-WS エンドポイントで使用されるバス名。 |
serviceClass
|
JSR181 アノテーションを持つことができる SEI (Service Endpoint Interface)クラスのクラス名。 |
| 名前 | 値 |
|---|---|
cxf:inInterceptors
|
このエンドポイントの受信インターセプター。<bean> ; または < ref> の リスト。
|
cxf:inFaultInterceptors
|
このエンドポイントの受信障害インターセプター。<bean> ; または < ref> の リスト。
|
cxf:outInterceptors
|
このエンドポイントの送信インターセプター。<bean> ; または < ref> の リスト。
|
cxf:outFaultInterceptors
|
このエンドポイントの送信障害インターセプター。<bean> ; または < ref> の リスト。
|
cxf:properties
|
JAX-WS エンドポイントに提供する必要があるプロパティーマップ。以下を参照してください。 |
cxf:handlers
|
JAX-WS エンドポイントに提供する必要がある JAX-WS ハンドラーリスト。以下を参照してください。 |
cxf:dataBinding
|
エンドポイントで使用する DataBinding を指定できます。これは、Spring < bean class="MyDataBinding"/ > 構文を使用して指定できます。
|
cxf:binding
|
このエンドポイントで使用する BindingFactory を指定できます。これは、Spring < bean class="MyBindingFactory"/ > 構文を使用して指定できます。
|
cxf:features
|
このエンドポイントのインターセプターを保持する機能。< bean> s または< ref> sの一覧
|
cxf:schemaLocations
|
使用するエンドポイントのスキーマの場所。< schemaLocation> の一覧
|
cxf:serviceFactory
|
このエンドポイントで使用するサービスファクトリー。これは、Spring < bean class="MyServiceFactory"/> 構文を使用して指定でき ます。
|
dataFormat および setDefaultBus プロパティーを設定できます。
How to make the camel-cxf component use log4j instead of java.util.logging リンクのコピーリンクがクリップボードにコピーされました!
java.util.logging です。log4j に変更するには、以下の手順を実行します。META-INF/cxf/org.apache.cxf.logger という名前のクラスパスにファイルを作成します。このファイルには、1 行にコメントのない org.apache.cxf.common.logging.Log4jLogger クラスの完全修飾名が含まれている必要があります。
How to let camel-cxf response message with xml start document リンクのコピーリンクがクリップボードにコピーされました!
<?xml version="1.0" encoding="utf-8"?> を追加しないため、この種類のエラーが発生します。
Error:sendSms: SoapFault exception: [Client] looks like we got no XML document in [...]
Error:sendSms: SoapFault exception: [Client] looks like we got no XML document in [...]
camel-cxf エンドユーザーに設定できます。
// set up the response context which force start document
Map<String, Object> map = new HashMap<String, Object>();
map.put("org.apache.cxf.stax.force-start-document", Boolean.TRUE);
exchange.getOut().setHeader(Client.RESPONSE_CONTEXT, map);
// set up the response context which force start document
Map<String, Object> map = new HashMap<String, Object>();
map.put("org.apache.cxf.stax.force-start-document", Boolean.TRUE);
exchange.getOut().setHeader(Client.RESPONSE_CONTEXT, map);
POJO データ形式で camel-cxf エンドポイントからメッセージを消費する方法 リンクのコピーリンクがクリップボードにコピーされました!
camel-cxf エンドポイントコンシューマー POJO データ形式は cxf invoker をベースとしているため、メッセージヘッダーには CxfConstants.OPERATION_NAME という名前の プロパティーがあり、メッセージボディーは SEI メソッドパラメーターのリストです。
POJO データ形式で camel-cxf エンドポイントのメッセージを準備する方法 リンクのコピーリンクがクリップボードにコピーされました!
camel-cxf エンドポイントプロデューサーは cxf クライアント API に基づいています。最初にメッセージヘッダーで操作名を指定し、メソッドパラメーターをリストに追加し、このパラメーターリストでメッセージを初期化する必要があります。応答メッセージのボディーは messageContentsList で、その結果をリストから取得できます。
CxfProducer は defaultOperationName from CxfEndpoint の使用を試行します。CxfEndpoint に defaultOperationName が設定されていない場合、操作リストから最初の操作名が選択されます。
message.getbody (Object[].class) を使用してボディーを取得できます。
PAYLOAD データ形式で camel-cxf エンドポイントのメッセージを処理する方法 リンクのコピーリンクがクリップボードにコピーされました!
CxfMessage.getBody () は、SOAP メッセージヘッダーおよび Body 要素のゲッターを持つ org.apache.camel.component.cxf.CxfPayload オブジェクトを返します。この変更により、Apache Camel メッセージからネイティブ CXF メッセージを切り離すことができます。
POJO モードで SOAP ヘッダーを取得および設定する方法 リンクのコピーリンクがクリップボードにコピーされました!
POJO は、CXF エンドポイントが Camel エクスチェンジを生成または消費した場合に、データフォーマットが Java オブジェクトのリスト であることを意味します。Apache Camel はメッセージボディーをこのモードで POJO として公開しますが、CXF コンポーネントは引き続き SOAP ヘッダーの読み取りおよび書き込みへのアクセスを提供します。ただし、CXF インターセプターは処理後にヘッダーリストから帯域外 SOAP ヘッダーを削除するため、POJO モードで使用できるのは帯域外 SOAP ヘッダーのみです。
org.apache.cxf.headers.Header.list で、CXF (org.apache.cxf.headers.Header.HEADER_LIST)で定義された定数です。ヘッダーの値は、CXF SoapHeader オブジェクト(org.apache.cxf.binding.soap.SoapHeader)の List<> です。以下のスニペットは InsertResponseOutHeaderProcessor です(応答メッセージに新しい SOAP ヘッダーを挿入します)。InsertResponseOutHeaderProcessor と InsertRequestOutHeaderProcessor の両方で SOAP ヘッダーにアクセスする方法は、実際には同じです。2 つのプロセッサーの唯一の違いは、挿入された SOAP ヘッダーの方向を設定することです。
PAYLOAD モードで SOAP ヘッダーを取得および設定する方法 リンクのコピーリンクがクリップボードにコピーされました!
PAYLOAD モードで SOAP メッセージ(CxfPayload オブジェクト)にアクセスする方法はすでに説明されています( 「PAYLOAD データ形式で camel-cxf エンドポイントのメッセージを処理する方法」を参照してください)。
CxfPayload オブジェクトを取得したら、DOM Elements (SOAP ヘッダー)の List を返す CxfPayload.getHeaders() メソッドを呼び出すことができます。
org.apache.cxf.headers.Header.list ヘッダーを使用して、SOAP ヘッダーの一覧を取得および設定できるようになりました。つまり、ある Camel CXF エンドポイントから別の(SOAP Client -> Camel -> CXF サービス)に転送するルートがある場合、SOAP クライアントによって送信された SOAP ヘッダーも CXF サービスに転送されるようになりました。ヘッダーの転送を希望しない場合は、org.apache.cxf.headers.Header.list Camel ヘッダーから削除します。
SOAP ヘッダーが MESSAGE モードで利用できない リンクのコピーリンクがクリップボードにコピーされました!
MESSAGE モードでは利用できません。
Apache Camel から SOAP Fault を出力する方法 リンクのコピーリンクがクリップボードにコピーされました!
Fault を出力する必要がある場合があります。基本的に、throwFault DSL を使用してこれを実行できます。POJO、PAYLOAD、および MESSAGE データフォーマットで機能します。以下のように soap 障害を定義できます。
SOAP_FAULT = new SoapFault(EXCEPTION_MESSAGE, SoapFault.FAULT_CODE_CLIENT); Element detail = SOAP_FAULT.getOrCreateDetail(); Document doc = detail.getOwnerDocument(); Text tn = doc.createTextNode(DETAIL_TEXT); detail.appendChild(tn);
SOAP_FAULT = new SoapFault(EXCEPTION_MESSAGE, SoapFault.FAULT_CODE_CLIENT);
Element detail = SOAP_FAULT.getOrCreateDetail();
Document doc = detail.getOwnerDocument();
Text tn = doc.createTextNode(DETAIL_TEXT);
detail.appendChild(tn);
from(routerEndpointURI).setFaultBody(constant(SOAP_FAULT));
from(routerEndpointURI).setFaultBody(constant(SOAP_FAULT));
MESSAGE データ形式で機能している場合は、メッセージボディーに SOAP Fault メッセージを設定し、メッセージヘッダーに応答コードを設定できます。
Message.setFault(true) を呼び出すことで障害を示すこともできます。
CXF エンドポイントの要求および応答コンテキストを伝播する方法 リンクのコピーリンクがクリップボードにコピーされました!
添付ファイルのサポート リンクのコピーリンクがクリップボードにコピーされました!
DataHandler Message.getAttachment(String id)
DataHandler Message.getAttachment(String id)
SOAPMessage から String コンバーターは、ボディーの完全なマルチパートペイロードを提供することに注意してください。SOAP XML を String として要求する場合は、message.getSOAPPart() でメッセージボディーを設定し、Camel 変換で残りの作業を行うことができます。
スタックトレース情報を伝播させる方法 リンクのコピーリンクがクリップボードにコピーされました!
dataFormat を PAYLOAD に設定し、以下のように faultStackTraceEnabled プロパティーを true に設定します。cxfEndpoint
Caused byに続くスタックトレースの一部)は含まれません。スタックトレースに原因となる例外を含める場合は、以下のように cxfEndpoint 要素で exceptionMessageCauseEnabled プロパティーを true に設定します。
exceptionMessageCauseEnabled フラグは、テストおよび診断の目的でのみ有効にする必要があります。サーバーにおいて例外の元の原因を隠すことで、敵対的なユーザーがサーバーを調査しにくくするのが、通常の実践的なやり方です。
PAYLOAD モードのストリーミングサポート リンクのコピーリンクがクリップボードにコピーされました!
- endpoint プロパティー:"allowStreaming=false" をエンドポイントプロパティーとして追加し、ストリーミングをオン/オフにすることができます。
- Component プロパティー:CxfComponent オブジェクトには、そのコンポーネントから作成されたエンドポイントのデフォルトを設定できる allowStreaming プロパティーもあります。
- グローバルシステムプロパティー:org.apache.camel.component.cxf.streaming のシステムプロパティーを false に追加して、オフにできます。これにより、グローバルのデフォルトが設定されますが、上記の endpoint プロパティーを設定すると、そのエンドポイントに対してこの値が上書きされます。
汎用 CXF ディスパッチモードの使用 リンクのコピーリンクがクリップボードにコピーされました!
<cxf:cxfEndpoint id="testEndpoint" address="http://localhost:9000/SoapContext/SoapAnyPort">
<cxf:properties>
<entry key="dataFormat" value="PAYLOAD"/>
</cxf:properties>
</cxf:cxfEndpoint>
<cxf:cxfEndpoint id="testEndpoint" address="http://localhost:9000/SoapContext/SoapAnyPort">
<cxf:properties>
<entry key="dataFormat" value="PAYLOAD"/>
</cxf:properties>
</cxf:cxfEndpoint>
第30章 CXF Bean コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
CXF Bean コンポーネント(2.0 以降) リンクのコピーリンクがクリップボードにコピーされました!
CxfBeanEndpoint は ProcessorEndpoint であるため、コンシューマーはありません。Bean コンポーネントと同様に機能します。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
cxfbean:serviceBeanRef
cxfbean:serviceBeanRef
serviceBeanRef が List オブジェクトを参照する場合、List の要素はエンドポイントによって許可されるサービス Bean オブジェクトです。
オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 説明 | 例 | 必須 ? | デフォルト値 |
|---|---|---|---|---|
bus
|
# 表記で指定された CXF バス参照。参照オブジェクトは org.apache.cxf.Bus のインスタンスである必要があります。
|
bus=#busName
|
いいえ | CXF Bus Factory によって作成されたデフォルトのバス |
cxfBeanBinding
|
# 表記で指定された CXF Bean バインディング。参照されるオブジェクトは、org.apache.camel.component.cxf.cxfbean.CxfBeanBinding のインスタンスである必要があります。
|
cxfBinding=#bindingName
|
いいえ |
DefaultCxfBeanBinding
|
headerFilterStrategy
|
# 表記で指定されたヘッダーフィルターストラテジー。参照されるオブジェクトは org.apache.camel.spi.HeaderFilterStrategy のインスタンスである必要があります。
|
headerFilterStrategy=#strategyName
|
いいえ |
CxfHeaderFilterStrategy
|
populateFromClass
|
2.3 以降、このオプションが false に設定されていない限り、POJO のアノテーションが付けられた wsdlLocation は無視されます(デフォルト)。2.3 より前のバージョンでは、POJO のアノテーションが付けられた wsdlLocation は常に尊重され、無視することはできません。
|
true、false
|
いいえ |
true
|
providers
|
2.5 以降、CXFRS エンドポイントのプロバイダーを設定します。 |
providers=#providerRef1,#providerRef2
|
いいえ |
null
|
setDefaultBus
|
CXF エンドポイントがバスを単独で作成すると、デフォルトのバスを設定します。 |
true、false
|
いいえ |
false
|
Headers リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 説明 | タイプ | 必須 ? | デフォルト値 | In/Out | 例 |
|---|---|---|---|---|---|---|
CamelHttpCharacterEncoding (before 2.0-m2: CamelCxfBeanCharacterEncoding)
|
文字エンコーディング |
文字列
|
いいえ | なし | In | ISO-8859-1 |
CamelContentType (before 2.0-m2: CamelCxfBeanContentType)
|
コンテンツタイプ |
文字列
|
いいえ | \**/*\* | In |
text/xml
|
|
CamelHttpBaseUri (2.0-m3 以前:
CamelCxfBeanRequestBasePath)
|
このヘッダーの値は、CXF メッセージで Message.BASE_PATH プロパティーとして設定されます。これは CXF JAX-RS 処理に必要です。基本的には、要求 URI のスキーム、ホスト、およびポートの部分です。
|
文字列
|
はい | Camel エクスチェンジのソースエンドポイントのエンドポイント URI | In | http://localhost:9000 |
CamelHttpPath (before 2.0-m2: CamelCxfBeanRequestPat{}h)
|
要求 URI のパス |
文字列
|
はい | なし | In |
consumer/123
|
CamelHttpMethod (before 2.0-m2: CamelCxfBeanVerb)
|
RESTful リクエストの動詞 |
文字列
|
はい | なし | In |
を 取得 します。 を配置、 投稿、削除
|
CamelHttpResponseCode
|
HTTP 応答コード |
整数
|
いいえ | なし | Out | 200 |
作業例 リンクのコピーリンクがクリップボードにコピーされました!
from エンドポイントは、ポート 9000 でリッスンする Jetty HTTP エンドポイントです。RESTful リクエスト URI はエンドポイントの URI http://localhost:9000 と完全に一致しないため、matchOnUriPrefix オプションを true に設定する必要があります。
<route> <from uri="jetty:http://localhost:9000?matchOnUriPrefix=true" /> <to uri="cxfbean:customerServiceBean" /> <to uri="mock:endpointA" /> </route>
<route>
<from uri="jetty:http://localhost:9000?matchOnUriPrefix=true" />
<to uri="cxfbean:customerServiceBean" />
<to uri="mock:endpointA" />
</route>
to エンドポイントは、Bean が customerServiceBean という名前の CXF Bean です。名前はレジストリーから検索されます。次に、サービス Bean が Spring レジストリーで利用可能であることを確認します。Spring 設定で Bean 定義を作成します。この例では、(要素が 1 つ)サービス Bean のリストを作成します。List なしで単一の Bean のみを作成できます。
<util:list id="customerServiceBean"> <bean class="org.apache.camel.component.cxf.jaxrs.testbean.CustomerService" /> </util:list> <bean class="org.apache.camel.wsdl_first.PersonImpl" id="jaxwsBean" />
<util:list id="customerServiceBean">
<bean class="org.apache.camel.component.cxf.jaxrs.testbean.CustomerService" />
</util:list>
<bean class="org.apache.camel.wsdl_first.PersonImpl" id="jaxwsBean" />
url = new URL("http://localhost:9000/customerservice/orders/223/products/323");
in = url.openStream();
assertEquals("{\"Product\":{\"description\":\"product 323\",\"id\":323}}", CxfUtils.getStringFromInputStream(in));
url = new URL("http://localhost:9000/customerservice/orders/223/products/323");
in = url.openStream();
assertEquals("{\"Product\":{\"description\":\"product 323\",\"id\":323}}", CxfUtils.getStringFromInputStream(in));
第31章 CXFRS リンクのコピーリンクがクリップボードにコピーされました!
CXFRS コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
pom.xml に追加する必要があります。
<dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-cxf</artifactId> <version>x.x.x</version> <!-- use the same version as your Camel core version --> </dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-cxf</artifactId>
<version>x.x.x</version> <!-- use the same version as your Camel core version -->
</dependency>
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
cxfrs://address?options
cxfrs://address?options
cxfrs:bean:rsEndpoint
cxfrs:bean:rsEndpoint
cxfrs:bean:cxfEndpoint?resourceClasses=org.apache.camel.rs.Example
cxfrs:bean:cxfEndpoint?resourceClasses=org.apache.camel.rs.Example
オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 説明 | 例 | 必須 ? | デフォルト値 |
|---|---|---|---|---|
resourceClasses
|
REST サービスとしてエクスポートするリソースクラス。複数のクラスはコンマで区切ることができます。 |
resourceClasses=org.apache.camel.rs.Example1,org.apache.camel.rs.Exchange2
|
いいえ | なし |
httpClientAPI
|
Apache Camel 2.1 の新 機能。true の場合、CxfRsProducer は HttpClientAPI を使用してサービスを呼び出します。 |
httpClientAPI=true
|
No |
true
|
synchronous
|
2.5 の新機能として、このオプションにより、CxfRsConsumer が sync または async API を使用して基礎となる作業を行うよう決定します。デフォルト値は false です。これは、デフォルトで非同期 API の使用を試みることを意味します。 |
synchronous=true
|
No |
false
|
throwExceptionOnFailure
|
2.6 の新機能として、このオプションは CxfRsProducer に対してリターンコードを検査するように指示し、リターンコードが 207 を超える場合は Exception を生成します。 |
throwExceptionOnFailure=true
|
No |
true
|
maxClientCacheSize
|
2.6 の新機能として、In メッセージヘッダー CamelDestinationOverrideUrl を設定して、ルートに定義されたターゲットの宛先 Web サービスまたは REST サービスを動的に上書きできるようになりました。この実装は、CXF クライアントまたは CxfProvider および CxfRsProvider で ClientFactoryBean をキャッシュします。このオプションを使用すると、キャッシュの最大サイズを設定できます。
|
maxClientCacheSize=5
|
いいえ | 10 |
setDefaultBus
|
非推奨: Camel 2.16 以降では defaultBus オプションを使用します。CXF エンドポイントがバスを単独で作成すると、デフォルトのバスを設定します。
|
setDefaultBus=true
|
いいえ |
false
|
defaultBus
|
CXF エンドポイントがバスを単独で作成すると、デフォルトのバスを設定します。 |
defaultBus=true
|
いいえ |
false
|
bus
|
2.9.0 の新機能CXF Bus Factory によって作成されるデフォルトのバス。レジストリーからバスオブジェクトを参照するには、\# 表記を使用します。参照オブジェクトは org.apache.cxf.Bus のインスタンスである必要があります。
|
bus=#busName
|
いいえ | なし |
bindingStyle
|
2.11 以降。Camel との間でリクエストと応答をマッピングする方法を設定します。以下の 2 つの値を使用できます。
|
bindingStyle=SimpleConsumer
|
いいえ | デフォルト |
binding
|
カスタムの
CxfRsBinding 実装を指定して、未加工の CXF 要求および応答オブジェクトの低レベルの処理を実行できます。実装は Camel レジストリーにバインドする必要があり、ハッシュ(#)表記を使用して参照する必要があります。
|
binding=#myBinding
|
No
|
DefaultCxfRsBinding
|
providers
|
Camel 2.12.2 以降、カスタムの JAX-RS プロバイダーリストを CxfRs エンドポイントに設定します。
|
providers=#MyProviders
|
いいえ
|
なし
|
schemaLocations
|
Camel 2.12.2 以降、受信 XML または JAXB 駆動型 JSON の検証に使用できるスキーマの場所を設定します。
|
schemaLocations=#MySchemaLocations
|
いいえ
|
なし
|
features
|
Camel 2.12.3 以降、機能リストを CxfRs エンドポイントに設定します。
|
features=#MyFeatures
|
いいえ
|
なし
|
properties
|
Camel 2.12.4 以降、プロパティーを CxfRs エンドポイントに設定します。
|
properties=#MyProperties
|
いいえ
|
なし
|
inInterceptors
|
Camel 2.12.4 以降、inInterceptors を CxfRs エンドポイントに設定します。
|
inInterceptors=#MyInterceptors
|
いいえ
|
なし
|
outInterceptors
|
Camel 2.12.4 以降、outInterceptor を CxfRs エンドポイントに設定します。
|
outInterceptors=#MyInterceptors
|
いいえ
|
なし
|
inFaultInterceptors
|
Camel 2.12.4 以降、inFaultInterceptors を CxfRs エンドポイントに設定します。
|
inFaultInterceptors=#MyInterceptors
|
いいえ
|
なし
|
outFaultIntercetpros
|
Camel 2.12.4 以降、outFaultInterceptors を CxfRs エンドポイントに設定します。
|
outFaultInterceptors=#MyInterceptors
|
いいえ
|
なし
|
continuationTimeout
|
Camel 2.14.0 以降、このオプションは CXF サーバーが Jetty または Servlet トランスポートを使用している場合にデフォルトで CxfConsumer で使用できる CXF 継続タイムアウトを設定するために使用されます。( Camel 2.14. 0 よりも前のバージョンでは、CxfConsumer は継続タイムアウトを 0 に設定するだけで、継続一時停止操作がタイムアウトしないことを意味します)。
|
continuationTimeout=800000
|
いいえ
|
30000
|
ignoreDeleteMethodMessageBody
|
Camel 2.14.1 以降、このオプションは HTTP API の使用時に
DELETE メソッドのメッセージボディーを無視するように CxfRsProducer に指示するために使用されます。
|
ignoreDeleteMethodMessageBody=true
|
いいえ
|
false
|
modelRef
|
Camel 2.15 以降、このオプションは、ドキュメントのみのエンドポイントをエミュレートするためにサービスクラスを指定せずにモデルファイルを参照できます。
|
modelRef=classpath:/CustomerServiceModel.xml
|
いいえ
|
なし
|
performInvocation
|
Camel 2.15 の場合、オプションが true の場合、Camel は リソースクラスインスタンスの呼び出しを実行し、応答オブジェクトをエクスチェンジに配置してさらに処理します。
|
performInvocation=true
|
いいえ
|
false
|
loggingFeatureEnabled
|
このオプションは、インバウンドおよびアウトバウンド REST メッセージをログに書き込む CXF ロギング機能を有効にします。 | - | いいえ |
false
|
skipFaultLogging
|
このオプションは、PhaseInterceptorChain がキャッチする Fault のロギングをスキップするかどうかを制御します。
|
- | いいえ |
false
|
loggingSizeLimit
|
ロギング機能を有効にすると、このオプションを使用してロガーが出力するバイト数を制限します。 | - | いいえ |
0
|
propagateContexts
|
Camel 2.15 When
true 以降、JAXRS UriInfo、HttpHeaders、Request、および SecurityContext コンテキストは、型指定された Camel エクスチェンジプロパティーとしてカスタム CXFRS プロセッサーで利用できます。これらのコンテキストは、JAX-RS API を使用して現在のリクエストを分析するために使用できます。
|
|
|
|
loggingFeatureEnabled
|
このオプションは、インバウンドおよびアウトバウンド REST メッセージをログに書き込む CXF Logging 機能を有効にします。
|
|
いいえ
|
false
|
skipFaultLogging
|
このオプションは、PhaseInterceptorChain がキャッチする Fault のロギングをスキップするかどうかを制御します。
|
|
いいえ
|
false
|
loggingSizeLimit
|
ロギング機能が有効な場合、ロガーが出力されるバイト数の合計サイズを制限します。
|
|
いいえ
|
0
|
Apache Camel で REST エンドポイントを設定する方法 リンクのコピーリンクがクリップボードにコピーされました!
メッセージヘッダーから CXF プロデューサーアドレスを上書きする方法 リンクのコピーリンクがクリップボードにコピーされました!
// set up the service address from the message header to override the setting of CXF endpoint exchange.getIn().setHeader(Exchange.DESTINATION_OVERRIDE_URL, constant(getServiceAddress()));
// set up the service address from the message header to override the setting of CXF endpoint
exchange.getIn().setHeader(Exchange.DESTINATION_OVERRIDE_URL, constant(getServiceAddress()));
REST リクエストの使用 - シンプルバインディングスタイル リンクのコピーリンクがクリップボードにコピーされました!
Default バインディングスタイルは代わりに低レベルであるため、ユーザーはルートに送信される MessageContentsList オブジェクトを手動で処理する必要があります。そのため、ルートロジックと JAX-RS 操作のメソッド署名およびパラメーターインデックスが密接に結合されます。悪意、難易度、エラーが発生しやすくなります。
SimpleConsumer バインディングスタイルは以下のマッピングを実行し、要求データが Camel Message 内でアクセスしやすく します。
- JAX-RS パラメーター(@HeaderParam、@QueryParam など)は IN メッセージヘッダーとして注入されます。ヘッダー名は アノテーションの値と一致します。
- リクエストエンティティー(POJO またはその他のタイプ)は IN メッセージボディーになります。JAX-RS メソッド署名で単一のエンティティーを識別できない場合は、元の
MessageContentsListにフォールバックします。 - バイナリー
@Multipartボディーの部分は IN message attachments、DataHandler、InputStreamDataSource、および CXF のAttachmentクラスをサポートします。 - バイナリー以外の
@Multipartボディーの部分は IN メッセージヘッダーとしてマッピングされます。ヘッダー名は Body Part 名と一致します。
- メッセージボディータイプが
javax.ws.rs.core.Response(ユーザー構築応答)と異なる場合、新しいResponseが作成され、メッセージボディーはエンティティーとして設定されます(null 以外)。応答ステータスコードはExchange.HTTP_RESPONSE_CODEヘッダーから取得されます。存在しない場合には、デフォルトは 200 OK に設定されます。 - メッセージボディータイプが
javax.ws.rs.core.Responseと等しい場合、ユーザーはカスタム応答を構築するため、尊重され、最終的な応答になります。 - いずれの場合も、カスタムまたはデフォルトの
HeaderFilterStrategyで許可されている Camel ヘッダーが HTTP 応答に追加されます。
シンプルバインディングスタイルの有効化 リンクのコピーリンクがクリップボードにコピーされました!
bindingStyle パラメーターを SimpleConsumer の値に設定します。
from("cxfrs:bean:rsServer?bindingStyle=SimpleConsumer")
.to("log:TEST?showAll=true");
from("cxfrs:bean:rsServer?bindingStyle=SimpleConsumer")
.to("log:TEST?showAll=true");
異なるメソッド署名を使用した要求バインディングの例 リンクのコピーリンクがクリップボードにコピーされました!
public Response doAction (BusinessObject request); Request payload is placed in IN メッセージボディーは IN メッセージボディーに配置され、元の MessageContentsList を置き換えます。
public Response doAction (BusinessObject request, @HeaderParam ("abcd") String abcd, @QueryParam ("defg") String defg); Request payload placed in IN メッセージボディーは、元の MessageContentsList を置き換えます。どちらのリクエストパラメーターも、abcd と defg という名前の IN メッセージヘッダーとしてマッピングされます。
public Response doAction (@HeaderParam ("abcd") String abcd, @QueryParam ("defg") String defg); Both request params mapped as IN メッセージヘッダー with names abcd and defg.元の MessageContentsList には 2 つのパラメーターのみが含まれている場合でも保持されます。
public Response doAction (@Multipart (value="body1") BusinessObject request, @Multipart (value="body2") BusinessObject request2); 最初のパラメーターは body1 という名前のヘッダーとして転送され、2 番目のパラメーターはヘッダー body2 としてマッピングされます。元の MessageContentsList は IN メッセージボディーとして保持されます。
public Response doAction (InputStream abcd); The InputStream is unwrapped from the MessageContentsList and preserved as the IN message body.
public Response doAction (DataHandler abcd); DataHandler は MessageContentsList からラップ解除され、IN メッセージボディーとして保持されます。
シンプルバインディングスタイルの例 リンクのコピーリンクがクリップボードにコピーされました!
@POST @Path("/customers/{type}")
public Response newCustomer(Customer customer, @PathParam("type") String type, @QueryParam("active") @DefaultValue("true") boolean active) {
return null;
}
@POST @Path("/customers/{type}")
public Response newCustomer(Customer customer, @PathParam("type") String type, @QueryParam("active") @DefaultValue("true") boolean active) {
return null;
}
Request: type=gold, active=true, customerData=<Customer.toString() representation>
Request: type=gold, active=true, customerData=<Customer.toString() representation>
REST リクエストの使用 - デフォルトバインディングスタイル リンクのコピーリンクがクリップボードにコピーされました!
camel-restlet コンポーネントとは異なり、エンドポイント内で URI テンプレートを指定する必要はありません。CXF は JSR-311 仕様に従って、REST 要求 URI をリソースクラスメソッドマッピングに処理します。Apache Camel で行う必要があるのは、このメソッドリクエストを適切なプロセッサーまたはエンドポイントに委譲することです。
performInvocation オプションが有効になっていると、サービス実装が最初に呼び出されます。応答は Camel エクスチェンジに設定され、ルートの実行は通常どおり継続されます。これは、既存の JAX-RS 実装を Camel ルートに統合する場合や、カスタムプロセッサーでの JAX-RS 応答の後処理に役立ちます。
How to invoke the REST service through camel-cxfrs producer? リンクのコピーリンクがクリップボードにコピーされました!
camel-cxfrs プロデューサーはこの プロキシー API に基づいています。メッセージヘッダーで操作名を指定し、メッセージボディーにパラメーターを準備するだけで、camel-cxfrs プロデューサーは適切な REST 要求を生成します。
camel-cxfrs プロデューサーからこの API を呼び出すこともできます。HTTP_PATH および Http メソッドを指定し、URI オプション httpClientAPI を使用するか、CxfConstants.CAMEL_CXF_RS_USING_HTTP_API でメッセージヘッダーを設定して、プロデューサーに HTTP 中心のクライアントの使用を知らせる必要があります。応答オブジェクトは、CxfConstants.CAMEL_CXF_RS_RESPONSE_CLASS で指定するタイプクラスに変換できます。
Exchange exchange = template.send("cxfrs://http://localhost:" + getPort2() + "/" + getClass().getSimpleName() + "/testQuery?httpClientAPI=true&q1=12&q2=13"
Exchange exchange = template.send("cxfrs://http://localhost:" + getPort2() + "/" + getClass().getSimpleName() + "/testQuery?httpClientAPI=true&q1=12&q2=13"
CxfConstants.CAMEL_CXF_RS_QUERY_MAP ヘッダーを使用してパラメーターマップを設定して URI のクエリーパラメーターを上書きすることができます。
Map<String, String> queryMap = new LinkedHashMap<String, String>();
queryMap.put("q1", "new");
queryMap.put("q2", "world");
inMessage.setHeader(CxfConstants.CAMEL_CXF_RS_QUERY_MAP, queryMap);
Map<String, String> queryMap = new LinkedHashMap<String, String>();
queryMap.put("q1", "new");
queryMap.put("q2", "world");
inMessage.setHeader(CxfConstants.CAMEL_CXF_RS_QUERY_MAP, queryMap);
第32章 DataFormat コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
データフォーマットのコンポーネント リンクのコピーリンクがクリップボードにコピーされました!
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
dataformat:name:(marshal|unmarshal)[?options]
dataformat:name:(marshal|unmarshal)[?options]
マーシャリング または アンマーシャリング する必要があります。オプションは、使用中の データフォーマット の設定に使用されます。サポートされるオプションは、Data Format のドキュメントを参照してください。
サンプル リンクのコピーリンクがクリップボードにコピーされました!
from("activemq:My.Queue").
to("dataformat:jaxb:unmarshal?contextPath=com.acme.model").
to("mqseries:Another.Queue");
from("activemq:My.Queue").
to("dataformat:jaxb:unmarshal?contextPath=com.acme.model").
to("mqseries:Another.Queue");
第33章 DataSet リンクのコピーリンクがクリップボードにコピーされました!
データセットコンポーネント リンクのコピーリンクがクリップボードにコピーされました!
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
dataset:name[?options]
dataset:name[?options]
org.apache.camel.component.dataset.DataSet のサポート実装が同梱されており、独自の DataSet を実装するためのベースとして使用できる org.apache.camel.component.dataset.DataSetSupport クラスです。Apache Camel には、テストに使用できる実装( org.apache.camel.component.dataset.SimpleDataSet、org.apache.camel.component.dataset.ListDataSet、および org.apache.camel.component.dataset.FileDataSet )も同梱されます。これらはすべて DataSetSupport を拡張します。
オプション リンクのコピーリンクがクリップボードにコピーされました!
| オプション | デフォルト | 説明 |
|---|---|---|
produceDelay
|
3 | 遅延をミリ秒単位で指定できます。これにより、プロデューサーが一時停止し、低速なプロデューサーをシミュレートします。このオプションを -1 に設定し、遅延なしを強制しない限り、最低 3 ミリ秒の遅延を使用します。 |
consumeDelay
|
0 | ミリ秒で遅延を指定できるようにします。これにより、コンシューマーは低速なコンシューマーをシミュレートするために一時停止します。 |
preloadSize
|
0 | ルートが初期化を完了する前に事前ロードするメッセージ数を設定します(送信)。 |
initialDelay
|
1000 | Camel 2.1: メッセージの送信を開始する前に待機する期間(ミリ秒単位)。 |
minRate
|
0 | DataSet にこの数のメッセージが含まれるまで待ちます。 |
dataSetIndex
|
lenient
|
Camel 2.17:
CamelDataSetIndex ヘッダーの動作を制御します。サポートされる値は strict、lenient および off です。Camel 2.17 より前のデフォルトの動作は、dataSetIndex=strict を設定して復元できます。
コンシューマーの場合:
プロデューサーの場合:
|
?option=value&option=value&.. の形式で追加できます。
DataSet の設定 リンクのコピーリンクがクリップボードにコピーされました!
<bean id="myDataSet" class="com.mycompany.MyDataSet">
<property name="size" value="100"/>
</bean>
<bean id="myDataSet" class="com.mycompany.MyDataSet">
<property name="size" value="100"/>
</bean>
例 リンクのコピーリンクがクリップボードにコピーされました!
// send the dataset to a queue
from("dataset:foo").to("activemq:SomeQueue");
// now lets test that the messages are consumed correctly
from("activemq:SomeQueue").to("dataset:foo");
// send the dataset to a queue
from("dataset:foo").to("activemq:SomeQueue");
// now lets test that the messages are consumed correctly
from("activemq:SomeQueue").to("dataset:foo");
SimpleDataSet を使用するなど、DataSet 実装を作成し、データセットのサイズやメッセージがどのように見えるかなどを設定します。
DataSetSupport のプロパティー リンクのコピーリンクがクリップボードにコピーされました!
|
プロパティー
|
タイプ
|
デフォルト
|
説明
|
|---|---|---|---|
defaultHeaders
|
Map<String,Object>
|
null
|
デフォルトのメッセージボディーを指定します。SimpleDataSet の場合、これは一定のペイロードです。ただし、メッセージごとにカスタムペイロードを作成する場合は、
DataSetSupport の独自の導出を作成します。
|
outputTransformer
|
org.apache.camel.Processor
|
null
|
|
size
|
long
|
10
|
送信/消費するメッセージの数を指定します。
|
reportCount
|
long
|
-1
|
進捗を報告する前に受信するメッセージの数を指定します。大規模な負荷テストの進捗を表示するのに便利です。< 0 の場合、size / 5、が 0 の場合は size、それ以外の場合は reportCount 値に設定されます。
|
SimpleDataSet リンクのコピーリンクがクリップボードにコピーされました!
SimpleDataSet は DataSetSupport を拡張し、デフォルトのボディーを追加します。
|
プロパティー
|
タイプ
|
デフォルト
|
説明
|
|---|---|---|---|
defaultBody
|
Object
|
<hello>world!</hello>
|
デフォルトのメッセージボディーを指定します。SimpleDataSet の場合、これは一定のペイロードです。ただし、メッセージごとにカスタムペイロードを作成する場合は、
DataSetSupport の独自の導出を作成します。
|
ListDataSet リンクのコピーリンクがクリップボードにコピーされました!
DataSet は DataSetSupport を拡張し、デフォルトの本文の一覧を追加します。
|
プロパティー
|
タイプ
|
デフォルト
|
説明
|
|---|---|---|---|
defaultBodies
|
Object
|
<hello>world!</hello>
|
|
size
|
long
|
10
|
|
FileDataSet リンクのコピーリンクがクリップボードにコピーされました!
SimpleDataSet は ListDataSet を拡張し、ファイルから本文を読み込むサポートを追加します。
|
プロパティー
|
タイプ
|
デフォルト
|
説明
|
|---|---|---|---|
sourceFile
|
String
|
null
|
|
delimiter
|
String
|
\z
|
|
第34章 Direct リンクのコピーリンクがクリップボードにコピーされました!
Direct コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
direct:someName[?options]
direct:someName[?options]
オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | デフォルト値 | 説明 |
|---|---|---|
block
|
false
|
Camel 2.11.1: アクティブなコンシューマーのないダイレクトエンドポイントにメッセージを送信する場合は、プロデューサーにブロックし、コンシューマーがアクティブになるのを待つようにプロデューサーに指示することができます。 |
timeout
|
30000
|
Camel 2.11.1: ブロックが有効な場合に使用するタイムアウト値。 |
failIfNoConsumers
|
true
|
Camel 2.16.0: アクティブなコンシューマーのない DIRECT エンドポイントに送信するときにプロデューサーが例外を出力して失敗するかどうかを示します。
|
?option=value&option=value&.. の形式で追加できます。
サンプル リンクのコピーリンクがクリップボードにコピーされました!
第35章 Direct-VM リンクのコピーリンクがクリップボードにコピーされました!
Direct VM コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
direct-vm:someName
direct-vm:someName
オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | デフォルト値 | 説明 |
|---|---|---|
block
|
false
|
Camel 2.11.1: アクティブなコンシューマーのないダイレクトエンドポイントにメッセージを送信する場合は、プロデューサーにブロックし、コンシューマーがアクティブになるのを待つようにプロデューサーに指示することができます。 |
timeout
|
30000
|
Camel 2.11.1: ブロックが有効な場合に使用するタイムアウト値。 |
failIfNoConsumers
|
true
|
Camel 2.16.0: アクティブなコンシューマーのない DIRECT エンドポイントに送信するときにプロデューサーが例外を出力して失敗するかどうかを示します。
|
サンプル リンクのコピーリンクがクリップボードにコピーされました!
from("activemq:queue:order.in")
.to("bean:orderServer?method=validate")
.to("direct-vm:processOrder");
from("activemq:queue:order.in")
.to("bean:orderServer?method=validate")
.to("direct-vm:processOrder");
from("direct-vm:processOrder")
.to("bean:orderService?method=process")
.to("activemq:queue:order.out");
from("direct-vm:processOrder")
.to("bean:orderService?method=process")
.to("activemq:queue:order.out");
第36章 Disruptor リンクのコピーリンクがクリップボードにコピーされました!
Disruptor コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
- 使用されるバッファーは、常にサイズでバインドされます(デフォルトの 1024 エクスチェンジ)。
- バッファーは常に禁止されるため、例外を出力する代わりにバッファーが満杯である間に Disruptor のデフォルト動作がブロックされます。このデフォルトの動作は コンポーネントに設定できます(オプションを参照)。
- Disruptor 予約は BrowsableEndpoint インターフェイスを実装しません。そのため、現在 Disruptor にあるエクスチェンジを取得できず、交換の量のみを取得できます。
- Disruptor では、コンシューマー(マルチキャストの有無)を静的に設定する必要があります。オンザフライでコンシューマーを追加または削除するには、Diruptor の保留中のすべてのエクスチェンジを完全にフラッシュする必要があります。
- 再設定の結果:Disruptor で送信されるデータは直接処理され、コンシューマーが 1 つ以上ある場合は 'gone' になり、結合後に新しいエクスチェンジのみを取得します。
- pollTimeout オプションは Disruptor コンポーネントではサポートされません。
- プロデューサーが完全な Disruptor をブロックすると、スレッド割り込みに応答しません。
pom.xml に以下の依存関係を追加する必要があります。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
disruptor:someName[?options]
disruptor:someName[?options]
disruptor-vm:someName[?options]
disruptor-vm:someName[?options]
?option=value&option=value&...
?option=value&option=value&...
オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | デフォルト | 説明 |
|---|---|---|
| size | 1024 | Disruptors リングバッファーの最大容量。2 の最も近い累乗に事実上増加します。注: このオプションを使用する場合、キュー名で最初のエンドポイントが作成され、サイズを決定するのは最小限です。すべてのエンドポイントが同じサイズを使用するようにするには、すべてのエンドポイントで size オプションを設定するか、作成される最初のエンドポイントを設定します。 |
| bufferSize | コンポーネントのみ: Disruptors リングバッファーのデフォルトサイズ(保持可能なメッセージ数の容量)。このオプションは、サイズが使用されていない場合に使用されます。 | |
| queueSize | コンポーネントのみ: SEDA コンポーネントとの最大互換性を維持するために <em>bufferSize</em> を指定する追加のオプション。 | |
| concurrentConsumers | 1 | 同時スレッド処理エクスチェンジの数。 |
| waitForTaskToComplete | IfReplyExpected | 非同期タスクが完了するまで呼び出し元が待機するかどうかを指定するオプション。Always、Never、または IfReplyExpected の 3 つのオプションがサポートされます。最初の 2 つの値は自己説明です。最後の値 IfReplyExpected は、メッセージが RequestReply-based の場合にのみ待機します。非同期メッセージングの詳細は、非同期 メッセージング を参照してください。 |
| timeout | 30000 | プロデューサーが非同期タスクが完了するまで待機するタイムアウト(ミリ秒単位)。詳細は、waitForTaskToComplete および Async を参照してください。0 または負の値を使用して、タイムアウトを無効にすることができます。 |
| defaultMultipleConsumers | コンポーネントのみ: multipleConsumers が指定されていない場合に使用されるこのコンポンサーによって作成されるエンドポイントに、複数のコンシューマーのデフォルト許可を設定できます。 | |
|
multipleConsumers
|
false
|
複数のコンシューマーを許可するかどうかを指定します。有効にすると、Publish-Subscribe メッセージングに Disruptor を使用できます。つまり、SEDA キューにメッセージを送信し、各コンシューマーがメッセージのコピーを受け取ることができます。有効にすると、すべてのコンシューマーエンドポイントでこのオプションを指定する必要があります。
|
| limitConcurrentConsumers | true | concurrentConsumers 数を最大 500 に制限するかどうか。デフォルトでは、Disruptor エンドポイントがより大きな数値で設定されている場合、例外が発生します。このオプションをオフにすると、そのチェックを無効にできます。 |
| blockWhenFull | true | メッセージを full Disruptor に送信するスレッドが、リングバッファーの容量が枯渇しなくなるまでブロックされるかどうか。デフォルトでは、呼び出し元のスレッドは、メッセージが受け入れられるまでブロックおよび待機します。このオプションを無効にすると、キューが満杯であることを示す例外が出力されます。 |
| defaultBlockWhenFull | Component only: blockWhenFull が指定されていない場合に使用されるこのコンポントによって作成されたエンドポイントに対してリングバッファーが満杯になると、デフォルトのプロデューサー動作を設定できます。 | |
| waitStrategy | Blocking | 新しいエクスチェンジが公開されるのを待つコンシューマースレッドによって使用されるストラテジーを定義します。許可されるオプションは、Blocking、Sleeping、BusySpin、および Yielding です。この件に関する詳細は、以下のセクションを参照してください。 |
| defaultWaitStrategy | Component only: waitStrategy が指定されていない場合に使用されるこのコンポントによって作成されたエンドポイントにデフォルトの待機ストラテジーを設定できます。 | |
| producerType | multi |
Disruptor で許可されるプロデューサーを定義します。許可されるオプションは、複数のプロデューサーと Single が、特定の最適化を有効にすることができることです(1 つのスレッドまたは他のスレッド上、または同期されている場合)。
|
待機ストラテジー リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 説明 | アドバイス |
|---|---|---|
| Blocking | バリアで待機している Consumers に lock および condition 変数を使用するブロッキングストラテジー。 | このストラテジーは、CPU リソースほどスループットと低レイテンシーが重要ではない場合に使用できます。 |
| スリープ状態 | 最初にスピンアップし、Thread.yield ()を使用し、最終的には OS と JVM の最小数で、コンシューマーがバリアで待機している間に許可されるスリープストラテジー。 | このストラテジーは、パフォーマンスと CPU リソース間の妥協です。レイテンシーの急増は、quiet 期間の後に発生する可能性があります。 |
| BusySpin | バリアで待機している Consumers にビジースピンループを使用する busy Spin ストラテジー。 | このストラテジーは、CPU リソースを使用して、レイテンシージッターを引き起こす可能性のある syscall を回避します。スレッドを特定の CPU コアにバインドできる場合に最適です。 |
| yielding | 初回の回転後にバリアで待機した Consumers に Thread.yield ()を使用するストラテジーを生成します。 | このストラテジーは、レイテンシーが大幅に急増することなく、パフォーマンスと CPU リソース間の妥協です。 |
リクエスト応答の使用 リンクのコピーリンクがクリップボードにコピーされました!
from("mina:tcp://0.0.0.0:9876?textline=true&sync=true").to("disruptor:input");
from("disruptor:input").to("bean:processInput").to("bean:createResponse");
from("mina:tcp://0.0.0.0:9876?textline=true&sync=true").to("disruptor:input");
from("disruptor:input").to("bean:processInput").to("bean:createResponse");
同時コンシューマー リンクのコピーリンクがクリップボードにコピーされました!
from("disruptor:stageName?concurrentConsumers=5").process(...)
from("disruptor:stageName?concurrentConsumers=5").process(...)
スレッドプール リンクのコピーリンクがクリップボードにコピーされました!
from("disruptor:stageName").thread(5).process(...)
from("disruptor:stageName").thread(5).process(...)
例 リンクのコピーリンクがクリップボードにコピーされました!
Object out = template.requestBody("direct:start", "Hello World");
assertEquals("OK", out);
Object out = template.requestBody("direct:start", "Hello World");
assertEquals("OK", out);
multipleConsumers の使用 リンクのコピーリンクがクリップボードにコピーされました!
中断情報の抽出 リンクのコピーリンクがクリップボードにコピーされました!
DisruptorEndpoint disruptor = context.getEndpoint("disruptor:xxxx");
int size = disruptor.getBufferSize();
DisruptorEndpoint disruptor = context.getEndpoint("disruptor:xxxx");
int size = disruptor.getBufferSize();
第37章 DNS リンクのコピーリンクがクリップボードにコピーされました!
DNS リンクのコピーリンクがクリップボードにコピーされました!
ip- ドメインを IP アドレスで解決します。
lookup- ドメインに関する情報を検索します。
dig- DNS クエリーを実行します。
etc/jre.properties ファイルを調整して、sun.net.spi.nameservice をエクスポートされた Java プラットフォームパッケージの一覧に追加する必要があります。この変更を反映するには、サーバーを再起動する必要があります。
pom.xml に以下の依存関係を追加する必要があります。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
dns://operation
dns://operation
オプション リンクのコピーリンクがクリップボードにコピーされました!
Headers リンクのコピーリンクがクリップボードにコピーされました!
| ヘッダー | タイプ | 操作 | 説明 |
|---|---|---|---|
dns.domain
|
String
|
ip
|
ドメイン名。必須。 |
dns.name
|
String
|
lookup
|
検索する名前。必須。 |
dns.type
|
- |
lookup, dig
|
ルックアップのタイプ。org.xbill.dns.Type の値と一致する必要があります。(オプション)
|
dns.class
|
- |
lookup, dig
|
ルックアップの DNS クラス。org.xbill.dns.DClass の値と一致する必要があります。(オプション)
|
dns.query
|
String
|
dig
|
クエリー自体。必須。 |
dns.server
|
String
|
dig
|
クエリーに関する特定のサーバー。指定がない場合は、OS で指定されたデフォルトのものが使用されます。(オプション) |
例 リンクのコピーリンクがクリップボードにコピーされました!
IP ルックアップ リンクのコピーリンクがクリップボードにコピーされました!
<route id="IPCheck">
<from uri="direct:start"/>
<to uri="dns:ip"/>
</route>
<route id="IPCheck">
<from uri="direct:start"/>
<to uri="dns:ip"/>
</route>
dns.domain を含むヘッダーに指定する必要があります。
DNS ルックアップ リンクのコピーリンクがクリップボードにコピーされました!
<route id="IPCheck">
<from uri="direct:start"/>
<to uri="dns:lookup"/>
</route>
<route id="IPCheck">
<from uri="direct:start"/>
<to uri="dns:lookup"/>
</route>
dns.name キーを指定する必要があります。
DNS Dig リンクのコピーリンクがクリップボードにコピーされました!
<route id="IPCheck">
<from uri="direct:start"/>
<to uri="dns:dig"/>
</route>
<route id="IPCheck">
<from uri="direct:start"/>
<to uri="dns:dig"/>
</route>
dns.query を含むヘッダーに提供する必要があります。
第38章 Docker リンクのコピーリンクがクリップボードにコピーされました!
Docker コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
pom.xml に追加する必要があります。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
docker://[operation]?[options]
docker://[operation]?[options]
ヘッダーストラテジー リンクのコピーリンクがクリップボードにコピーされました!
| URI オプション | ヘッダープロパティー |
|---|---|
| containerId | CamelDockerContainerId |
一般的なオプション リンクのコピーリンクがクリップボードにコピーされました!
| オプション | ヘッダー | 説明 | デフォルト値 |
|---|---|---|---|
| host | CamelDockerHost | 必須: Docker ホスト | localhost |
| port | CamelDockerPort | 必須:Docker ポート | 2375 |
| username | CamelDockerUserName | 認証に使用するユーザー名 | |
| password | CamelDockerPassword | 認証するパスワード | |
| CamelDockerEmail | ユーザーに関連付けられたメールアドレス | ||
| secure | CamelDockerSecure | HTTPS 通信の使用 | false |
| requestTimeout | CamelDockerRequestTimeout | 応答の要求タイムアウト(秒単位) | 30 |
| certPath | CamelDockerCertPath | SSL 証明書チェーンを含む場所 |
コンシューマー操作 リンクのコピーリンクがクリップボードにコピーされました!
| 操作 | オプション | 説明 | 生成されるアイテム |
|---|---|---|---|
| events | initialRange | Docker イベントの監視(ストリーム) | イベント |
プロデューサー操作 リンクのコピーリンクがクリップボードにコピーされました!
| その他操作 | オプション | 説明 | 戻り値 |
|---|---|---|---|
| auth | 認証設定の確認 | ||
| info | システム全体の情報 | Info | |
| ping | Docker サーバーに ping します。 | ||
| version | Docker バージョン情報を表示します。 | バージョン |
| イメージ操作 | オプション | 説明 | 本文の内容 | 戻り値 |
|---|---|---|---|---|
| image/list | filter, showAll | イメージを一覧表示します。 | List<Image> | |
| image/create | repository | イメージを作成する | InputStream | CreateImageResponse |
| image/build | noCache、quiet、remove、tag | stdin で Dockerfile からイメージを構築する | InputStream または File | InputStream |
| image/pull | リポジトリー、レジストリー、タグ | レジストリーからイメージをプルします。 | InputStream | |
| image/push | name | イメージをレジストリーにプッシュします。 | InputStream | |
| image/search | 用語 | イメージの検索 | List<SearchItem> | |
| image/remove | imageId | イメージの削除 | ||
| image/tag | imageID、repository、tag、force | イメージをリポジトリーにタグ付けします。 | ||
| image/inspect | imageId | イメージの検証 | InspectImageResponse |
| コンテナー操作 | オプション | 説明 | 本文の内容 | 戻り値 |
|---|---|---|---|---|
| container/list | showSize、showAll、before、since、limit、List コンテナー | initialRange | List<Container> | |
| container/create | imageID、name、exposeedPorts、workDir、disableNetwork、hostname、user、tty、stdInOpen、stdInOnce、memoryLimit、memorySwap、cpuShares、attachStdIn、attachStdOut、attachStdErr、env、cmd、dns、image、volumesFrom | コンテナーを作成します。 | CreateContainerResponse | |
| container/start |
containerId, bind, links, lxcConf, portBindings, privileged, publishAllPorts, dns, dnsSearch, volumesFrom, networkMode, devices, restartPolicy, capAdd, capDrop
|
コンテナーの起動 | ||
| container/inspect | containerId | コンテナーの検査 | InspectContainerResponse | |
| container/wait | containerId | コンテナーの待機 | 整数 | |
| container/log | containerId, stdOut, stdErr, timestamps, followStream, tailAll, tail | コンテナーログの取得 | InputStream | |
| container/attach | containerId、stdOut、stdErr、タイムスタンプ、logs、followStream | コンテナーへの割り当て | InputStream | |
| container/stop | containerId, timeout | コンテナーの停止 | ||
| container/restart | containerId, timeout | コンテナーの再起動 | ||
| container/diff | containerId | コンテナーの変更の検証 | ChangeLog | |
| container/kill | containerId、signal | コンテナーの強制終了 | ||
| container/top | containerId, psArgs | コンテナーで実行しているプロセスを一覧表示します。 | TopContainerResponse | |
| container/pause | containerId | コンテナーの一時停止 | ||
| container/unpause | containerId | コンテナーの一時停止解除 | ||
| container/commit | containerId, repository, message, tag, attachStdIn, attachStdOut, attachStdErr, cmd, disableNetwork, pause, env, exposedPorts, hostname, memory, memorySwap, openStdIn, portSpecs, stdInOnce, tty, user, volumes, hostname | コンテナーの変更から新規イメージを作成します。 | 文字列 | |
| container/copyfile | containerId, resource, hostPath | コンテナーからファイルまたはフォルダーをコピーする | InputStream | |
| container/remove | containerId、force、removeVolumes | コンテナーの削除 |
例 リンクのコピーリンクがクリップボードにコピーされました!
from("docker://events?host=192.168.59.103&port=2375").to("log:event");
from("docker://events?host=192.168.59.103&port=2375").to("log:event");
from("docker://info?host=192.168.59.103&port=2375").to("log:info");
from("docker://info?host=192.168.59.103&port=2375").to("log:info");
第39章 Dozer リンクのコピーリンクがクリップボードにコピーされました!
Dozer コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
- コンバーターレジストリーを介して、エンドポイントごとに Dozer マッピング設定とグローバル設定を管理する機能。
- Dozer エンドポイントは、Camel データ形式を使用して入出力データをマーシャリングまたはアンマーシャリングし、単一の任意の変換エンドポイントをサポートするように設定できます。
- Dozer コンポーネントでは、Dozer のより詳細な統合と拡張を追加機能(たとえば、リテラル値のマッピング、マッピングの式の使用など)することができます。
pom.xml に追加する必要があります。
Camel on EAP デプロイメント リンクのコピーリンクがクリップボードにコピーされました!
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
dozer:endpointId[?options]
dozer:endpointId[?options]
from("direct:orderInput").
to("dozer:transformOrder?mappingFile=orderMapping.xml&targetModel=example.XYZOrder").
to("direct:orderOutput");
from("direct:orderInput").
to("dozer:transformOrder?mappingFile=orderMapping.xml&targetModel=example.XYZOrder").
to("direct:orderOutput");
オプション リンクのコピーリンクがクリップボードにコピーされました!
|
名前
|
デフォルト
|
説明
|
|---|---|---|
mappingFile
|
dozerBeanMapping.xml
|
Dozer 設定ファイルの場所。デフォルトでは、ファイルはクラスパスから読み込まれますが、
file:、classpath:、または http: を使用して、特定の場所から設定を読み込むことができます。
|
unmarshalId
|
none
|
Java 以外のタイプからマッピング入力をアンマーシャリングするために使用する Camel Context 内で定義された dataFormat の ID。 |
marshalId
|
none
|
マッピング出力を Java 以外のタイプにマーシャリングするために使用する Camel Context 内で定義された dataFormat の ID。 |
sourceModel
|
none
|
マッピングで使用されるソースタイプの完全修飾クラス名。これが指定されている場合、マッピングへの入力は、Dozer でマッピングされる前に指定された型に変換されます。 |
targetModel
|
none
|
マッピングで使用されるターゲットタイプの完全修飾クラス名。このオプションは必須です。 |
mappingConfiguration
|
none | Dozer マッピングの設定に使用する Camel レジストリーの DozerBeanMapperConfiguration Bean の名前。これは、Dzer の設定方法を詳細に制御するために使用可能な mappingFile オプションの代替手段です。値に "#" 接頭辞を使用して、Bean が Camel レジストリーにあることを示します(例:#myDozerConfig)。 |
Dozer でのデータフォーマットの使用 リンクのコピーリンクがクリップボードにコピーされました!
<dataFormats> <json library="Jackson" id="myjson"/> <jaxb contextPath="org.example" id="myjaxb"/> </dataFormats>
<dataFormats>
<json library="Jackson" id="myjson"/>
<jaxb contextPath="org.example" id="myjaxb"/>
</dataFormats>
<endpoint uri="dozer:xml2json?marshalId=myjson&unmarshalId=myjaxb&targetModel=org.example.Order"/>
<endpoint uri="dozer:xml2json?marshalId=myjson&unmarshalId=myjaxb&targetModel=org.example.Order"/>
Dozer の設定 リンクのコピーリンクがクリップボードにコピーされました!
org.apache.camel.converter.dozer.DozerBeanMapperConfiguration のインスタンスを使用できます。
マッピング拡張機能 リンクのコピーリンクがクリップボードにコピーされました!
変数マッピング リンクのコピーリンクがクリップボードにコピーされました!
カスタムマッピング リンクのコピーリンクがクリップボードにコピーされました!
- カスタムマッピングを持つ単一のクラスに複数のコンバーターメソッドを設定できます。
- カスタムマッピングを使用して Dozer 固有のインターフェイスを実装する必要はありません。
[class-name][,method-name]
[class-name][,method-name]
式マッピング リンクのコピーリンクがクリップボードにコピーされました!
[language]:[expression]
[language]:[expression]
Dozer 型変換 リンクのコピーリンクがクリップボードにコピーされました!
第40章 Dropbox リンクのコピーリンクがクリップボードにコピーされました!
Camel Dropbox コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
- コンシューマーとして、ファイルをダウンロードし、クエリーでファイルを検索します。
- プロデューサーとしてファイルのダウンロード、リモートディレクトリー間でのファイルの移動、ファイル/ディレクトリーの削除、ファイルのアップロード、クエリーによるファイルの検索
pom.xml に追加する必要があります。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
dropbox://[operation]?[options]
dropbox://[operation]?[options]
操作 リンクのコピーリンクがクリップボードにコピーされました!
|
操作
|
説明
|
|---|---|
del
|
Dropbox のファイルまたはディレクトリーを削除します。
|
get
|
Dropbox からファイルをダウンロードする
|
move
|
Dropbox のフォルダーからファイルの移動
|
put
|
Dropbox でのファイルのアップロード
|
search
|
文字列クエリーに基づいて Dropbox でファイルを検索する
|
オプション リンクのコピーリンクがクリップボードにコピーされました!
|
プロパティー
|
Mandatory
|
説明
|
|---|---|---|
accessToken
|
true
|
特定の Dropbox ユーザーの API リクエストを行うためのアクセストークン
|
clientIdentifier
|
true
|
API リクエストを行うために登録されたアプリケーションの名前
|
del 操作 リンクのコピーリンクがクリップボードにコピーされました!
|
プロパティー
|
Mandatory
|
説明
|
|---|---|---|
remotePath
|
true
|
Dropbox で削除するフォルダーまたはファイル
|
サンプル リンクのコピーリンクがクリップボードにコピーされました!
結果メッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
|
プロパティー
|
値
|
|---|---|
DELETED_PATH
|
ドロップボックスで削除されたパスの名前
|
結果メッセージのボディー リンクのコピーリンクがクリップボードにコピーされました!
|
オブジェクトタイプ
|
説明
|
|---|---|
String
|
ドロップボックスで削除されたパスの名前
|
get (download)操作 リンクのコピーリンクがクリップボードにコピーされました!
|
プロパティー
|
Mandatory
|
説明
|
|---|---|---|
remotePath
|
true
|
Dropbox からダウンロードするフォルダーまたはファイル
|
サンプル リンクのコピーリンクがクリップボードにコピーされました!
結果メッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
|
プロパティー
|
値
|
|---|---|
DOWNLOADED_FILE
|
1 つのファイルのダウンロードの場合、ダウンロードしたリモートファイルのパス
|
DOWNLOADED_FILES
|
ファイルが複数ダウンロードされている場合は、ダウンロードしたリモートファイルのパス
|
結果メッセージのボディー リンクのコピーリンクがクリップボードにコピーされました!
|
オブジェクトタイプ
|
説明
|
|---|---|
ByteArrayOutputStream
|
単一ファイルのダウンロードの場合、ダウンロードしたファイルを表すストリーム。
|
Map<String, ByteArrayOutputStream>
|
複数のファイルをダウンロードすると、がキーとして指定されたリモートファイルのパスと、ダウンロードしたファイルを表すストリームが値として、マップがダウンロードされます。
|
移動操作 リンクのコピーリンクがクリップボードにコピーされました!
|
プロパティー
|
Mandatory
|
説明
|
|---|---|---|
remotePath
|
true
|
移動する元のファイルまたはディレクトリー
|
newRemotePath
|
true
|
宛先ファイルまたはフォルダー
|
サンプル リンクのコピーリンクがクリップボードにコピーされました!
結果メッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
|
プロパティー
|
値
|
|---|---|
MOVED_PATH
|
ドロップボックスで移動したパスの名前
|
結果メッセージのボディー リンクのコピーリンクがクリップボードにコピーされました!
|
オブジェクトタイプ
|
説明
|
|---|---|
String
|
ドロップボックスで移動したパスの名前
|
put (upload)操作 リンクのコピーリンクがクリップボードにコピーされました!
|
プロパティー
|
Mandatory
|
説明
|
|---|---|---|
uploadMode
|
true
|
このオプションを追加または強制すると、ドロップボックスにファイルを保存する方法を指定します。add の場合、同じ名前のファイルがすでにドロップボックスに存在する場合、新しいファイルの名前が変更されます。同じ名前のファイルがすでに存在する場合は、これは上書きされます。
|
localPath
|
true
|
ローカルファイルシステム から Dropbox にアップロードするフォルダーまたはファイル。
|
remotePath
|
false
|
Dropbox のフォルダー宛先。プロパティーが設定されていない場合、コンポーネントはローカルパスと同等のリモートパス上のファイルをアップロードします。
|
サンプル リンクのコピーリンクがクリップボードにコピーされました!
結果メッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
|
プロパティー
|
値
|
|---|---|
UPLOADED_FILE
|
単一ファイルのアップロードの場合は、アップロードされたリモートパスのパス。
|
UPLOADED_FILES
|
複数のファイルのアップロードの場合は、リモートパスと共に文字列がアップロードされます。
|
結果メッセージのボディー リンクのコピーリンクがクリップボードにコピーされました!
|
オブジェクトタイプ
|
説明
|
|---|---|
String
|
単一ファイルのアップロードの場合は、アップロード操作の結果、OK、または KO
|
Map<String, DropboxResultCode>
|
複数のファイルのアップロードの場合、がリモートファイルのパスとしてアップロードされるマップ。アップロード操作の結果、OK または KO の値
|
検索操作 リンクのコピーリンクがクリップボードにコピーされました!
|
プロパティー
|
Mandatory
|
説明
|
|---|---|---|
remotePath
|
true
|
検索先の Dropbox のフォルダー。
|
query
|
false
|
検索するサブ文字列のスペース区切りリスト。ファイルは、すべてのサブ文字列が含まれる場合にのみ一致します。このオプションが設定されていない場合、すべてのファイルが一致します。
|
サンプル リンクのコピーリンクがクリップボードにコピーされました!
結果メッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
|
プロパティー
|
値
|
|---|---|
FOUNDED_FILES
|
検出されたファイルパスの一覧
|
結果メッセージのボディー リンクのコピーリンクがクリップボードにコピーされました!
|
オブジェクトタイプ
|
説明
|
|---|---|
List<DbxEntry>
|
検出されたファイルパスの一覧。このオブジェクトの詳細は、Dropbox のドキュメント http://dropbox.github.io/dropbox-sdk-java/api-docs/v1.7.x/com/dropbox/core/DbxEntry.htmlを参照してください。
|
第41章 EJB リンクのコピーリンクがクリップボードにコピーされました!
EJB Component リンクのコピーリンクがクリップボードにコピーされました!
Camel on EAP デプロイメント リンクのコピーリンクがクリップボードにコピーされました!
第42章 etcd リンクのコピーリンクがクリップボードにコピーされました!
etcd コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
pom.xml に追加する必要があります。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
etcd:namespace[/path][?options]
etcd:namespace[/path][?options]
keyswatchstats
オプション リンクのコピーリンクがクリップボードにコピーされました!
|
名前
|
デフォルト値
|
説明
|
|---|---|---|
uris
|
コンポーネントが接続する必要のある URI を定義します。
|
|
sslContextParameters
|
null
|
カスタム org.apache.camel.util.jsse.SSLContextParameters を使用するには、を使用します。JSSE 設定ユーティリティーの使用 を参照してください。
|
userName
|
null
|
Basic 認証に使用するユーザー名 |
password
|
null
|
Basic 認証に使用するパスワード |
sendEmptyExchangeOnTimeout
|
false
|
キーを監視するタイムアウトが発生した場合に空のメッセージを送信する(コンシューマーのみ) |
recursive
|
false
|
アクションを再帰的に適用する |
timeToLive
|
null
|
キーのライフサイクルをミリ秒単位で設定します。 |
timeout
|
null
|
アクションが完了するまでにかかる最大時間を設定します。 |
Headers リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | タイプ | 説明 |
|---|---|---|
CamelEtcdAction
|
java.lang.String
|
実行するアクション。サポートされる値は set、delete、deleteDir、get です。 |
CamelEtcdNamespace
|
java.lang.String
|
エクスチェンジが生成/処理された etcd コンテキスト
|
CamelEtcdPath
|
java.lang.String
|
キー namespace の場合、これは URI エンドポイントからのパスが使用される場合に、アクションの対象となるノードを判別するために使用されます。統計および監視名前空間の場合、処理されたノード beign のパスを含む
|
CamelEtcdTimeout
|
java.lang.Long
|
アクションが完了するまでにかかる最大時間を設定します。存在しない場合は、timeout オプションが考慮されます。
|
CamelEtcdTtl
|
java.lang.Integer
|
キーのライフサイクルをミリ秒単位で設定します。存在しない場合は、timeToLive オプションが考慮されます。
|
CamelEtcdRecursive
|
java.lang.Boolean
|
アクションを再帰的に適用するには、以下を行います。存在しない場合は、recursive オプションが考慮されます。
|
キー namespace の例: リンクのコピーリンクがクリップボードにコピーされました!
統計 namespace の例: リンクのコピーリンクがクリップボードにコピーされました!
namespace の例を監視します。 リンクのコピーリンクがクリップボードにコピーされました!
第43章 ElasticSearch リンクのコピーリンクがクリップボードにコピーされました!
Elasticsearch コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
pom.xml に以下の依存関係を追加する必要があります。
Camel on EAP デプロイメント リンクのコピーリンクがクリップボードにコピーされました!
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
elasticsearch://clusterName?[options]
elasticsearch://clusterName?[options]
local に設定します。詳細は、クライアントガイド を参照してください。
エンドポイントオプション リンクのコピーリンクがクリップボードにコピーされました!
| name | description |
|---|---|
operation
|
必須。実行する操作を示します。 |
indexName
|
動作させるインデックスの名前。
|
indexType
|
動作させるインデックスのタイプ。
|
ip
|
Camel 2.12 を使用する TransportClient リモートホスト IP アドレス。
|
port
|
使用する TransportClient リモートポート(デフォルトは 9300) Camel 2.12。
|
transportAddresses
|
Camel 2.16: 使用するリモートトランスポートアドレス
ip:port 形式のコンマ区切りリスト。transportAddresses を代わりに考慮するには、オプション ip および port を空白のままにする必要があります。
|
consistencyLevel
|
Camel 2.16: INDEX および BULK 操作で使用する書き込み一貫性レベル(
ONE、QUORUM、ALL または DEFAULTのいずれかです)。
|
replicationType
|
Camel 2.16: INDEX および BULK 操作で使用するレプリケーションタイプ(
SYNC、ASYNC または DEFAULTのいずれかです)。Elasticsearch 2.0.0 から非同期レプリケーションが削除されているため、Camel 2.17: replicationType オプションは削除されました。
|
parent
|
Camel 2.16.1 / 2.17.0: 親レコードの ID を指定するために Elasticsearch Parent-Child 関係の INDEX 操作で使用されるオプションです。
|
clientTransportSniff
|
Camel 2.17: クライアントが残りのクラスターをスニッフィングできるかどうかを指定します。
|
メッセージ操作 リンクのコピーリンクがクリップボードにコピーされました!
operation のキーでエンドポイント URI オプションまたはエクスチェンジヘッダーを設定し、値は以下のいずれかに設定されるだけです。一部の操作では、他のパラメーターやメッセージボディーも設定する必要があります。
| operation | メッセージボディー | description |
|---|---|---|
INDEX
|
Map、String、または byte[] コンテンツでインデックス化するコンテンツ XContentBuilder
|
インデックスにコンテンツを追加し、本文でコンテンツの indexId を返します。
|
GET_BY_ID
|
取得するコンテンツのインデックス ID |
指定されたインデックスを取得し、ボディーで GetResult オブジェクトを返します。
|
DELETE
|
削除するコンテンツのインデックス ID |
指定された indexId を削除し、ボディーで DeleteResult オブジェクトを返します。
|
BULK_INDEX
|
すでに受け入れられたタイプの リスト または コレクション (
XContentBuilder、Map、byte[]、または String)
|
Camel 2.14 は、 コンテンツをインデックスに追加し、ボディーで正常にインデックス化されたドキュメントの ID の List を返します。
|
BULK
|
すでに受け入れられたタイプの リスト または コレクション (
XContentBuilder、Map、byte[]、または String)
|
Camel 2.15 では、 コンテンツをインデックスに追加し、ボディーで BulkResponse オブジェクトを返します。
|
SEARCH
|
Map または、 SearchRequest
|
Camel 2.15: クエリー文字列のマップでコンテンツを検索します。
|
MULTIGET
|
一覧 MultigetRequest.Item
|
Camel 2.17:
MultigetRequest で指定したインデックスやタイプなどを取得し、ボディーで MultigetResponse オブジェクトを返します。
|
MULTISEARCH
|
一覧 SearchRequest
|
Camel 2.17:
MultiSearchRequest に指定されたパラメーターを検索し、ボディーで MultiSearchResponse オブジェクトを返します。
|
EXISTS
|
ヘッダーとしてのインデックス名
|
Camel 2.17: ボディー内のブール値オブジェクトを返します。
|
UPDATE
|
Map更新するコンテンツ、String、または byte[] XContentBuilder
|
Camel 2.17: コンテンツをインデックスに更新し、ボディーでコンテンツの
indexId を返します。
|
インデックスの例 リンクのコピーリンクがクリップボードにコピーされました!
from("direct:index")
.to("elasticsearch://local?operation=INDEX&indexName=twitter&indexType=tweet");
from("direct:index")
.to("elasticsearch://local?operation=INDEX&indexName=twitter&indexType=tweet");
<route>
<from uri="direct:index" />
<to uri="elasticsearch://local?operation=INDEX&indexName=twitter&indexType=tweet"/>
</route>
<route>
<from uri="direct:index" />
<to uri="elasticsearch://local?operation=INDEX&indexName=twitter&indexType=tweet"/>
</route>
Map<String, String> map = new HashMap<String, String>();
map.put("content", "test");
String indexId = template.requestBody("direct:index", map, String.class);
Map<String, String> map = new HashMap<String, String>();
map.put("content", "test");
String indexId = template.requestBody("direct:index", map, String.class);
Java の例 リンクのコピーリンクがクリップボードにコピーされました!
詳細は、これらのリソース を参照してください。 リンクのコピーリンクがクリップボードにコピーされました!
第44章 ElSql リンクのコピーリンクがクリップボードにコピーされました!
ElSql コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
spring-jdbc を背後で使用します。
pom.xml に追加する必要があります。
elsql:elSqlName:resourceUri[?options]
elsql:elSqlName:resourceUri[?options]
?option=value&option=value&...
java.util.Map
オプション リンクのコピーリンクがクリップボードにコピーされました!
|
オプション
|
型
|
デフォルト
|
説明
|
|---|---|---|---|
resourceUri
|
文字列 | null | 必須: 使用する elsql SQL ステートメントが含まれるリソースファイル。複数のリソースはコンマで区切って指定できます。リソースはデフォルトでクラスパスにロードされ、file: の接頭辞を指定してファイルシステムからロードすることができます。このオプションはコンポーネントで設定してから、エンドポイントで設定する必要がないことに注意してください。 |
elSqlConfig
|
null | 特定の設定された ElSqlConfig を使用します。代わりに databaseVendor オプションを使用することが推奨されます。 | |
databaseVendor
|
デフォルト | ベンダー固有の ElSqlConfig を使用するには、以下を実行します。使用できる値は、デフォルト、Postgres、HSql、MySql、Oracle、SqlServer 2008、Veritca です。 | |
batch
|
boolean
|
false
|
SQL バッチ更新ステートメントを実行します。
true に設定されている場合は、インバウンドメッセージのボディーがどのように変化するかについての以下の注記を参照してください。
|
dataSource
|
String
|
null
|
レジストリーで検索するための
DataSource への参照。
|
template.<xxx>
|
|
null
|
クエリーを実行するために背後で使用される Spring NamedParameterJdbcTemplate に追加のオプションを設定します。たとえば、
template.maxRows=10 です。詳細なドキュメントは、NamedParameterJdbcTemplate javadoc のドキュメント を参照してください。
|
consumer.delay
|
long
|
500
|
各ポーリングの遅延(ミリ秒単位)。
|
consumer.initialDelay
|
long
|
1000
|
ポーリングが開始するまでの時間(ミリ秒単位)。
|
consumer.useFixedDelay
|
boolean
|
false
|
ポーリング間の固定遅延を使用するには、
true に設定します。それ以外の場合は、固定レートが使用されます。詳細は、JDK の ScheduledExecutorService を参照してください。
|
maxMessagesPerPoll
|
int
|
0
|
ポーリングごとに収集するメッセージの最大数を定義する整数値。デフォルトでは最大値は設定されていません。
|
consumer.useIterator
|
boolean
|
true
|
true ポーリングが個別に処理されるときに返された各行の場合。false の場合、データ java.util.List 全体が IN ボディーとして設定されます。
|
consumer.routeEmptyResultSet
|
boolean
|
false
|
ポーリングするデータがない場合に、単一の空のエクスチェンジをルーティングするかどうか。
|
consumer.onConsume
|
String
|
null
|
各行を処理した後、このクエリーを実行できます。エクスチェンジが正常に処理された場合、たとえば、行を processed とマークします。クエリーには パラメーターを指定できます。
|
consumer.onConsumeFailed
|
String
|
null
|
各行を処理した後、このクエリーを実行できます。エクスチェンジが失敗した場合、たとえば行が失敗したとマークされます。クエリーには パラメーターを指定できます。
|
consumer.onConsumeBatchComplete
|
String
|
null
|
バッチ全体の処理後、このクエリーを実行して行を一括更新することができます。クエリーにはパラメーターを指定できません。
|
consumer.breakBatchOnConsumeFail
|
boolean
|
false
|
consumer.onConsume を使用して失敗すると、このオプションはバッチを分割するか、バッチからの次の行の処理を継続するかどうかを制御します。
|
outputType
|
String
|
SelectList
|
コンシューマーまたはプロデューサーの出力を Map of Map として
SelectList にするか、以下のように単一の Java オブジェクトとして SelectOne を作成します。1)クエリーに列が 1 つしかない場合は、その JDBC Column オブジェクトが返されます。( SELECT COUNT( * ) FROM PROJECT など) Long オブジェクトが返されます。クエリーに複数の列がある場合は、その結果の Map を返します。c) outputClass が設定されている場合は、その結果の Map を返します。 次に、列名に一致するすべてのセッターを呼び出して、クエリー結果を Java Bean オブジェクトに変換します。クラスにインスタンスを作成するデフォルトのコンストラクターがあるとします。d)クエリーによって複数の行が発生した場合は、一意でない結果例外が出力されます。
また、SelectList は SelectOne として各行を Java オブジェクトにマッピングしています(ステップ c のみ)。
|
outputClass
|
String
|
null
|
outputType=SelectOne の場合に変換として使用する完全なパッケージおよびクラス名を指定します。
|
outputHeader
|
String
|
null
|
メッセージボディーではなくヘッダーとして結果を保存するには、以下を行います。これにより、既存のメッセージボディーをそのまま保存できます。
|
noop
|
boolean
|
false
|
これが設定されている場合、は SQL クエリーの結果を無視し、処理を継続するために OUT メッセージとして既存の IN メッセージを使用します。
|
transacted
|
boolean
|
false
|
Camel 2.16.2: SQL コンシューマーのみ:トランザクションを有効または無効にします。有効にすると、エクスチェンジの処理が失敗した場合、コンシューマーは追加のエクスチェンジを処理しなくなり、ロールバックの Eager が発生します。 |
クエリーの結果 リンクのコピーリンクがクリップボードにコピーされました!
select 操作の場合、結果は JdbcTemplate.queryForList ()メソッドによって返される List<Map<String, Object>> タイプのインスタンスになります。update 操作では、結果は更新行数で、Integer として返されます。
ヘッダーの値 リンクのコピーリンクがクリップボードにコピーされました!
update 操作の実行時に、SQL コンポーネントは以下のメッセージヘッダーに更新数を保存します。
|
ヘッダー
|
説明
|
|---|---|
CamelSqlUpdateCount
|
Integer オブジェクトとして返される update 操作で更新される行数。
|
CamelSqlRowCount
|
Integer オブジェクトとして返される select 操作に対して返される行数。
|
例 リンクのコピーリンクがクリップボードにコピーされました!
from("direct:projects")
.setHeader("lic", constant("ASF"))
.setHeader("min", constant(123))
.to("elsql:projects:com/foo/orders.elsql")
from("direct:projects")
.setHeader("lic", constant("ASF"))
.setHeader("min", constant(123))
.to("elsql:projects:com/foo/orders.elsql")
@NAME(projects) SELECT * FROM projects WHERE license = :lic AND id > :min ORDER BY id
@NAME(projects)
SELECT *
FROM projects
WHERE license = :lic AND id > :min
ORDER BY id
java.util.Map の場合、名前付きパラメーターはボディーから取得されます。
from("direct:projects")
.to("elsql:projects:com/foo/orders.elsql")
from("direct:projects")
.to("elsql:projects:com/foo/orders.elsql")
getLicense および getMinimum メソッドがあることを前提としています。
@NAME(projects)
SELECT *
FROM projects
WHERE license = :${body.license} AND id > :${body.minimum}
ORDER BY id
@NAME(projects)
SELECT *
FROM projects
WHERE license = :${body.license} AND id > :${body.minimum}
ORDER BY id
その他の参考資料 リンクのコピーリンクがクリップボードにコピーされました!
- SQL Component
- MyBatis
- JDBC
第45章 EventAdmin リンクのコピーリンクがクリップボードにコピーされました!
eventadmin コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
eventadmin コンポーネントは OSGi 環境で使用することで、OSGi EventAdmin イベントを受信して処理できます。
Dependencies リンクのコピーリンクがクリップボードにコピーされました!
pom.xml に追加する必要があります。
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-eventadmin</artifactId>
<version>${camel-version}</version>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-eventadmin</artifactId>
<version>${camel-version}</version>
</dependency>
${camel-version} は、実際のバージョンの Camel (2.6.0 以降)に置き換える必要があります。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
eventadmin:topic[?options]
eventadmin:topic[?options]
topic はリッスンするトピックの名前です。
URI オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | デフォルト値 | 説明 |
|---|---|---|
send
|
false
|
send または synchronous 配信を使用するかどうか。デフォルト false (非同期配信) |
メッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | タイプ | メッセージ | 説明 |
|---|
メッセージボディー リンクのコピーリンクがクリップボードにコピーされました!
in メッセージボディーは受信した Event に設定されます。
使用例 リンクのコピーリンクがクリップボードにコピーされました!
<route>
<from uri="eventadmin:*"/>
<to uri="stream:out"/>
</route>
<route>
<from uri="eventadmin:*"/>
<to uri="stream:out"/>
</route>
第46章 exec リンクのコピーリンクがクリップボードにコピーされました!
exec コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
exec コンポーネントは、システムコマンドを実行するために使用できます。
Dependencies リンクのコピーリンクがクリップボードにコピーされました!
pom.xml に追加する必要があります。
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-exec</artifactId>
<version>${camel-version}</version>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-exec</artifactId>
<version>${camel-version}</version>
</dependency>
${camel-version} は、実際のバージョンの Apache Camel (2.3.0 以降)に置き換える必要があります。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
exec://executable[?options]
exec://executable[?options]
executable は、実行されるシステムコマンドの名前またはファイルパスです。実行可能ファイル名を使用する場合(例: exec:java)、実行ファイルはシステムパスになければなりません。
URI オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | デフォルト値 | 説明 |
|---|---|---|
args
|
null
|
実行可能ファイルの引数。引数は、
" で引用できる 1 つまたは複数のスペース区切りトークンにすることができます。たとえば、args="arg 1" arg2 は 2 つの引数 arg 1 と arg2 を使用します。引用符を含めるには、"" を使用します。例: args=""arg 1"" arg2 は引数 "arg 1" および arg2 を使用します。
|
workingDir
|
null
|
コマンドを実行するディレクトリー。null の場合、現在のプロセスの作業ディレクトリーが使用されます。
|
timeout
|
Long.MAX_VALUE
|
実行可能ファイルを終了するまでの時間(ミリ秒単位)。タイムアウト内に実行が終了していない場合、コンポーネントは終了リクエストを送信します。 |
outFile
|
null
|
実行ファイルによって作成されたファイルの名前。出力と見なす必要があります。outFile が設定されていない場合、実行可能ファイルの標準出力(stdout)は出力とみなされます。
|
binding
|
DefaultExecBinding インスタンス
|
レジストリー の org.apache.commons.exec.ExecBinding への 参照。
|
commandExecutor
|
DefaultCommandExecutor インスタンス
|
コマンドの実行をカスタマイズする レジストリー の org.apache.commons.exec.ExecCommandExecutor への参照。デフォルトのコマンドエグゼキューターは、commons-exec ライブラリー を使用します。実行したすべてのコマンドにシャットダウンフックを追加します。
|
useStderrOnEmptyStdout
|
false
|
stdout が空の場合、このコンポーネントは Camel Message Body に stderr が設定されることを示すブール値。この動作は、デフォルトでは無効になっています(false)。
|
メッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
org.apache.camel.component.exec.ExecBinding で定義されています。
| 名前 | タイプ | メッセージ | 説明 |
|---|---|---|---|
ExecBinding.EXEC_COMMAND_EXECUTABLE
|
文字列
|
in
|
実行する system コマンドの名前。URI の 実行ファイル を上書きします。
|
ExecBinding.EXEC_COMMAND_ARGS
|
java.util.List<String>
|
in
|
実行可能ファイルの引数。引数は文字通りに使用され、引用は適用されません。URI の既存 引数 を上書きします。
|
ExecBinding.EXEC_COMMAND_ARGS
|
文字列
|
in
|
Camel 2.5: 実行可能ファイルの引数は、各引数が空白文字で区切られた Single 文字列として指定されます(URI オプションの引数を参照)。引数は文字通りに使用され、引用は適用されません。URI の既存 引数 を上書きします。
|
ExecBinding.EXEC_COMMAND_OUT_FILE
|
文字列
|
in
|
実行ファイルによって作成されたファイルの名前。実行可能ファイルの出力と見なす必要があります。URI 内の既存の outFile を上書きします。
|
ExecBinding.EXEC_COMMAND_TIMEOUT
|
long
|
in
|
実行可能ファイルを終了するまでの時間(ミリ秒単位)。URI の既存の タイムアウト を上書きします。
|
ExecBinding.EXEC_COMMAND_WORKING_DIR
|
文字列
|
in
|
コマンドを実行するディレクトリー。URI 内の既存の workingDir を上書きします。
|
ExecBinding.EXEC_EXIT_VALUE
|
int
|
out
|
このヘッダーの値は、実行ファイルの 終了値 です。ゼロ以外の終了値は、通常、異常な終了を示します。終了値は OS に依存することに注意してください。 |
ExecBinding.EXEC_STDERR
|
java.io.InputStream
|
out
|
このヘッダーの値は、実行可能ファイルの標準エラーストリーム(stderr)を参照します。stderr が書き込まれていない場合、値は null になります。
|
ExecBinding.EXEC_USE_STDERR_ON_EMPTY_STDOUT
|
boolean
|
in
|
stdout が空の場合、このコンポーネントは Camel Message Body に stderr が設定されることを示します。この動作は、デフォルトでは無効になっています(false)。
|
メッセージボディー リンクのコピーリンクがクリップボードにコピーされました!
Exec コンポーネントが、java.io.InputStream に 変換できるメッセージボディーの を受信する場合、標準入力(stdin)を介して実行可能ファイルに入力を提供するために使用されます。実行後、メッセージボディー は実行の結果です。つまり、stdout、stderr、終了値、および out ファイルが含まれる org.apache.camel.components.exec.ExecResult インスタンスです。このコンポーネントは、便宜上、以下の ExecResult 型コンバーター をサポートします。
| From | 終了 |
|---|---|
ExecResult
|
java.io.InputStream
|
ExecResult
|
文字列
|
ExecResult
|
byte []
|
ExecResult
|
org.w3c.dom.Document
|
単語数(Linux)の実行 リンクのコピーリンクがクリップボードにコピーされました!
wc (単語数、Linux)を実行して /usr/share/dict/words ファイルの単語をカウントします。単語 count (出力)は、wc のスタンドアロン出力ストリームで書かれています。
Java の実行 リンクのコピーリンクがクリップボードにコピーされました!
java がシステムパスにあると、-server と -version の 2 つの引数を指定して java を実行します。
from("direct:exec")
.to("exec:java?args=-server -version")
from("direct:exec")
.to("exec:java?args=-server -version")
-server、-version、および sytem プロパティー user.name の 3 つの引数を使用して、c:/temp で java を実行します。
from("direct:exec")
.to("exec:c:/program files/jdk/bin/java?args=-server -version -Duser.name=Camel&workingDir=c:/temp")
from("direct:exec")
.to("exec:c:/program files/jdk/bin/java?args=-server -version -Duser.name=Camel&workingDir=c:/temp")
Ant スクリプトの実行 リンクのコピーリンクがクリップボードにコピーされました!
ant.bat がシステムパスにあり、CamelExecBuildFile.xml が現在のディレクトリーにあると、CamelExecBuildFile.xml ビルドファイルで Apache Ant (Windows のみ)を実行します。
from("direct:exec")
.to("exec:ant.bat?args=-f CamelExecBuildFile.xml")
from("direct:exec")
.to("exec:ant.bat?args=-f CamelExecBuildFile.xml")
ant.bat コマンドは出力を -l を使用する CamelExecOutFile.txt にリダイレクトします。CamelExecOutFile.txt ファイルは、outFile=CamelExecOutFile.txt ファイルとして使用されます。この例では、ant.bat がシステムパスにあり、CamelExecBuildFile.xml が現在のディレクトリーにあることを前提としています。
echo の実行(Windows) リンクのコピーリンクがクリップボードにコピーされました!
echo や dir などのコマンドは、オペレーティングシステムのコマンドインタープリターでのみ実行できます。この例は、Windows でこのようなコマンド echo を実行する方法を示しています。
from("direct:exec").to("exec:cmd?args=/C echo echoString")
from("direct:exec").to("exec:cmd?args=/C echo echoString")
第47章 ファブリックコンポーネント リンクのコピーリンクがクリップボードにコピーされました!
概要
Dependencies リンクのコピーリンクがクリップボードにコピーされました!
fabric-camel 機能がインストールされていることを確認する必要があります。Fabric のコンテキストでは、該当するプロファイルに追加して機能をインストールします。たとえば、my-master-profile というプロファイルを使用している場合は、以下のコンソールコマンドを入力して fabric-camel 機能を追加します。
karaf@root> fabric:profile-edit --features fabric-camel my-master-profile
karaf@root> fabric:profile-edit --features fabric-camel my-master-profile
fabric-zookeeper や fabric-commands などのプロファイルを追加してください。ただし、jetty エンドポイントを使用している場合は、camel-jetty 機能を含めます。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
fabric:ClusterID[:PublishedURI[?Options]]
fabric:ClusterID[:PublishedURI[?Options]]
fabric:ClusterID:PublishedURI[?Options]
fabric:ClusterID:PublishedURI[?Options]
PublishedURI がファブリックレジストリーに公開され、ClusterId クラスターに関連付けられます。オプション Options はコンシューマーエンドポイントインスタンスの作成時に使用されますが、オプションはファブリックレジストリーの PublishedURI で公開され ません。
fabric:ClusterID
fabric:ClusterID
ClusterId を検索し、接続する URI を検出します。
URI オプション リンクのコピーリンクがクリップボードにコピーされました!
- サーバーに のみ適用されるサーバーのみのオプション- オプションは、実行時にサーバーエンドポイント(コンシューマーエンドポイント)に適用されます。
- クライアントに のみ適用されるクライアントのみのオプション- オプションは、実行時にクライアントエンドポイント(プロデューサーエンドポイント)に適用されます。
- クライアントとサーバーに共通する一般的 なオプション- クライアントとサーバーの両方に適用されます。
ファブリックエンドポイントのユースケース リンクのコピーリンクがクリップボードにコピーされました!
- 「ロケーションの検出」 の形式にする必要があります。
- 「Load-balancing クラスター」 の形式にする必要があります。
ロケーションの検出 リンクのコピーリンクがクリップボードにコピーされました!
図47.1 Fabric によるロケーションの検出
jetty:http://0.0.0.0:9090 を公開します。このルートが起動すると、クラスター ID foo の下にある fabric レジストリーの Jetty URI が自動的に登録されます。
fabric:foo で終わるルートによって定義されます。クライアントルートが起動すると、ファブリックレジストリーで ID foo が自動的に検索され、関連付けられた Jetty エンドポイント URI が取得されるようになりました。その後、クライアントは検出された Jetty URI を使用してプロデューサーエンドポイントを作成し、対応するサーバーポートに接続します。
Load-balancing クラスター リンクのコピーリンクがクリップボードにコピーされました!
図47.2 Fabric による負荷分散
jetty:http://0.0.0.0:9090 )および jetty:http://0.0.0.0:9191 で 2 つの Jetty サーバーが作成されます。これらの公開された URI には fabric:foo: の接頭辞が付けられるため、両方の Jetty URI はファブリックレジストリーの 同じ クラスター ID foo の下に登録されます。
foo が自動的に検索されるようになりました。foo ID は複数のエンドポイント URI に関連付けられているため、ファブリックはランダム負荷分散アルゴリズムを実装し、利用可能な URI のいずれかを選択します。その後、クライアントは選択した URI を使用してプロデューサーエンドポイントを作成します。
自動再接続機能 リンクのコピーリンクがクリップボードにコピーされました!
エンドポイント URI の公開 リンクのコピーリンクがクリップボードにコピーされました!
PublishedURI を公開するには、パブリッシャー構文 FabricScheme:ClusterID:PublishedURI で fabric エンドポイントを定義します。この構文は、コンシューマーエンドポイント(つまり、from DSL コマンドに表示されるエンドポイント)でのみ使用できることに注意してください。
cluster の下のファブリックレジストリーに公開されます。ルートは、HTTP 応答の本文で定数メッセージ Response from Zookeeper agent を返す単純な HTTP サーバーです。
例47.1 URI の公開
- Fabric コンポーネントは、
CuratorFrameworkオブジェクトを使用して ZooKeeper サーバー(Fabric レジストリー)に接続します。ここで、CuratorFrameworkオブジェクトへの参照が自動的に提供されます。 fromDSL コマンドは、ファブリック URIfabric-camel:cluster:jetty:http://0.0.0.0:9090/fabricを定義します。ランタイム時に、以下の 2 つのことが発生します。- 指定された
jettyURI はクラスター IDclusterの下のファブリックレジストリーに公開されます。 - Jetty エンドポイントはアクティベートされ、ルートのコンシューマーエンドポイントとして使用されます(
fabric-camel:cluster:接頭辞なしで指定された場合のみ)。
src/main/resources/OSGI-INF/blueprint ディレクトリーに追加します。
エンドポイント URI の検索 リンクのコピーリンクがクリップボードにコピーされました!
FabricScheme:ClusterID の形式で、ID で fabric エンドポイント URI を指定するだけです。この構文は、プロデューサーエンドポイントで使用されます(例: to DSL コマンドに表示されるエンドポイント)。
cluster を検索して、実行時に HTTP エンドポイントが動的に検出される HTTP クライアントを実装するルートを示しています。
例47.2 URI の検索
src/main/resources/OSGI-INF/blueprint ディレクトリーに追加します。
負荷分散の例 リンクのコピーリンクがクリップボードにコピーされました!
例47.3 ロードバランシングクラスターのサーバーテンプレート
io.fabric8.examples.camel.loadbalancing.server 永続 ID からプロパティーにアクセスします。OSGi Config Admin サービスの永続 ID は、関連するプロパティー設定のコレクションを識別します。プロパティープレースホルダーの初期化後に、構文を使用して永続 ID から任意のプロパティー値( [[PropName]] )にアクセスできます。
[[portNumber]] の値を置き換えます。デプロイ時に、portName プロパティーの値を指定できます。たとえば、カスタム機能を使用する場合は、機能定義で プロパティーを指定できます ( Add OSGi configurations to the featureを参照してください)。または、Fuse Management Console でデプロイメントプロファイルを定義するときに設定プロパティーを指定することもできます。
OSGi バンドルプラグインの設定 リンクのコピーリンクがクリップボードにコピーされました!
Import-Package バンドルヘッダーを設定する必要があります。
io.fabric8.zookeeper
io.fabric8.zookeeper
例47.4 Maven バンドルプラグインの設定
第48章 Facebook リンクのコピーリンクがクリップボードにコピーされました!
Facebook コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-facebook</artifactId>
<version>${camel-version}</version>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-facebook</artifactId>
<version>${camel-version}</version>
</dependency>
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
facebook://[endpoint]?[options]
facebook://[endpoint]?[options]
FacebookComponent リンクのコピーリンクがクリップボードにコピーされました!
| オプション | 説明 |
|---|---|
| oAuthAppId | アプリケーション ID |
| oAuthAppSecret | アプリケーションシークレット |
| oAuthAccessToken | ユーザーアクセストークン |
| オプション | 説明 | デフォルト値 |
|---|---|---|
| oAuthAuthorizationURL | OAuth 認証 URL | https://www.facebook.com/dialog/oauth |
| oAuthPermissions | デフォルトの OAuth パーミッション。コンマ区切りのパーミッション名。詳細は、https://developers.facebook.com/docs/reference/login/#permissions を参照してください。 | null |
| oAuthAccessTokenURL | OAuth アクセストークンの URL | https://graph.facebook.com/oauth/access_token |
| debugEnabled | デバッジ出力を有効にします。組み込みロガーでのみ有効 | false |
| gzipEnabled | Facebook GZIP エンコーディングの使用 | true |
| httpConnectionTimeout | HTTP 接続のタイムアウト(ミリ秒単位) | 20000 |
| httpDefaultMaxPerRoute | ルートごとの HTTP 最大接続数 | 2 |
| httpMaxTotalConnections | HTTP 最大合計接続数 | 20 |
| httpProxyHost | HTTP プロキシーサーバーのホスト名 | null |
| httpProxyPassword | HTTP プロキシーサーバーのパスワード | null |
| httpProxyPort | HTTP プロキシーサーバーポート | null |
| httpProxyUser | HTTP プロキシーサーバーのユーザー名 | null |
| httpReadTimeout | HTTP の読み取りタイムアウト(ミリ秒単位) | 120000 |
| httpRetryCount | HTTP の再試行回数 | 0 |
| httpRetryIntervalSeconds | HTTP 再試行の間隔(秒単位) | 5 |
| httpStreamingReadTimeout | HTTP ストリーミングの読み取りタイムアウト(ミリ秒単位) | 40000 |
| jsonStoreEnabled | true に設定すると、生の JSON フォームは DataObjectFactory に保存されます。 | false |
| mbeanEnabled | true に設定すると、Facebook4J mbean が登録されます。 | false |
| prettyDebugEnabled | true に設定されている場合に JSON デバッグ出力を事前送信 | false |
| restBaseURL | API ベース URL | https://graph.facebook.com/ |
| useSSL | SSL の使用 | true |
| videoBaseURL | ビデオ API ベース URL | https://graph-video.facebook.com/ |
| clientURL | Facebook4J API クライアント URL | http://facebook4j.org/en/facebook4j-<version>xml |
| clientVersion | Facebook4J クライアント API バージョン | 1.1.12 |
プロデューサーエンドポイント: リンクのコピーリンクがクリップボードにコピーされました!
from("direct:test").to("facebook://activities?inBody=userId")...
from("direct:test").to("facebook://activities?inBody=userId")...
| エンドポイント | ショートネーム | オプション | ボディタイプ |
| アカウント | |||
| getAccounts | アカウント | [reading],[userId] | facebook4j.ResponseList<facebook4j.Account> |
| アクティビティー | |||
| getActivities | アクティビティー | [reading],[userId] | facebook4j.ResponseList<facebook4j.Activity> |
| Albums | |||
| addAlbumPhoto | addAlbumPhoto | albumId,source,[message] | 文字列 |
| commentAlbum | commentAlbum | albumId,message | 文字列 |
| createAlbum | createAlbum | albumCreate,[userId] | 文字列 |
| getAlbum | album | albumId,[reading] | facebook.Album |
| getAlbumComments | albumComments | albumId,[reading] | facebook4j.ResponseList<facebook4j.Comment> |
| getAlbumCoverPhoto | albumCoverPhoto | albumId | java.net.URL |
| getAlbumLikes | albumLikes | albumId,[reading] | facebook4j.ResponseList<facebook4j.Like> |
| getAlbumPhotos | albumPhotos | albumId,[reading] | facebook4j.ResponseList<facebook4j.Photos> |
| getAlbums | albums | [reading],[userId] | facebook4j.ResponseList<facebook4j.Album> |
| コメント | |||
| deleteComment | deleteComment | commentId | boolean |
| getComment | comment | commentId | facebook4j.Comment |
| getCommentLikes | commentLikes | commentId,[reading] | facebook4j.ResponseList<facebook4j.Like> |
| イベント | |||
| getEvent | event | eventId,[reading] | facebook4j.Event |
| getEventPhotos | eventPhotos | eventId,[reading] | facebook4j.ResponseList<facebook4j.Photo> |
| getEventPictureURL | eventPictureURL | eventId,[size] | java.net.URL |
| getEvents | events | [reading],[userId] | facebook4j.ResponseList<facebook4j.Event> |
| getEventVideos | eventVideos | eventId,[reading] | facebook4j.ResponseList<facebook4j.Video> |
| getRSVPStatusAsNoreply | rSVPStatusAsNoreply | eventId,[userId] | facebook4j.ResponseList<facebook4j.RSVPStatus> |
| getRSVPStatusInAttending | rSVPStatusInAttending | eventId,[userId] | facebook4j.ResponseList<facebook4j.RSVPStatus> |
| getRSVPStatusInDeclined | rSVPStatusInDeclined | eventId,[userId] | facebook4j.ResponseList<facebook4j.RSVPStatus> |
| getRSVPStatusInMaybe | rSVPStatusInMaybe | eventId,[userId] | facebook4j.ResponseList<facebook4j.RSVPStatus> |
| postEventFeed | postEventFeed | eventId,postUpdate | 文字列 |
| postEventLink | postEventLink | eventId,link,[message] | 文字列 |
| postEventPhoto | postEventPhoto | eventId,source,[message] | 文字列 |
| postEventStatusMessage | postEventStatusMessage | eventId,message | 文字列 |
| postEventVideo | postEventVideo | eventId,source,[title,description] | 文字列 |
| rsvpEventAsAttending | rsvpEventAsAttending | eventId | boolean |
| rsvpEventAsDeclined | rsvpEventAsDeclined | eventId | boolean |
| rsvpEventAsMaybe | rsvpEventAsMaybe | eventId | boolean |
| ファミリー | |||
| getFamily | family | [reading],[userId] | facebook4j.ResponseList<facebook4j.Family> |
| お気に入り | |||
| getBooks | 書籍 | [reading],[userId] | facebook4j.ResponseList<facebook4j.Book> |
| getGames | games | [reading],[userId] | facebook4j.ResponseList<facebook4j.Game> |
| getMovies | videos | [reading],[userId] | facebook4j.ResponseList<facebook4j.Movie> |
| getMusic | music | [reading],[userId] | facebook4j.ResponseList<facebook4j.Music> |
| getTelevision | television | [reading],[userId] | facebook4j.ResponseList<facebook4j.Television> |
| FQL (Facebook Query Language) | |||
| executeFQL | executeFQL | query,[locale] | facebook4j.internal.org.json.JSONArray |
| executeMultiFQL | executeMultiFQL | queries,[locale] | java.util.Map<tring,facebook4j.internal.org.json.JSONArray> |
| friends | |||
| addFriendlistMember | addFriendlistMember | friendlistId,userId | boolean |
| createFriendlist | createFriendlist | friendlistName,[userId] | 文字列 |
| deleteFriendlist | deleteFriendlist | friendlistId | boolean |
| getBelongsFriend | belongsFriend | friendId,[reading],[userId] | facebook4j.ResponseList<facebook4j.Friend> |
| getFriendlist | friendlist | friendlistId,[reading] | facebook4j.FriendList |
| getFriendlistMembers | friendlistMembers | friendlistId | facebook4j.ResponseList<facebook4j.Friend> |
| getFriendlists | friendlists | [reading],[userId] | facebook4j.ResponseList<facebook4j.FriendList> |
| getFriends | friends | [reading],[userId] | facebook4j.ResponseList<facebook4j.Friend> |
| removeFriendlistMember | removeFriendlistMember | friendlistId,userId | boolean |
| games | |||
| deleteAchievement | deleteAchievement | achievementURL,[userId] | boolean |
| deleteScore | deleteScore | [userId] | boolean |
| getAchievements | 達成度 | [reading],[userId] | facebook4j.ResponseList<facebook4j.Achievement> |
| getScores | スコア | [reading],[userId] | facebook4j.ResponseList<facebook4j.Score> |
| postAchievement | postAchievement | achievementURL,[userId] | 文字列 |
| postScore | postScore | scoreValue,[userId] | 文字列 |
| グループ | |||
| getGroup | group | groupId,[reading] | facebook4j.Group |
| getGroupDocs | groupDocs | groupId,[reading] | facebook4j.ResponseList<facebook4j.GroupDoc> |
| getGroupFeed | groupFeed | groupId,[reading] | facebook4j.ResponseList<facebook4j.Post> |
| getGroupMembers | groupMembers | groupId,[reading] | facebook4j.ResponseList<facebook4j.GroupMember> |
| getGroupPictureURL | groupPictureURL | groupId | java.net.URL |
| getGroups | groups | [reading],[userId] | facebook4j.ResponseList<facebook4j.Group> |
| postGroupFeed | postGroupFeed | groupId,postUpdate | 文字列 |
| postGroupLink | postGroupLink | groupId,link,[message] | 文字列 |
| postGroupStatusMessage | postGroupStatusMessage | groupId,message | 文字列 |
| Insights | |||
| getInsights | Insights | objectId,metric,[reading] | facebook4j.ResponseList<facebook4j.Insight> |
| likes | |||
| getUserLikes | userLikes | [reading],[userId] | facebook4j.ResponseList<facebook4j.Like> |
| リンク | |||
| commentLink | commentLink | linkId,message | 文字列 |
| getLink | リンク | linkId,[reading] | facebook4j.Link |
| getLinkComments | linkComments | linkId,[reading] | facebook4j.ResponseList<facebook4j.Comment> |
| getLinkLikes | linkLikes | linkId,[reading] | facebook4j.ResponseList<facebook4j.Like> |
| メッセージ | |||
| getInbox | inbox | [reading],[userId] | facebook4j.InboxResponseList<facebook4j.Inbox> |
| getMessage | message | messageId,[reading] | facebook4j.Message |
| getOutbox | 送信トレイ | [reading],[userId] | facebook4j.ResponseList<facebook4j.Message> |
| getUpdates | updates | [reading],[userId] | facebook4j.ResponseList<facebook4j.Message> |
| 通知 | |||
| getNotifications | 通知 | [includeRead],[reading],[userId] | facebook4j.ResponseList<facebook4j.Notification> |
| markNotificationAsRead | markNotificationAsRead | notificationId | boolean |
| パーミッション | |||
| getPermissions | permissions | [userId] | java.util.List<acebook4j.Permission> |
| revokePermission | revokePermission | permissionName,[userId] | boolean |
| 写真 | |||
| addTagToPhoto | addTagToPhoto | photoId,[toUserId],[toUserIds],[tagUpdate] | boolean |
| commentPhoto | commentPhoto | photoId,message | 文字列 |
| deletePhoto | deletePhoto | photoId | boolean |
| getPhoto | photo | photoId,[reading] | facebook4j.Photo |
| getPhotoComments | photoComments | photoId,[reading] | facebook4j.ResponseList<facebook4j.Comment> |
| getPhotoLikes | photoLikes | photoId,[reading] | facebook4j.ResponseList<facebook4j.Like> |
| getPhotos | 写真 | [reading],[userId] | facebook4j.ResponseList<facebook4j.Photo> |
| getPhotoURL | photoURL | photoId | java.net.URL |
| getTagsOnPhoto | tagsOnPhoto | photoId,[reading] | facebook4j.ResponseList<facebook4j.Tag> |
| postPhoto | postPhoto | source,[message],[place],[noStory],[userId] | 文字列 |
| updateTagOnPhoto | updateTagOnPhoto | photoId,[toUserId],[tagUpdate] | boolean |
| Pokes | |||
| getPokes | pokes | [reading],[userId] | facebook4j.ResponseList<facebook4j.Poke> |
| posts | |||
| commentPost | commentPost | postId,message | 文字列 |
| deletePost | deletePost | postId | boolean |
| getFeed | フィード | [reading],[userId] | facebook4j.ResponseList<facebook4j.Post> |
| getPost | post | postId,[reading] | facebook4j.Post |
| getPostComments | postComments | postId,[reading] | facebook4j.ResponseList<facebook4j.Comment> |
| getPostLikes | postLikes | postId,[reading] | facebook4j.ResponseList<facebook4j.Like> |
| getPosts | posts | [reading],[userId] | facebook4j.ResponseList<facebook4j.Post> |
| getTagged | tagged | [reading],[userId] | facebook4j.ResponseList<facebook4j.Post> |
| postFeed | postFeed | postUpdate,[userId] | 文字列 |
| postLink | postLink | link,[message],[userId] | 文字列 |
| postStatusMessage | postStatusMessage | message,[userId] | 文字列 |
| getSubscribedto | subscribedto | [reading],[userId] | facebook4j.ResponseList<facebook4j.Subscribedto> |
| getSubscribers | 加入者 | [reading],[userId] | facebook4j.ResponseList<facebook4j.Subscriber> |
| ユーザーのテスト | |||
| createTestUser | createTestUser | appId,[name],[userLocale],[permissions] | facebook4j.TestUser |
| deleteTestUser | deleteTestUser | testUserId | boolean |
| getTestUsers | testUsers | appId | java.util.List<acebook4j.TestUser> |
| makeFriendTestUser | makeFriendTestUser | testUser1,testUser2 | boolean |
| Users | |||
| getMe | me | [reading] | facebook4j.User |
| getPictureURL | pictureURL | [size],[userId] | java.net.URL |
| getUser | user | userId,[reading] | facebook4j.User |
| getUsers | users | ids | java.util.List<acebook4j.User> |
| 動画 | |||
| commentVideo | commentVideo | videoId,message | 文字列 |
| getVideo | video | videoId,[reading] | facebook4j.Video |
| getVideoComments | videoComments | videoId,[reading] | facebook4j.ResponseList<facebook4j.Comment> |
| getVideoCover | videoCover | videoId | java.net.URL |
| getVideoLikes | videoLikes | videoId,[reading] | facebook4j.ResponseList<facebook4j.Like> |
| getVideos | 動画 | [reading],[userId] | facebook4j.ResponseList<facebook4j.Video> |
| postVideo | postVideo | source,[title,description],[userId] | 文字列 |
| 検索 | |||
| search | search | query,[reading] | facebook4j.ResponseList<facebook4j.internal.org.json.JSONObject> |
| searchEvents | events | query,[reading] | facebook4j.ResponseList<facebook4j.Event> |
| searchGroups | groups | query,[reading] | facebook4j.ResponseList<facebook4j.Group> |
| searchPlaces | 場所 | query,[reading],[center,distance] | facebook4j.ResponseList<facebook4j.Place> |
| searchPosts | posts | query,[reading] | facebook4j.ResponseList<facebook4j.Post> |
| SearchUsers | users | query,[reading] | facebook4j.ResponseList<facebook4j.User> |
コンシューマーエンドポイント: リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | タイプ | 説明 |
|---|---|---|
| achievementURL | java.net.URL | 達成の一意の URL |
| albumCreate | facebook4j.AlbumCreate | 作成する Facebook Album |
| albumId | 文字列 | アルバム ID |
| allowNewOptions | boolean | 他のユーザーが新しいオプションを追加できる場合は True |
| appId | 文字列 | Facebook アプリケーションの ID |
| 中央 | facebook4j.GeoLocation | 場所 latitude および longitude |
| commentId | 文字列 | コメント ID |
| description | 文字列 | 説明テキスト |
| distance | int | 名の距離 |
| eventId | 文字列 | イベント ID |
| eventUpdate | facebook4j.EventUpdate | 作成または更新するイベント |
| friendId | 文字列 | friend ID |
| friendUserId | 文字列 | friend ユーザー ID |
| friendlistId | 文字列 | フリンドリスト ID |
| friendlistName | 文字列 | 先頭リスト名 |
| groupId | 文字列 | グループ ID |
| ids | String[] | ユーザーの ID |
| includeRead | boolean | 未読の通知に加えて、ユーザーがすでに読んでいるという通知を有効にします。 |
| リンク | java.net.URL | リンク URL |
| linkId | 文字列 | リンク ID |
| locale | java.util.Locale | 目的の FQL ロケール |
| message | 文字列 | メッセージのテキスト |
| messageId | 文字列 | メッセージ ID |
| メトリクス | 文字列 | メトリクス名 |
| name | 文字列 | ユーザー名をテストします。最初は last の形式でなければなりません |
| noStory | boolean | true に設定すると、アプリケーションを使用して写真をアップロードする際に、ユーザーのプロファイルで自動的に生成されるフィードストーリーが抑制されます。 |
| noteId | 文字列 | ノート ID |
| notificationId | 文字列 | 通知 ID |
| objectId | 文字列 | Insights オブジェクト ID |
| optionDescription | 文字列 | 質問の回答オプションの説明 |
| options | java.util.List<String> | 質問の回答オプション |
| permissionName | 文字列 | パーミッション名 |
| permissions | 文字列 | perm1,perm2,... の形式でユーザーパーミッションをテストします。 |
| photoId | 文字列 | 写真 ID |
| 配置 | 文字列 | 写真に関連付けられた場所の Facebook ID |
| placeId | 文字列 | 場所 ID |
| postId | 文字列 | 投稿 ID |
| postUpdate | facebook4j.PostUpdate | 作成または更新の投稿 |
| クエリー | java.util.Map<tring> | FQL クエリー |
| query | 文字列 | FQL クエリーまたは検索用語で検索*エンドポイント |
| 質問 | 文字列 | 質問テキスト |
| questionId | 文字列 | 質問 ID |
| 読み取り | facebook4j.Reading | オプションの読み取りパラメーター。Reading Options(#Reading Options)を参照してください。 |
| scoreValue | int | 値の数値スコア |
| size | facebook4j.PictureSize | 図のサイズ、大型、通常の、小、または角の 1 つ |
| source | facebook4j.Media | java.io.File または java.io.Inputstream のいずれかからのメディアコンテンツ |
| subject | 文字列 | サブジェクトの注記 |
| tagUpdate | facebook4j.TagUpdate | 写真タグ情報 |
| testUser1 | facebook4j.TestUser | ユーザーのテスト |
| testUser2 | facebook4j.TestUser | ユーザーのテスト |
| testUserId | 文字列 | テストユーザーの ID |
| title | 文字列 | タイトルテキスト |
| toUserId | 文字列 | タグを付けるユーザーの ID |
| toUserIds | java.util.List<tring> | タグを付けるユーザーの ID |
| userId | 文字列 | Facebook ユーザー ID |
| userId1 | 文字列 | ユーザーの ID |
| userId2 | 文字列 | ユーザーの ID |
| userIds | String[] | イベントに招待するユーザーの ID |
| userLocale | 文字列 | テストユーザーロケール |
| videoId | 文字列 | ビデオ ID |
オプションの読み取り リンクのコピーリンクがクリップボードにコピーされました!
| オプション | 説明 |
|---|---|
| reading.fields | field1,field2,.. の形式で取得するフィールド名。 |
| reading.limit | リスト結果に対して返す項目数を制限します。たとえば、10 の制限により、1 から 10 が返されます。 |
| reading.offset | リスト結果の開始オフセット(制限が 10 など)、10 のオフセットはアイテム 11 から 20 を返します。 |
| reading.until | 時間ベースのデータの範囲の最後を参照する Unix タイムスタンプまたは strtotime データ値 |
| reading.since | 時間ベースのデータの範囲の開始を示す Unix タイムスタンプまたは strtotime データ値 |
| reading.locale | 特定のロケールでローカライズされたコンテンツを取得します。言語が文字列として指定される [,country][,variant] |
| reading.with | ロケーション情報がアタッチされているオブジェクトに関する情報を取得し、true に設定します。 |
| reading.metadata | Facebook Graph API Introspection を使用してオブジェクトメタデータを取得し、true に設定します。 |
| reading.filter | ユーザーのストリームフィルターキー。Facebook stream_filterを参照してください。 |
メッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
メッセージボディー リンクのコピーリンクがクリップボードにコピーされました!
ユースケース リンクのコピーリンクがクリップボードにコピーされました!
from("direct:foo")
.to("facebook://postFeed/inBody=postUpdate);
from("direct:foo")
.to("facebook://postFeed/inBody=postUpdate);
from("facebook://home?consumer.delay=5000")
.to("bean:blah");
from("facebook://home?consumer.delay=5000")
.to("bean:blah");
from("direct:foo")
.setHeader("CamelFacebook.query", header("bar"))
.to("facebook://posts");
from("direct:foo")
.setHeader("CamelFacebook.query", header("bar"))
.to("facebook://posts");
第49章 File2 リンクのコピーリンクがクリップボードにコピーされました!
File Component: Apache Camel 2.0 以降 リンクのコピーリンクがクリップボードにコピーされました!
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
file:directoryName[?options]
file:directoryName[?options]
file://directoryName[?options]
file://directoryName[?options]
?option=value&option=value&.. の形式で追加できます。
fileName=thefilename )。また、開始ディレクトリーには ${ } プレースホルダーの動的式を含めることはできません。ここでも、fileName オプションを使用してファイル名の動的部分を指定します。
readLock オプションと、使用できる doneFileName オプションを提供します。「他のファイルを直接ドロップするフォルダーからのファイルの使用」 のセクションも参照してください。
Camel on EAP デプロイメント リンクのコピーリンクがクリップボードにコピーされました!
URI オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | デフォルト値 | 説明 |
|---|---|---|
autoCreate
|
true
|
ファイルのパス名に不足しているディレクトリーを自動的に作成します。ファイルコンシューマーの場合は、開始ディレクトリーを作成することを意味します。ファイルプロデューサーの場合は、ファイルが書き込まれるディレクトリーを意味します。 |
bufferSize
|
128kb | 書き込みバッファーのサイズ (バイト単位)。 |
fileName
|
null
|
File Language などの式 を使用して、ファイル名を動的に設定します。コンシューマーの場合は、ファイル名フィルターとして使用されます。プロデューサーの場合、書き込むファイル名を評価するために使用されます。式が設定されている場合、CamelFileName ヘッダーよりも優先されます。(注: ヘッダー自体も Expressionにすることができます)。式オプションは String 型と Expression タイプの両方をサポートします。式が String タイプである場合、これは 常に File Language を使用して評価されます。式が Expression タイプである場合、指定された Expression タイプが使用されます。これにより、たとえば OGNL 式を使用できます。コンシューマーの場合、これを使用してファイル名をフィルターリングできるため、たとえば、ファイル 言語 構文 mydata-${date:now:yyyyMMdd}.txt を使用して現在のファイルを使用できます。Camel 2.11 以降では、プロデューサーは既存の CamelFileName ヘッダーよりも優先される CamelOverruleFileName ヘッダーをサポートします。CamelOverruleFileName は一度だけ使用されるヘッダーであり、CamelFileName の一時的な保存を回避し、後で復元する必要があるため、簡単になります。
|
フラット化
|
false
|
flatten は、ファイル名パスをフラット化して先頭のパスを削除するため、ファイル名のみになります。これにより、サブディレクトリーに再帰的に使用できますが、たとえばファイルを別のディレクトリーに書き込む場合、ファイルは単一のディレクトリーに書き込まれます。これをプロデューサーで true に設定すると、CamelFileName ヘッダーで認識されたファイル名はすべて先頭パスから取り除かれます。
|
charset
|
null
|
Camel 2.5: このオプションはファイルのエンコーディングを指定するために使用されます。camel は Exchange.CHARSET_NAME で Exchange プロパティーをこのオプションの値に設定します。 |
copyAndDeleteOnRenameFail
|
true
|
Camel 2.9: ファイルを直接変更できなかった場合に、フォールバックしてファイルのコピーと削除を行うかどうか。このオプションは FTP コンポーネントでは使用できません。 |
renameUsingCopy
|
false
|
Camel 2.13.1: コピーおよび削除ストラテジーを使用して名前変更操作を実行します。これは主に、通常の名前変更操作が信頼できない環境で使用されます (たとえば、異なるファイルシステムまたはネットワーク間)。このオプションは、
copyAndDeleteOnRenameFail パラメーターよりも優先されますが、これは追加の遅延後にのみ自動的にコピーおよび削除ストラテジーにフォールバックします。
|
コンシューマーのみ リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | デフォルト値 | 説明 |
|---|---|---|
initialDelay
|
1000
|
ファイル/ディレクトリーの開始をポーリングするまでのミリ秒。 |
delay
|
500
|
次にファイル/ディレクトリーをポーリングするまでのミリ秒。 |
useFixedDelay
|
true
|
プール間の固定遅延を使用するには、true に設定します。それ以外の場合、固定レートが使用されます。詳細は、JDK の ScheduledExecutorService を参照してください。
|
runLoggingLevel
|
TRACE
|
Camel 2.8: コンシューマーはポーリング時に開始/完了のログ行をログに記録します。このオプションを使用すると、ログレベルを設定できます。 |
再帰
|
false
|
ディレクトリーの場合は、すべてのサブディレクトリー内のファイルも検索します。 |
delete
|
false
|
true の場合、ファイルは正常に処理されると削除されます。
|
noop
|
false
|
true の場合、ファイルは移動または削除されません。このオプションは、読み取り専用データまたは ETL タイプの要件に適しています。noop=true の場合、Apache Camel は idempotent=true も設定し、同じファイルを何度も消費しないようにします。
|
preMove
|
null
|
File Language などの式 を使用して、処理 前 に移動する際にファイル名を動的に設定します。たとえば、進行中のファイルを order ディレクトリーに移動するには、この値を order に設定します。
|
move
|
.camel
|
File Language などの式 を使用して、処理 後 に移動する際にファイル名を動的に設定します。ファイルを .done サブディレクトリーに移動するには、.done と入力します。
|
moveFailed
|
null
|
File Language などの式 を使用して、処理 後に失敗したファイルを移動する際にファイル 名を動的に設定します。ファイルを エラー サブディレクトリーに移動するには、error を実行します。注記: ファイルを別の場所に移動すると、ファイルを別の場所に移動するとエラーを 処理 できるため、Apache Camel はファイルを再度取得できません。
|
include
|
null
|
ファイル名が正規表現パターンに一致する場合にファイルを含めるために使用されます(照合は Camel 2.17 以降と大文字と小文字を区別し ます)。 |
exclude
|
null
|
ファイル名が正規表現パターンに一致する場合にファイルを除外するために使用されます(一致は Camel 2.17 以降と大文字と小文字を区別し ます)。 |
antInclude
|
null
|
Camel 2.10: Ant スタイルのフィルターが含まれます(例: antInclude=\*{}*/*{}.txt )。コンマ区切り形式で複数の組み込みを指定できます。ant パスフィルターの詳細は、「ANT パスマッチャーを使用したフィルターリング」 を参照してください。
|
antExclude
|
null
|
Camel 2.10: Ant style filter exclusion.antInclude と antExclude の両方を使用する場合は、antInclude よりも antExclude が優先されます。コンマ区切り形式で複数の除外を指定できます。ant パスフィルターの詳細は、「ANT パスマッチャーを使用したフィルターリング」 を参照してください。
|
antFilterCaseSensitive
|
true
|
Camel 2.11: 大文字/小文字を区別しない Ant スタイルのフィルター。 |
idempotent
|
false
|
Apache Camel がすでに処理されたファイルをスキップできるように、Idempotent Consumer EIP パターンを使用するオプション。デフォルトでは、1000 エントリーを保持するメモリーベースの LRUCache を使用します。noop=true の場合、同じファイルを何度も使用することを避けるために、べき等性も有効になります。
|
idempotentKey
|
式
|
Camel 2.11: カスタムのべき等キーを使用するには、以下を実行します。デフォルトでは、ファイルの絶対パスが使用されます。File Language を使用すると、ファイル名やファイルサイズを使用することができます(例: idempotentKey=$-$ )。 |
idempotentRepository
|
null
|
Pluggable repository as a org.apache.camel.processor.idempotent.MessageIdRepository class.指定がない場合はデフォルトで MemoryMessageIdRepository を使用し、べき等 性が true になります。
|
inProgressRepository
|
memory
|
org.apache.camel.processor.idempotent.MessageIdRepository クラスとしてのプラグ可能な in-progress リポジトリー。in-progress リポジトリーは、現在進行中のファイルが消費されていることを示すために使用されます。デフォルトでは、メモリーベースのリポジトリーが使用されます。 |
filter
|
null
|
org.apache.camel.component.file.GenericFileFilter クラスとしてのプラグ可能なフィルター。フィルターがその accept () メソッドで false を返す場合、ファイルをスキップします。Apache Camel には、camel-spring コンポーネントの ANT パスマッチャー フィルターも同梱されています。詳細は、以下のセクションを参照してください。
|
shuffle
|
false
|
Camel 2.16: ファイルのリストをシャッフルするには(ランダムな順序でのソート) |
sorter
|
null
|
java.util.Comparator<org.apache.camel.component.file.GenericFile > クラスとしてのプラグ可能なソーター。 |
sortBy
|
null
|
File 言語 を使用した組み込みソート。ネストされたソートをサポートしているため、ファイル名でのソートと、2 つ目のグループとして変更日でソートできます。詳細は、以下のソートセクションを参照してください。 |
readLock
|
none
|
ファイルに排他的な読み取りロックがある (つまり、ファイルが進行中または書き込み中ではない) 場合にのみファイルをポーリングするために、コンシューマーが使用します。Apache Camel は、ファイルロックが許可されるまで待機します。
readLock オプションは、以下の組み込みストラテジーをサポートします。
注記: 外部プログラムがファイルを書き込む場合は、Red Hat は
readLock オプションの代わりに doneFileName オプションを使用することを推奨します。
警告: 読み取りロックストラテジーのほとんどは、クラスターモードでの使用には適していません。つまり、同じディレクトリーで同じファイルを読み取ろうとしている複数のコンシューマーを含めることはできません。この場合、読み取りロックは確実に機能しません。Hazelcast コンポーネントから などのクラスター対応べき等リポジトリー実装を使用する場合、べき等読み取りロックは、クラスター化された信頼性をサポートします。
|
readLockTimeout
|
0 (FTP の場合は 2000)
|
読み取りロックでサポートされている場合、読み取りロックのオプションのタイムアウト(ミリ秒単位)。読み取りロックを許可できず、タイムアウトがトリガーされた場合、Apache Camel はファイルをスキップします。Apache Camel が次にポーリングすると、がファイルを再度試行します。この場合、読み取りロックが許可される可能性があります。現在、fileLock、changed、および rename がタイムアウトに対応します。
|
readLockCheckInterval
|
1000 (FTP の場合、5000)
|
Camel 2.6: 読み取りロックでサポートされている場合、読み取りロックの間隔(ミリ秒単位)。この間隔は、読み取りロックを取得する試行間のスリープに使用されます。たとえば、changed 読み取りロックを使用する場合は、低速な書き込み に対応するために間隔を長く設定できます。デフォルトの 1 秒。プロデューサーによるファイルの書き込みが非常に遅い場合は 短すぎる 可能性があります。
|
readLockMinLength
|
1
|
Camel 2.10.1: このオプションは、readLock=changed にのみ適用されます。このオプションを使用すると、最小ファイルの長さを設定できます。デフォルトで Camel はファイルにデータが含まれていると想定するため、デフォルト値は 1 です。このオプションをゼロに設定すると、長さがゼロのファイルを使用できます。
|
readLockLoggingLevel
|
WARN
|
Camel 2.12: 読み取りロックを取得できなかったときに使用されるログレベル。デフォルトでは、WARN がログに記録されます。このレベルを変更できます。たとえば、ログを記録しないように OFF に設定できます。このオプションは、changed、fileLock、rename タイプの readLock にのみ適用されます。 |
readLockMarkerFile
|
true
|
Camel 2.14: changed、rename、または exclusive 読み取りロックタイプでマーカーファイルを使用するかどうか。デフォルトでは、他のプロセスが同じファイルを取得するのを防ぐために、マーカーファイルも使用されます。このオプションを false に設定すると、この動作をオフにできます。たとえば、Camel アプリケーションによってマーカーファイルをファイルシステムに書き込みたくない場合などです。
|
readLockRemoveOnRollback
|
true
|
Camel 2.16: このオプションは、
readLock=idempotent にのみ適用されます。ファイル処理が失敗し、ロールバックが行われるときに、べき等性リポジトリーからファイル名エントリーを削除するかどうかを指定します。false の場合、ファイル名のエントリーが確認されます(ファイルがコミットしたかのように)。
|
readLockRemoveOnCommit
|
false
|
Camel 2.16: このオプションは、
readLock=idempotent にのみ適用されます。ファイル処理に成功し、コミットが行われるときに、べき等性リポジトリーからファイル名エントリーを削除するかどうかを指定します。デフォルトでは、エントリーは削除され ない ため、別のアクティブなノードがファイルを取得しようとすると競合状態が発生しなくなります。この場合、(競合状態のリスクが引き継がった後に) X 分後にファイル名エントリーがエビクトされるように、べき等リポジトリーでエビクションストラテジーを設定することが推奨されます。
|
readLockDeleteOrphanLockFiles
|
true
|
Camel 2.16: このオプションは、
readLock=markerFile にのみ適用されます。起動時に、孤立した読み取りロックファイルを削除するかどうかを指定します。このファイルは、Camel が適切にシャットダウンされなかった場合にファイルシステムに残っている可能性があります(JVM クラッシュ)。false の場合、孤立したロックファイルが Camel による対応するファイルの取得をブロックしなくなる可能性があります。
|
directoryMustExist
|
Camel 2.5:
startingDirectoryMustExist と似ていますが、これは再帰的なサブディレクトリーのポーリングに適用されます。
|
|
doneFileName
|
null
|
Camel 2.6: 提供されている場合、Camel は 完了 ファイルが存在する場合にのみファイルを消費します。このオプションは、使用するファイル名を設定します。固定の名前を指定できます。または、動的プレースホルダーを使用することもできます。完了 ファイルは、常に元のファイルと同じフォルダーに 想定されます。例は、完了ファイルの使用と、実行ファイル の書き込みセクションを参照して ください。注記:外部プログラムがファイルを書き込む場合には、Red Hat は doneFileName オプションを使用することを推奨します。
|
exclusiveReadLockStrategy
|
null
|
org.apache.camel.component.file.GenericFileExclusiveReadLockStrategy 実装としてのプラグ可能な読み取りロック。
|
maxMessagesPerPoll
|
0
|
ポーリングごとに収集するメッセージの最大数を定義する整数。デフォルトでは最大値は設定されていません。たとえば 1000 などの制限を設定して、サーバーが起動時に数千のファイルを読み込まないようにすることができます。無効にするには、0 または負の値を設定します。 |
eagerMaxMessagesPerPoll
|
true
|
Camel 2.9.3:
maxMessagesPerPoll の制限が Eager であるかどうかを制御できます。eager の場合、ファイルのスキャン中に制限されます。false の場合、すべてのファイルをスキャンし、並び替えを実行します。このオプションを false に設定すると、すべてのファイルを最初にソートしてからポーリングを制限できます。ソートのためにすべてのファイルの詳細がメモリー内にあるため、メモリー使用量が大きくなることに注意してください。
|
minDepth
|
0 |
Camel 2.8: ディレクトリーを再帰的に処理する際に処理を開始する最小深度。minDepth=1 は ベースディレクトリーを意味します。minDepth=2 は最初のサブディレクトリーを意味します。このオプションは FTP コンシューマーではサポートされて いません。
|
maxDepth
|
Integer.MAX_VALUE
|
Camel 2.8: ディレクトリーを再帰的に処理する際にトラバースする最大深度。このオプションは FTP コンシューマーではサポートされて いません。 |
processStrategy
|
null
|
プラグ可能な org.apache.camel.component.file.GenericFileProcessStrategy により、独自の readLock オプションまたは同様のものを実装できます。特別な 準備完了 ファイルが存在するなど、ファイルを使用する前に特別な条件を満たす必要がある場合にも使用できます。このオプションを設定すると、readLock オプションは適用されません。
|
startingDirectoryMustExist
|
false
|
開始ディレクトリーの存在が必要かどうか。autoCreate オプションはデフォルトで有効になっていることに注意してください。つまり、開始ディレクトリーが存在しない場合は通常は自動作成されます。autoCreate を無効にし、これを有効にして開始ディレクトリーが存在する必要があることを確認できます。ディレクトリーが存在しない場合は例外が発生します。
|
pollStrategy
|
null
|
プラグ可能な
org.apache.camel.spi.PollingConsumerPollStrategy により、Exchange が作成され、Camel でルーティングされる前に、通常ポーリング操作中に発生するエラー処理を制御するカスタム実装を提供できます。つまり、ポーリングで情報を収集している間にエラーが発生したため、たとえばファイルネットワークへのアクセスに失敗し、Camel がこれにアクセスしてファイルをスキャンできません。デフォルトの実装は、WARN レベルで原因となった例外をログに記録し、無視します。
|
sendEmptyMessageWhenIdle
|
false
|
Camel 2.9: ポーリングコンシューマーがファイルをポーリングしなかった場合は、このオプションを有効にして、代わりに空のメッセージ(ボディーなし)を送信できます。
|
consumer.bridgeErrorHandler
|
false
|
Camel 2.10: コンシューマーを Camel ルーティングエラーハンドラーにブリッジングできるようにします。つまり、ファイルの取得を試みる際に発生した例外はメッセージとして処理され、ルーティングエラーハンドラーによって処理されます。デフォルトでは、コンシューマーは
org.apache.camel.spi.ExceptionHandler を使用して例外に対応し、デフォルトでは WARN/ERROR レベルでログに記録され、無視されます。詳細は、How to use the Camel error handler to handling with exception triggered outside the routing engine を参照してください。
|
scheduledExecutorService
|
null
|
Camel 2.10: コンシューマーに使用するカスタム/共有スレッドプールを設定できます。デフォルトでは、各コンシューマーに独自の単一スレッドのスレッドプールがあります。このオプションを使用すると、複数のファイルコンシューマー間でスレッドプールを共有できます。
|
scheduler
|
null
|
Camel 2.12: カスタムスケジューラーを使用して、コンシューマーの実行をトリガーします。詳細は コンシューマーの ポーリング を参照してください。たとえば、CRON 式をサポートする Quartz2 および Springベースのスケジューラーがあります。 |
backoffMultiplier
|
0
|
Camel 2.12: 後続のアイドル状態/エラーが連続して発生した場合は、スケジュールされたポーリングコンシューマーのバックオフを解除します。乗数は、次の試行が行われる前にスキップされるポーリングの数になります。このオプションが設定されている場合は、backoffIdleThreshold や backoffErrorThreshold も設定する必要があります。詳細は、Polling Consumer を参照してください。
|
backoffIdleThreshold
|
0
|
Camel 2.12: backoffMultipler が開始する前に発生する必要のある後続のアイドルポーリングの数。
|
backoffErrorThreshold
|
0
|
Camel 2.12: backoffMultipler が開始する前に発生すべき後続のエラーポーリングの数(エラーにより失敗)。
|
onCompletionExceptionHandler
|
Camel 2.16: カスタムの org.apache.camel.spi.ExceptionHandler を使用して、コンシューマーがコミットまたはロールバックを実行する完了プロセスのファイル中に発生する例外を処理します。デフォルトの実装は、WARN レベルですべての例外をログに記録し、無視します。
|
|
probeContentType
|
false
|
Camel 2.17: コンテンツタイプのプローブを有効にするかどうか。有効にすると、コンシューマーは
Files#probeContentType(java.nio.file.Path) を使用してファイルの Content-Type を判別し、キー Exchange#FILE_CONTENT_TYPE のヘッダーとしてメッセージに保存します。
注記: Camel 2.15 以降では、この関数が導入され、常に有効になっていました。しかし、Camel 2.17 以降、一部のファイルシステムで問題が発生する可能性があるため、デフォルトではオフになっています。
|
extendedAttributes
|
null
|
Camel 2.17: オプションの値に応じて Files.getAttribute(ava.nio.file.Path, java.lang.String attribute) または Files.readAttributes(ava.nio.file.Path, java.lang.String attributes) を使用して java.nio.file.attribute クラスで拡張ファイル属性の収集を有効にするには、以下を実行します。このオプションは、収集する属性のコンマ区切りリスト(例: basic:creationTime, posix:group-or a simple wildcard-or posix:* など)をサポートします。属性名の前には、基本属性が照会されます。結果は、CamelFileExtendedAttributes タイプのキー Map<String, Object> のヘッダーとして保存されます。キー は属性の名前(例: posix:group)で、値 は Files.getAttribute() または ----------|----- への呼び出しによって返された属性になります。Files.readAttributes
|
ファイルコンシューマーのデフォルト動作 リンクのコピーリンクがクリップボードにコピーされました!
- デフォルトでは、ファイルは処理期間中ロックされ ません。
- ルートが完了すると、ファイルは
.camelサブディレクトリーに移動し、それらが削除されるように表示されます。 - File Consumer は、.、
.camel、.m2、など、名前がドットで始まるファイルを常にスキップします。.groovy includeNamePrefix、includeNamePostfix、excludeNamePrefix、excludeNamePostfix、およびregexPatternなどのオプションが使用される場合、ファイル(ディレクトリーではない)のみが有効なファイル名に一致します。
プロデューサーのみ リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | デフォルト値 | 説明 |
|---|---|---|
fileExist
|
オーバーライド
|
同じ名前のファイルがすでに存在する場合のアクション。以下の値を指定できます: Override、Append、Fail、Ignore、Move、および TryRename (Camel 2.11.1)。デフォルトの を 上書き し、既存のファイルを置き換えます。append は、既存のファイルにコンテンツを追加します。Fail は GenericFileOperationException を出力し、既存のファイルがあることを示します。ignore は問題をサイレントに無視し、既存のファイルは上書きし ません が、問題があるとします。Move オプションには Camel 2.10.1 以降が必要で、対応する moveExisting オプションも設定する必要があります。オプション eagerDeleteTargetFile を使用して、ファイルの移動と既存ファイルがすでに存在する場合の動作を制御できます。そうしないと、移動操作が失敗します。Move オプションは、ターゲットファイルを書き込む前に既存のファイルを移動します。TryRenameCamel 2.11.1 は、tempFileName オプションが使用されている場合にのみ適用されます。これにより、存在チェックを実行せずに、一時的なファイル名から実際のファイル名への変更を試みることができます。このチェックは、一部のファイルシステム、特に FTP サーバーでは高速になる場合があります。
|
tempPrefix
|
null
|
このオプションは、一時的な名前を使用してファイルを書き込み、書き込みが完了した後に、その名前を実際の名前に変更するために使用されます。書き込み中のファイルを識別し、(排他的読み取りロックを使用せずに) コンシューマーが進行中のファイルを読み取らないようにするために使用できます。大きなファイルをアップロードするときに FTP でよく使用されます。 |
tempFileName
|
null
|
Camel 2.1: tempPrefix オプションと 同じ ですが、File 言語を使用する一時的なファイル名の命名をより詳細に制御できます。
|
keepLastModified
|
false
|
Camel 2.2: ソースファイル(存在する場合)から最後に変更されたタイムスタンプを保持します。Exchange.FILE_LAST_MODIFIED ヘッダーを使用してタイムスタンプを見つけます。このヘッダーには、java.util.Date またはタイムスタンプ付きの long を含めることができます。タイムスタンプが存在し、オプションが有効な場合は、書き込まれたファイルにこのタイムスタンプが設定されます。注記: このオプションは、ファイル プロデューサーにのみ適用されます。このオプションは、ftp プロデューサーでは使用 できません。
|
eagerDeleteTargetFile
|
true
|
Camel 2.3: 既存のターゲットファイルを完全に削除するかどうか。このオプションは、fileExists=Override および tempFileName オプションも使用する場合にのみ適用されます。これを使用して、一時ファイルが書き込まれる前にターゲットファイルを削除することを無効化 (false に設定) できます。たとえば、大きなファイルを書き込んで、一時ファイルの書き込み中にターゲットファイルを存在させたい場合があります。これにより、一時ファイルの名前がターゲットファイル名に変更される直前まで、ターゲットファイルは削除されません。このオプションの Camel 2.10.1 から、fileExist=Move が有効で、既存のファイルが存在する場合に、既存のファイルを削除するかどうかを制御するためにも使用されます。オプション copyAndDeleteOnRenameFail が false の場合、既存のファイルが存在する場合は例外が出力されます。true の場合、既存のファイルは移動操作の前に削除されます。
|
doneFileName
|
null
|
Camel 2.6: 指定された場合、元のファイルが書き込まれると、Camel は 2 番目の 完了 ファイルを書き込みます。完了 ファイルは空になります。このオプションは、使用するファイル名を設定します。固定の名前を指定できます。または、動的プレースホルダーを使用することもできます。完了 ファイルは、常に 元のファイルと同じフォルダーに書き込まれます。例は、writing done file セクションを参照してください。注記:外部プログラムがファイルを書き込む場合には、Red Hat は doneFileName オプションを使用することを推奨します。
|
allowNullBody
|
false
|
Camel 2.10.1: ファイルの書き込み中に null ボディーが許可されるかどうかを指定するために使用されます。true に設定すると空のファイルが作成され、false に設定して null の本文をファイルコンポーネントに送信しようとすると、Cannot write null body to file.という GenericFileWriteException が出力されます。fileExist オプションが Override に設定されている場合、ファイルは切り捨てられ、append に設定するとファイルは変更されません。 |
forceWrites
|
true
|
Camel 2.10.5/2.11: ファイルシステムへの書き込みを強制的に同期するかどうか。たとえばログや監査ログへの書き込みなど、このレベルの保証が必要ない場合はオフにすることでパフォーマンスが向上します。 |
chmod
|
null
|
Camel 2.15.0: プロデューサーによって送信されるファイルパーミッションを指定します。ここで、chmod の値は 000 から 777 の間でなければなりません。先頭の数字(例: 0755-are)は無視されます。
|
chmodDirectory
|
null
|
Camel 2.17.0: プロデューサーが不足しているディレクトリーを作成する場合に使用されるディレクトリーパーミッションを指定します。ここで、chmod の値は 000 から 777 の間でなければなりません。先頭の数字(例: 0755-are)は無視されます。
|
ファイルプロデューサーのデフォルト動作 リンクのコピーリンクがクリップボードにコピーされました!
- デフォルトでは、同じ名前の既存ファイルが存在する場合は、既存のファイルを上書きします。Apache Camel 1.x では、
Appendがファイルプロデューサーのデフォルトです。これはjava.io.Fileを使用したデフォルトのファイル操作であるため、Apache Camel 2.0 でOverrideに変更しました。また、camel-ftp コンポーネントで使用する FTP ライブラリーのデフォルトです。
移動および削除操作 リンクのコピーリンクがクリップボードにコピーされました!
エクスチェンジ の処理中に、ファイルは引き続き inbox フォルダーにあります。
from("file://inbox?move=.done").to("bean:handleOrder");
from("file://inbox?move=.done").to("bean:handleOrder");
inbox フォルダーにファイルがドロップされると、ファイルコンシューマーはこれを通知し、handleOrder Bean にルーティングされる新しい FileExchange を作成します。その後、Bean は File オブジェクトを処理します。この時点で、ファイルは inbox フォルダーに残ります。Bean が完了し、ルートが完了すると、ファイルコンシューマーは move 操作を実行し、ファイルを .done サブフォルダーに移動します。
move=../backup/copy-of-${file:name}
move=../backup/copy-of-${file:name}
.camel サブフォルダーに移動します。
from("file://inobox?delete=true").to("bean:handleOrder");
from("file://inobox?delete=true").to("bean:handleOrder");
from("file://inbox?preMove=inprogress").to("bean:handleOrder");
from("file://inbox?preMove=inprogress").to("bean:handleOrder");
from("file://inbox?preMove=inprogress&move=.done").to("bean:handleOrder");
from("file://inbox?preMove=inprogress&move=.done").to("bean:handleOrder");
進行中 のフォルダーにある場合、このファイルは .done フォルダーに移動します。
移動および PreMove オプションの詳細な制御 リンクのコピーリンクがクリップボードにコピーされました!
move=.done を入力すると、Apache Camel がこれを ${file:parent}/.done/${file:onlyname} に変換します。これは、Apache Camel がオプション値に ${ } を指定していないことを検知した場合にのみ行われます。そのため、${ } を含む式を入力すると、式は File Language 式として解釈されます。
move=backup/${date:now:yyyyMMdd}/${file:name}
move=backup/${date:now:yyyyMMdd}/${file:name}
moveFailed について リンクのコピーリンクがクリップボードにコピーされました!
moveFailed オプションを使用すると、処理 できない ファイルを、選択したエラーフォルダーなどの別の場所に移動できます。たとえば、タイムスタンプ付きのエラーフォルダー内のファイルを移動するには、moveFailed=/error/${file:name.noext}-${date:now:yyyyMMddHHmmssSSS}.${file:name.ext} を使用できます。
メッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
ファイルプロデューサーのみ リンクのコピーリンクがクリップボードにコピーされました!
| ヘッダー | 説明 |
|---|---|
CamelFileName
|
書き込むファイルの名前を指定します(エンドポイントディレクトリーへの相対パス)。名前は String、File Language または Simple 式を持つ String、または Expression オブジェクトになります。null の場合、Apache Camel はメッセージ固有の ID に基づいてファイル名を自動生成します。
|
CamelFileNameProduced
|
書き込まれた出力ファイルの実際の絶対パス(パス + 名)。このヘッダーは Camel によって設定され、その目的は書き込まれたファイルの名前でエンドユーザーを提供します。 |
CamelOverruleFileName
|
Camel 2.11: CamelFileName ヘッダーのオーバーラップに使用され、代わりに値を使用します(ただし、プロデューサーは ファイルの書き込み後にこのヘッダーを削除するため、1 回のみ)。値は String のみにすることができます。fileName オプションが設定されている場合、これは引き続き評価されていることに注意してください。
|
ファイルコンシューマーのみ リンクのコピーリンクがクリップボードにコピーされました!
| ヘッダー | 説明 |
|---|---|
CamelFileName
|
消費されたファイルの名前(エンドポイントに設定された開始ディレクトリーからのオフセットを含む相対パス)。 |
CamelFileNameOnly
|
ファイル名のみ (先行パスを含まない名前)。 |
CamelFileAbsolute
|
消費されたファイルが絶対パスを表すかどうかを指定する ブール値 オプション。通常、相対パスの場合は false である必要があります。絶対パスは通常使用しないでくださいが、ファイルを絶対パスに移動できるように move オプションに追加しました。ただし、他の場所でも使用することができます。
|
CamelFileAbsolutePath
|
ファイルへの絶対パス。相対ファイルの場合、このパスは代わりに相対パスを保持します。 |
CamelFilePath
|
ファイルパス。相対ファイルの場合、これは開始ディレクトリー + 相対ファイル名になります。絶対ファイルの場合、これは絶対パスです。 |
CamelFileRelativePath
|
相対パス。 |
CamelFileParent
|
親パス。 |
CamelFileLength
|
ファイルサイズを含む long 値。
|
CamelFileLastModified
|
ファイルの最終変更のタイムスタンプを含む long 値。
|
バッチコンシューマー リンクのコピーリンクがクリップボードにコピーされました!
エクスチェンジプロパティー、ファイルコンシューマーのみ リンクのコピーリンクがクリップボードにコピーされました!
BatchConsumer であるため、ポーリングするファイルのバッチ処理をサポートします。バッチ処理により、Apache Camel はいくつかのプロパティーを エクスチェンジ に追加し、現在のインデックスをポーリングしたファイルの数を把握します。
| プロパティー | 説明 |
|---|---|
CamelBatchSize
|
このバッチでポーリングされたファイルの合計数。 |
CamelBatchIndex
|
バッチの現在のインデックス。0 から始まります。 |
CamelBatchComplete
|
バッチの最後の エクスチェンジ を示す ブール 値。最後のエントリーに対してのみ true になります。
|
フォルダーおよびファイル名を使用した一般的な gotchas リンクのコピーリンクがクリップボードにコピーされました!
ID-MACHINENAME-2443-1211718892437-1-0 などのファイル名になります。このようなファイル名が必要ない場合は、CamelFileName メッセージヘッダーにファイル名を指定する必要があります。定数 Exchange.FILE_NAME も使用できます。
from("direct:report").to("file:target/reports");
from("direct:report").to("file:target/reports");
report.txt をファイル名として使用するには、以下を実行します。
from("direct:report").setHeader(Exchange.FILE_NAME, constant("report.txt")).to( "file:target/reports");
from("direct:report").setHeader(Exchange.FILE_NAME, constant("report.txt")).to( "file:target/reports");
CamelFileName の場合:
from("direct:report").setHeader("CamelFileName", constant("report.txt")).to( "file:target/reports");
from("direct:report").setHeader("CamelFileName", constant("report.txt")).to( "file:target/reports");
from("direct:report").to("file:target/reports/?fileName=report.txt");
from("direct:report").to("file:target/reports/?fileName=report.txt");
ファイル名式 リンクのコピーリンクがクリップボードにコピーされました!
CamelFileName ヘッダーの文字列ベースの File Language 式のいずれかを使用して設定できます。構文およびサンプルについては、File Language を参照してください。
他のファイルを直接ドロップするフォルダーからのファイルの使用 リンクのコピーリンクがクリップボードにコピーされました!
readLock オプションを見て、ユースケースに適したものを確認します。ただし、最善の方法は、別のフォルダーに書き込み、書き込み後にドロップフォルダーにファイルを移動することです。ただし、ドロップフォルダーに直接ファイルを書き込むと、ファイルが 変更 されたアルゴリズムを使用して、ファイルのサイズや変更が一定期間変更されるかどうかを確認するため、変更されたファイルが現在書き込みまたはコピーされているかどうかをより適切に検出できます。他の読み取りロックオプションは、これを検出するときに必ずしも適切ではない Java File API に依存します。また、doneFileName オプションも確認します。これは、ファイルが完了して使用できるときにマーカーファイル(done)を使用してシグナルを送ります。
完了ファイルの使用 リンクのコピーリンクがクリップボードにコピーされました!
doneFileName オプションを使用できます。
from("file:bar?doneFileName=done");
from("file:bar?doneFileName=done");
doneFileName オプションで動的プレースホルダーを使用する必要があります。現在、Camel は、file:name および file:name.noext の 2 つの動的トークンをサポートします。 これは ${ } で囲む必要があります。コンシューマーは、接頭辞または接尾辞(両方ではない)として実行されたファイル名の静的部分のみをサポートします。
from("file:bar?doneFileName=${file:name}.done");
from("file:bar?doneFileName=${file:name}.done");
hello.txt- 消費されるファイルです。hello.txt.done- 関連する完了ファイルです。
from("file:bar?doneFileName=ready-${file:name}");
from("file:bar?doneFileName=ready-${file:name}");
hello.txt- 消費されるファイルです。ready-hello.txt- 関連する完了ファイルです。
行われたファイルの作成 リンクのコピーリンクがクリップボードにコピーされました!
doneFileName オプションを使用できます。
.to("file:bar?doneFileName=done");
.to("file:bar?doneFileName=done");
done という名前のファイルを作成します。
doneFileName オプションで動的プレースホルダーを使用する必要があります。現在 Camel は、file:name および file:name.noext の 2 つの動的トークンをサポートします。 これは、${ } で囲む必要があります。
.to("file:bar?doneFileName=done-${file:name}");
.to("file:bar?doneFileName=done-${file:name}");
foo.txt の場合は、done-foo.txt という名前のファイルを作成します。
.to("file:bar?doneFileName=${file:name}.done");
.to("file:bar?doneFileName=${file:name}.done");
foo.txt.done であった場合、foo.txt.done という名前のファイルを作成します。
.to("file:bar?doneFileName=${file:name.noext}.done");
.to("file:bar?doneFileName=${file:name.noext}.done");
foo.txt の場合に、ターゲットファイルと同じディレクトリーに foo.done という名前のファイルを作成します。
ディレクトリーから読み取り、別のディレクトリーに書き込みます。 リンクのコピーリンクがクリップボードにコピーされました!
from("file://inputdir/?delete=true").to("file://outputdir")
from("file://inputdir/?delete=true").to("file://outputdir")
オーバールール動的名を使用したディレクトリーからの読み取り、別のディレクトリーへの書き込み リンクのコピーリンクがクリップボードにコピーされました!
from("file://inputdir/?delete=true").to("file://outputdir?overruleFile=copy-of-${file:name}")
from("file://inputdir/?delete=true").to("file://outputdir?overruleFile=copy-of-${file:name}")
outputdir にコピーし、inputdir のファイルを削除します。
ディレクトリーから再帰的に読み取り、別のディレクトリーへの書き込み リンクのコピーリンクがクリップボードにコピーされました!
from("file://inputdir/?recursive=true&delete=true").to("file://outputdir")
from("file://inputdir/?recursive=true&delete=true").to("file://outputdir")
outputdir にコピーし、inputdir のファイルを削除します。はサブディレクトリーに再帰的にスキャンします。は、サブディレクトリーを含む inputdir と同じディレクトリー構造のファイルを outputdir に配置します。
inputdir/foo.txt inputdir/sub/bar.txt
inputdir/foo.txt
inputdir/sub/bar.txt
outputdir/foo.txt outputdir/sub/bar.txt
outputdir/foo.txt
outputdir/sub/bar.txt
フラット化の使用 リンクのコピーリンクがクリップボードにコピーされました!
flatten=true オプションを追加するだけです。
from("file://inputdir/?recursive=true&delete=true").to("file://outputdir?flatten=true")
from("file://inputdir/?recursive=true&delete=true").to("file://outputdir?flatten=true")
outputdir/foo.txt outputdir/bar.txt
outputdir/foo.txt
outputdir/bar.txt
ディレクトリーおよびデフォルトの移動操作からの読み取り リンクのコピーリンクがクリップボードにコピーされました!
.camel サブディレクトリーに移動します。
from("file://inputdir/?recursive=true&delete=true").to("file://outputdir")
from("file://inputdir/?recursive=true&delete=true").to("file://outputdir")
inputdir/foo.txt inputdir/sub/bar.txt
inputdir/foo.txt
inputdir/sub/bar.txt
inputdir/.camel/foo.txt inputdir/sub/.camel/bar.txt outputdir/foo.txt outputdir/sub/bar.txt
inputdir/.camel/foo.txt
inputdir/sub/.camel/bar.txt
outputdir/foo.txt
outputdir/sub/bar.txt
ディレクトリーから読み取り、java でメッセージを処理します。 リンクのコピーリンクがクリップボードにコピーされました!
inputdir ディレクトリーにドロップされたばかりのファイルを参照する File オブジェクトです。
ディレクトリーからファイルを読み込み、内容を jms キューに送信します。 リンクのコピーリンクがクリップボードにコピーされました!
from("file://inputdir/").convertBodyTo(String.class).to("jms:test.queue")
from("file://inputdir/").convertBodyTo(String.class).to("jms:test.queue")
File エンドポイントは File オブジェクトが含まれる FileMessage をボディーとして送信します。これを JMS コンポーネントに直接送信すると、JMS メッセージには File オブジェクトのみが含まれますが、コンテンツは含まれません。File を String に変換することで、メッセージにはファイルの内容(おそらく必要なもの)が含まれます。
<route>
<from uri="file://inputdir/"/>
<convertBodyTo type="java.lang.String"/>
<to uri="jms:test.queue"/>
</route>
<route>
<from uri="file://inputdir/"/>
<convertBodyTo type="java.lang.String"/>
<to uri="jms:test.queue"/>
</route>
ファイルへの書き込み リンクのコピーリンクがクリップボードにコピーされました!
Exchange.FILE_NAME を使用してサブディレクトリーに書き込みます。 リンクのコピーリンクがクリップボードにコピーされました!
<route>
<from uri="bean:myBean"/>
<to uri="file:/rootDirectory"/>
</route>
<route>
<from uri="bean:myBean"/>
<to uri="file:/rootDirectory"/>
</route>
myBean をヘッダー Exchange.FILE_NAME を以下のような値に設定できます。
Exchange.FILE_NAME = hello.txt => /rootDirectory/hello.txt Exchange.FILE_NAME = foo/bye.txt => /rootDirectory/foo/bye.txt
Exchange.FILE_NAME = hello.txt => /rootDirectory/hello.txt
Exchange.FILE_NAME = foo/bye.txt => /rootDirectory/foo/bye.txt
一時ディレクトリーを使用した最終的な宛先へのファイルの書き込み リンクのコピーリンクがクリップボードにコピーされました!
/var/myapp/filesInProgress ディレクトリーに書き込まれ、データ転送が完了すると、アトミックで /var/myapp/finalDirectory ディレクトリーに移動します。
from("direct:start").
to("file:///var/myapp/finalDirectory?tempPrefix=/../filesInProgress/");
from("direct:start").
to("file:///var/myapp/finalDirectory?tempPrefix=/../filesInProgress/");
ファイル名の式の使用 リンクのコピーリンクがクリップボードにコピーされました!
from("file://inbox?move=backup/${date:now:yyyyMMdd}/${file:name}").to("...");
from("file://inbox?move=backup/${date:now:yyyyMMdd}/${file:name}").to("...");
同じファイルを複数回読み取るのを回避(べき等コンシューマー) リンクのコピーリンクがクリップボードにコピーされました!
idempotent=true オプションを設定することで有効にできます。
from("file://inbox?idempotent=true").to("...");
from("file://inbox?idempotent=true").to("...");
<route>
<from uri="file://inbox?idempotent=true&dempotentKey=${file:name}-${file:size}"/>
<to uri="bean:processInbox"/>
</route>
<route>
<from uri="file://inbox?idempotent=true&dempotentKey=${file:name}-${file:size}"/>
<to uri="bean:processInbox"/>
</route>
# 記号を使用して、このストアの独自の実装をプラグインでき ます。
DEBUG レベルでログを記録します。
DEBUG FileConsumer is idempotent and the file has been consumed before. Will skip this file: target\idempotent\report.txt
DEBUG FileConsumer is idempotent and the file has been consumed before. Will skip this file: target\idempotent\report.txt
ファイルベースのべき等リポジトリーの使用 リンクのコピーリンクがクリップボードにコピーされました!
org.apache.camel.processor.idempotent.FileIdempotentRepository を使用します。このリポジトリーは、ファイルリポジトリーを読み取らないために 1 つのレベルキャッシュを使用します。これは、file リポジトリーを使用して 1 レベルのキャッシュの内容を保存します。これにより、リポジトリーはサーバーの再起動後も維持されます。これは、起動時にファイルの内容を 1 レベルのキャッシュに読み込みます。ファイル構造は、キーを ファイルの別々の行に保存するため、非常に簡単です。デフォルトでは、ファイルストアのサイズ制限は 1mb で、ファイルが大きくなると、Apache Camel はファイルストアを切り捨て、1 番目のレベルのキャッシュを新しい空のファイルにフラッシュしてコンテンツを再ビルドします。
\# 記号を使用して idempotentRepository でリポジトリーを使用するようにファイルコンシューマーを定義し、レジストリー検索を示します。
JPA ベースのべき等リポジトリーの使用 リンクのコピーリンクがクリップボードにコピーされました!
org.apache.camel.processor.idempotent.jpa.MessageProcessed クラスをモデルとして使用する必要がある META-INF/persistence.xml に persistence-unit が必要です。
jpaTemplate を設定する必要があります。
idempotentRepository オプションと # 構文を使用して、ファイルコンシューマーエンドポイントで jpaStore Bean のみを参照する必要があります。
<route>
<from uri="file://inbox?idempotent=true&dempotentRepository=#jpaStore"/>
<to uri="bean:processInbox"/>
</route>
<route>
<from uri="file://inbox?idempotent=true&dempotentRepository=#jpaStore"/>
<to uri="bean:processInbox"/>
</route>
org.apache.camel.component.file.GenericFileFilter を使用するフィルター リンクのコピーリンクがクリップボードにコピーされました!
スキップ する独自のフィルターを構築します。
# 表記を使用)を参照するルートを設定できます。
ANT パスマッチャーを使用したフィルターリング リンクのコピーリンクがクリップボードにコピーされました!
?1 文字に一致します。*ゼロ以上の文字に一致します。**パス内の 0 個以上のディレクトリーに一致します。
Comparator を使用したソート リンクのコピーリンクがクリップボードにコピーされました!
java.util.Comparator でビルドを使用するこのストラテジーです。その後、このようなコンパレーターでエンドポイントを設定し、Apache Camel でファイルをソートしてから処理できます。
public class MyFileSorter implements Comparator<GenericFile> {
public int compare(GenericFile o1, GenericFile o2) {
return o1.getFileName().compareToIgnoreCase(o2.getFileName());
}
}
public class MyFileSorter implements Comparator<GenericFile> {
public int compare(GenericFile o1, GenericFile o2) {
return o1.getFileName().compareToIgnoreCase(o2.getFileName());
}
}
mySorter)を参照できます。
# を付けることで、レジストリー 内の Bean を参照できます。そのため、sorter=#mySorter を記述すると、Apache Camel に対して ID mySorter の Bean の Bean を検索するよう指示されます。
sortBy を使用したソート リンクのコピーリンクがクリップボードにコピーされました!
sortBy オプションは以下のように設定されます。
sortBy=group 1;group 2;group 3;...
sortBy=group 1;group 2;group 3;...
sortBy=file:name
sortBy=file:name
reverse: を付けることで順序を元に戻すことができるため、ソートは Z..A になります。
sortBy=reverse:file:name
sortBy=reverse:file:name
sortBy=file:length
sortBy=file:length
ignoreCase: を使用してケースを無視するように設定できます。したがって、ファイル名のソートを使用し、ケースを無視する場合は、以下を行います。
sortBy=ignoreCase:file:name
sortBy=ignoreCase:file:name
sortBy=reverse:ignoreCase:file:name
sortBy=reverse:ignoreCase:file:name
sortBy=file:modified
sortBy=file:modified
sortBy=file:modified;file:name
sortBy=file:modified;file:name
sortBy=date:file:yyyyMMdd;file:name
sortBy=date:file:yyyyMMdd;file:name
sortBy=date:file:yyyyMMdd;reverse:file:name
sortBy=date:file:yyyyMMdd;reverse:file:name
GenericFileProcessStrategy の使用 リンクのコピーリンクがクリップボードにコピーされました!
processStrategy オプションは、カスタムの GenericFileProcessStrategy を使用できます。これにより、独自の 開始、コミット、および ロールバック ロジックを実装できます。たとえば、システムが使用するフォルダーにファイルを書き込むことを前提とします。ただし、別の 準備完了 ファイルも書き込まれる前に、このファイルの使用を開始することはできません。
GenericFileProcessStrategy を実装することで、以下のように実装できます。
begin ()メソッドでは、特別な 準備 済みファイルが存在するかどうかをテストできます。begin メソッドはブール値を返し、ファイルを使用できるかどうかを示します。commit ()メソッドでは、実際のファイルを移動し、準備完了 ファイルを削除することもできます。
consumer.bridgeErrorHandlerconsumer.bridgeErrorHandler を使用する場合、インターセプター のOnCompletion は適用さ れません。Exchange は Camel Error Handler によって直接処理され、インターセプターなどの以前のアクションがCompletion のアクションを実行することを許可しません。
デバッグロギング リンクのコピーリンクがクリップボードにコピーされました!
第50章 flatpack リンクのコピーリンクがクリップボードにコピーされました!
Flatpack コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
pom.xml に以下の依存関係を追加する必要があります。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
flatpack:[delim|fixed]:flatPackConfig.pzmap.xml[?options]
flatpack:[delim|fixed]:flatPackConfig.pzmap.xml[?options]
flatpack:someName[?options]
flatpack:someName[?options]
?option=value&option=value&.. の形式で追加できます。
URI オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | デフォルト値 | 説明 |
|---|---|---|
delimiter
|
,
|
区切りファイルのデフォルトの文字区切り文字。 |
textQualifier
|
"
|
区切りファイルのテキスト修飾子。 |
ignoreFirstRecord
|
true
|
最初の行が区切られたファイル(列ヘッダー用)で無視されるかどうか。 |
splitRows
|
true
|
Apache Camel 1.5 では、コンポーネントは各行を 1 つずつ、またはコンテンツ全体を一度に処理できます。 |
allowShortLines
|
false
|
*Camel 2.9.3:* 行を予想よりも短くし、追加の文字を無視します。 |
ignoreExtraColumns
|
false
|
*Camel 2.9.3:* 行を予想よりも長くし、追加文字を無視します。 |
例 リンクのコピーリンクがクリップボードにコピーされました!
flatpack:fixed:foo.pzmap.xmlは、foo.pzmap.xmlファイル設定を使用して固定幅エンドポイントを作成します。flatpack:delim:bar.pzmap.xmlファイル設定を使用して、bar.pzmap.xmlファイル設定を使用して区切られたエンドポイントを作成します。flatpack:fooは、ファイル設定なしでfooという区切りエンドポイントを作成します。
メッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| ヘッダー | 説明 |
|---|---|
camelFlatpackCounter
|
現在の行インデックス。splitRows=false の場合、カウンターは行の合計数です。
|
メッセージボディー リンクのコピーリンクがクリップボードにコピーされました!
java.util.Map または java.util.List のコンバーターを持つ org.apache.camel.component.flatpack.DataSetList オブジェクトとして IN メッセージのデータを提供します。一度に 1 行を処理する場合は、通常 マップ が必要です(splitRows=true)。コンテンツ全体に List を使用します(splitRows=false)。リストの各要素は Map です。各 Map には、列名とそれに対応する値のキーが含まれます。
Map row = exchange.getIn().getBody(Map.class);
String firstName = row.get("FIRSTNAME");
Map row = exchange.getIn().getBody(Map.class);
String firstName = row.get("FIRSTNAME");
List として取得することもできます( splitRows=trueも同様です)。同じ例:
List data = exchange.getIn().getBody(List.class);
Map row = (Map)data.get(0);
String firstName = row.get("FIRSTNAME");
List data = exchange.getIn().getBody(List.class);
Map row = (Map)data.get(0);
String firstName = row.get("FIRSTNAME");
ヘッダーおよびトレイルレコード リンクのコピーリンクがクリップボードにコピーされました!
ヘッダーレコードのヘッダー(小文字でなければなりません)trailerレコードのトレイル(小文字でなければなりません)
エンドポイントの使用 リンクのコピーリンクがクリップボードにコピーされました!
マップ に変換することもできます。
第51章 FOP リンクのコピーリンクがクリップボードにコピーされました!
FOP コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
pom.xml に以下の依存関係を追加する必要があります。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
fop://outputFormat?[options]
fop://outputFormat?[options]
出力形式 リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 出力形式 | 説明 |
|---|---|---|
application/pdf
|
移植可能なドキュメント形式 | |
| PS |
application/postscript
|
Adobe Postscript |
| PCL |
application/x-pcl
|
プリンター制御言語 |
| PNG |
image/png
|
PNG イメージ |
| JPEG |
image/jpeg
|
JPEG イメージ |
| SVG |
image/svg+xml
|
スケーラブルなベクトルグラフ |
| XML |
application/X-fop-areatree
|
エリアツリー表現 |
| MIF |
application/mif
|
FrameMaker's MIF |
| RTF |
application/rtf
|
リッチテキスト形式 |
| TXT |
text/plain
|
テキスト |
エンドポイントオプション リンクのコピーリンクがクリップボードにコピーされました!
| name | デフォルト値 | description |
|---|---|---|
outputFormat
|
上記の表を参照してください。 | |
userConfigURL
|
none |
以下の 構造 を持つ設定ファイルの場所。Camel 2.12 以降では、ファイルはデフォルトでクラスパスから読み込まれます。file: または classpath: を接頭辞として使用し、ファイルまたはクラスパスからリソースを読み込むことができます。以前のリリースでは、ファイルは常にファイルシステムからロードされていました。
|
fopFactory
|
org.apache.fop.apps.FopFactory のカスタム設定またはカスタム実装を使用できます。
|
メッセージ操作 リンクのコピーリンクがクリップボードにコピーされました!
| name | デフォルト値 | description |
|---|---|---|
CamelFop.Output.Format
|
そのメッセージの出力形式を上書きします。 | |
CamelFop.Encrypt.userPassword
|
PDF ユーザーのパスワード | |
CamelFop.Encrypt.ownerPassword
|
PDF 所有者の乗車語 | |
CamelFop.Encrypt.allowPrint
|
true
|
PDF の印刷が可能 |
CamelFop.Encrypt.allowCopyContent
|
true
|
PDF の内容のコピーを許可します。 |
CamelFop.Encrypt.allowEditContent
|
true
|
PDF の内容を編集できます。 |
CamelFop.Encrypt.allowEditAnnotations
|
true
|
PDF のアノテーションを編集可能 |
CamelFop.Render.producer
|
Apache FOP | ドキュメントを生成するシステム/ソフトウェアのメタデータ要素 |
CamelFop.Render.creator
|
ドキュメントを作成したユーザーのメタデータ要素 | |
CamelFop.Render.creationDate
|
作成日 | |
CamelFop.Render.author
|
ドキュメントのコンテンツの作成 | |
CamelFop.Render.title
|
ドキュメントのタイトル | |
CamelFop.Render.subject
|
ドキュメントの主体 | |
CamelFop.Render.keywords
|
本書に適用されるキーワードのセット |
例 リンクのコピーリンクがクリップボードにコピーされました!
from("file:source/data/xml")
.to("xslt:xslt/template.xsl")
.to("fop:application/pdf")
.to("file:target/data");
from("file:source/data/xml")
.to("xslt:xslt/template.xsl")
.to("fop:application/pdf")
.to("file:target/data");
第52章 FreeMarker リンクのコピーリンクがクリップボードにコピーされました!
FreeMarker リンクのコピーリンクがクリップボードにコピーされました!
pom.xml に以下の依存関係を追加する必要があります。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
freemarker:templateName[?options]
freemarker:templateName[?options]
file://folder/myfile.ftl)に置き換えます。
?option=value&option=value&.. の形式で追加できます。
オプション リンクのコピーリンクがクリップボードにコピーされました!
| オプション | デフォルト | 説明 |
|---|---|---|
allowContextMapAll (producer)
|
false
|
コンテキストマップが前詳細へのアクセスを許可するかどうかを設定します。デフォルトでは、メッセージの本文とヘッダーにのみアクセスできます。このオプションは、現在の Exchange および CamelContext へのフルアクセスに対して有効にできます。これを行うと、CamelContext API の全機能へのアクセスが開かれるため、潜在的なセキュリティーリスクが発生します。
|
allowTemplateFromHeader (producer)
|
false
|
ヘッダーのリソーステンプレートの使用を許可するかどうか (デフォルトは false)。このオプションを有効にすると、セキュリティーの問題があります。たとえば、ヘッダーに信頼されていないコンテンツやユーザー派生コンテンツが含まれている場合、これは最終的にエンドアプリケーションの信頼性および完全性に影響を与える可能性があるため、このオプションは注意して使用してください。
|
contentCache
|
true
|
読み込み時のリソースコンテンツのキャッシュ。注記: Camel 2.9 でキャッシュされたリソースコンテンツは、エンドポイントの clearContentCache 操作を使用して JMX 経由でクリアできます。
|
encoding
|
null
|
リソースコンテンツの文字エンコーディング。 |
templateUpdateDelay
|
5
|
*Camel 2.9:* 読み込んだテンプレートリソースがキャッシュに留まる秒数。 |
FreeMarker コンテキスト リンクのコピーリンクがクリップボードにコピーされました!
)。Exchange は以下のように転送されます。
| キー | 値 |
|---|---|
exchange
|
Exchange 自体。
|
exchange.properties
|
Exchange プロパティー。
|
ヘッダー
|
In メッセージのヘッダー。 |
camelContext
|
Camel コンテキスト。 |
request
|
In メッセージ。 |
ボディー
|
In メッセージのボディー。 |
response
|
Out メッセージ(InOut メッセージ交換パターンにのみ有効)。 |
CamelFreemarkerDataModel を使用して、メッセージヘッダーにカスタム FreeMarker コンテキストを設定できます。
Map<String, Object> variableMap = new HashMap<String, Object>();
variableMap.put("headers", headersMap);
variableMap.put("body", "Monday");
variableMap.put("exchange", exchange);
exchange.getIn().setHeader("CamelFreemarkerDataModel", variableMap);
Map<String, Object> variableMap = new HashMap<String, Object>();
variableMap.put("headers", headersMap);
variableMap.put("body", "Monday");
variableMap.put("exchange", exchange);
exchange.getIn().setHeader("CamelFreemarkerDataModel", variableMap);
ホットリロード リンクのコピーリンクがクリップボードにコピーされました!
contentCache=false を設定すると、Apache Camel はリソースをキャッシュせず、ホットリロードが有効になります。このシナリオは開発中に使用できます。
動的テンプレート リンクのコピーリンクがクリップボードにコピーされました!
| ヘッダー | タイプ | 説明 | サポートバージョン |
|---|---|---|---|
FreemarkerConstants.FREEMARKER_RESOURCE
|
org.springframework.core.io.Resource
|
テンプレートリソース | <= 1.6.2, <= 2.1 |
FreemarkerConstants.FREEMARKER_RESOURCE_URI
|
String
|
設定されたエンドポイントの代わりに使用するテンプレートリソースの URI。 | >= 2.1 |
FreemarkerConstants.FREEMARKER_TEMPLATE
|
String
|
設定されたエンドポイントの代わりに使用するテンプレート。 | >= 2.1 |
サンプル リンクのコピーリンクがクリップボードにコピーされました!
from("activemq:My.Queue").
to("freemarker:com/acme/MyResponse.ftl");
from("activemq:My.Queue").
to("freemarker:com/acme/MyResponse.ftl");
JMSReplyTo ヘッダーがある場所)を形成するには、以下を実行します。
from("activemq:My.Queue").
to(ExchangePattern.InOut,"freemarker:com/acme/MyResponse.ftl").
to("activemq:Another.Queue");
from("activemq:My.Queue").
to(ExchangePattern.InOut,"freemarker:com/acme/MyResponse.ftl").
to("activemq:Another.Queue");
.ftl テンプレートをホットリロードする必要がある開発使用の場合):
from("activemq:My.Queue").
to(ExchangePattern.InOut,"freemarker:com/acme/MyResponse.ftl?contentCache=false").
to("activemq:Another.Queue");
from("activemq:My.Queue").
to(ExchangePattern.InOut,"freemarker:com/acme/MyResponse.ftl?contentCache=false").
to("activemq:Another.Queue");
from("activemq:My.Queue").
to(ExchangePattern.InOut,"freemarker:file://myfolder/MyResponse.ftl?contentCache=false").
to("activemq:Another.Queue");
from("activemq:My.Queue").
to(ExchangePattern.InOut,"freemarker:file://myfolder/MyResponse.ftl?contentCache=false").
to("activemq:Another.Queue");
from("direct:in").
setHeader(FreemarkerConstants.FREEMARKER_RESOURCE_URI).constant("path/to/my/template.ftl").
to("freemarker:dummy?allowTemplateFromHeader=true");
from("direct:in").
setHeader(FreemarkerConstants.FREEMARKER_RESOURCE_URI).constant("path/to/my/template.ftl").
to("freemarker:dummy?allowTemplateFromHeader=true");
allowTemplateFromHeader オプションを有効にすると、セキュリティーの問題があります。たとえば、ヘッダーに信頼できないコンテンツまたはユーザー派生コンテンツが含まれる場合、これは最終的に、エンドアプリケーションの確実性と整合性に及ぼす可能性があるため、このオプションを使用してください。
電子メールのサンプル リンクのコピーリンクがクリップボードにコピーされました!
第53章 FTP2 リンクのコピーリンクがクリップボードにコピーされました!
FTP/SFTP コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
directoryname から先頭のスラッシュをすべてトリミングすることにより、絶対パスを相対に変換します。WARN メッセージがログに出力されます。
Camel on EAP デプロイメント リンクのコピーリンクがクリップボードにコピーされました!
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
ftp://[username@]hostname[:port]/directoryname[?options] sftp://[username@]hostname[:port]/directoryname[?options] ftps://[username@]hostname[:port]/directoryname[?options]
ftp://[username@]hostname[:port]/directoryname[?options]
sftp://[username@]hostname[:port]/directoryname[?options]
ftps://[username@]hostname[:port]/directoryname[?options]
/inbox/usCamel 2.16 では、autoCreate オプションがサポートされます。コンシューマーが起動すると(ポーリングがスケジュールされる前)、指定されたディレクトリーが自動的に作成されます。autoCreate のデフォルト値は true です。
匿名 ログインが試行されます。ポート 番号が指定されていない場合、Apache Camel はプロトコルに従ってデフォルト値を提供します(ftp = 21、sftp = 22、ftps = 21)。
?option=value&option=value&.. の形式で追加できます。
URI オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | デフォルト値 | 説明 |
|---|---|---|
username
|
null
|
リモートファイル systen へのログインに使用するユーザー名を指定します。 |
password
|
null
|
リモートファイルシステムへのログインに使用するパスワードを指定します。 |
アカウント
|
null
|
Camel 2.15.2: リモート FTP サーバーへのログインに使用するアカウントを指定します(FTP および FTP Secure のみ)。 |
binary
|
false
|
ファイル転送モードを BINARY または ASCII で指定します。デフォルトは ASCII (false)です。
|
disconnect
|
false
|
Camel 2.2: 使用直後にリモート FTP サーバーから切断するかどうか。コンシューマーとプロデューサーの両方に使用できます。disconnect は、FTP サーバーへの現在の接続を切断するだけです。停止するコンシューマーがある場合は、代わりにコンシューマー/ルートを停止する必要があります。 |
localWorkDirectory
|
null
|
使用する場合、ローカルの作業ディレクトリーを使用して、リモートファイルのコンテンツをローカルファイルに直接保存し、コンテンツがメモリーに読み込まれないようにできます。これは、非常に大きなリモートファイルを使用している場合に、メモリーを節約するために役立ちます。詳細は、こちらを参照してください。 |
passiveMode
|
false
|
FTP のみ: パッシブモード接続を使用するかどうかを指定します。デフォルトはアクティブモード {false)です。
|
securityProtocol
|
TLS
|
FTPS のみ: 基礎となるセキュリティープロトコルを設定します。
TLS: Transport Layer Security SSL: Secure Sockets Layer の値を定義します。
|
disableSecureDataChannelDefaults
|
false
|
Camel 2.4: FTPS のみ: セキュアなデータ転送を使用する場合に execPbsz および execProt のデフォルト値の使用を無効にするかどうか。このオプションを true に設定するには、execPbsz オプションおよび execProt オプションを明示的に設定する必要があります。
|
ダウンロード
|
true
|
Camel 2.11: FTP コンシューマーがファイルをダウンロードするかどうか。このオプションを false に設定すると、メッセージボディーは null になりますが、コンシューマーはファイル名、ファイルサイズなどのファイルの詳細が含まれる Camel Exchange をトリガーします。ファイルがダウンロードされないだけです。
|
| streamDownload | false | Camel 2.11: コンシューマーが前もってファイル全体をダウンロードするか、デフォルトの動作では、インメモリーアレイではなくリモートリソースから InputStream エドを amel Exchange の本文として渡す必要があるかどうかは無視されます。ダウンロードが false r が localWorkDirectory の場合は無視されます。このオプションは大きなリモートファイルで作業する場合に便利です。 |
execProt
|
null
|
Camel 2.4: FTPS のみ: セキュアなデータチャネルのデフォルトが無効でない場合は、デフォルトでオプション
P を使用します。以下の値が使用できます。
|
execPbsz
|
null
|
Camel 2.4: FTPS のみ: このオプションは、セキュアなデータチャネルのバッファーサイズを指定します。useSecureDataChannel オプションが有効で、このオプションが明示的に設定されていない場合、値 0 が使用されます。
|
isImplicit
|
false
|
FTPS のみ - セキュリティーモードを設定します (implicit/explicit)。デフォルトは明示的です(false)。
|
knownHostsFile
|
null
|
SFTP のみ: known_hosts ファイルを設定して、SFTP エンドポイントがホストキーの検証を実行できるようにします。
|
knownHostsUri
|
null
|
SFTP のみ:Camel 2.11.1: known_hosts ファイル(デフォルトではクラスパスからロード)を設定し、SFTP エンドポイントがホストキーの検証を実行できるようにします。
|
keyPair
|
null
|
SFTP のみ:Camel 2.12.0: SSH 公開鍵認証用の Java KeyPair を設定し、DSA キーまたは RSA 鍵をサポートします。 |
privateKeyFile
|
null
|
SFTP のみ: SFTP エンドポイントが秘密鍵を検証できるように秘密鍵ファイルを設定します。 |
privateKeyUri
|
null
|
SFTP のみ:Camel 2.11.1: 秘密鍵ファイル(デフォルトではクラスパスからロードされる)を SFTP エンドポイントが秘密鍵の検証を実行できるように設定します。 |
privateKey
|
null
|
SFTP のみ:Camel 2.11.1: SFTP エンドポイントが秘密鍵を検証することができるように、秘密鍵を byte[] に設定します。 |
privateKeyFilePassphrase
|
null
|
SFTP のみ: 秘密鍵ファイルのパスフレーズを SFTP エンドポイントが秘密鍵の検証を実行できるように設定します。 |
privateKeyPassphrase
|
null
|
SFTP のみ:Camel 2.11.1: SFTP エンドポイントが秘密鍵の検証を実行できるように、秘密鍵ファイルのパスフレーズを設定します。 |
preferredAuthentications
|
null
|
SFTP のみ:Camel 2.10.7、2.11.2、2.12.0: SFTP エンドポイントが使用される優先認証を設定します。たとえば、password,publickey などです。指定しない場合は、JSCH のデフォルトのリストが使用されます。 |
暗号化
|
null
|
Camel 2.8.2、2.9: SFTP は、優先順に使用される暗号のコンマ区切りリストのみ を設定します。可能な暗号名は、JCraft JSCH で定義されています。aes128-ctr,aes128-cbc,3des-ctr,3des-cbc,blowfish-cbc,aes192-cbc,aes256-cbc,aes256-cbc などがあります。指定しない場合は、JSCH のデフォルトのリストが使用されます。 |
fastExistsCheck
|
false
|
Camel 2.8.2、2.9: このオプションを true に設定すると、camel-ftp はリストファイルを直接使用してファイルが存在するかどうかを確認します。一部の FTP サーバーは直接ファイルの一覧表示をサポートしない可能性があるため、オプションが false の場合、camel-ftp は古い方法を使用してディレクトリーを一覧表示し、ファイルが存在するかどうかを確認します。Camel 2.10.1 以降では、このオプションが readLock=changed に影響し、ファイル情報の更新に高速チェックを実行するかどうかを制御します。FTP サーバーに多くのファイルがある場合に、これを使用してプロセスを迅速化できます。
|
strictHostKeyChecking
|
いいえ
|
SFTP のみ:Camel 2.2: 厳密なホストキーチェックを使用するかどうかを設定します。使用できる値は no、yes、および ask です。Camel は人間の介入を想定して質問に回答できないため、使用は理にかなっています。注記: Camel 2.1 のデフォルトおよび以下では、が 求め られます。
|
maximumReconnectAttempts
|
3 | リモート FTP サーバーに接続しようとすると、Apache Camel の実行の最大再接続試行を指定します。この動作を無効にするには、0 を使用します。 |
reconnectDelay
|
1000 | Apache Camel が再接続を試みる前に待機する遅延(ミリ秒単位)。 |
connectTimeout
|
10000
|
Camel 2.4: 接続タイムアウト(ミリ秒単位)です。これは FTP/FTPS の ftpClient.connectTimeout の使用に対応します。SFTP では、接続の試行時にもこのオプションが使用されます。
|
soTimeout
|
30000
|
FTP および FTPS のみ:Camel 2.4: SocketOptions.SO_TIMEOUT の値はミリ秒単位です。
|
timeout
|
30000
|
FTP および FTPS のみ:Camel 2.4: データのタイムアウトはミリ秒単位です。これは FTP/FTPS の ftpClient.dataTimeout の使用に対応します。SFTP の場合、データタイムアウトはありません。
|
throwExceptionOnConnectFailed
|
false
|
Camel 2.5: 接続に成功し、ログインが確立できない場合に例外を出力するかどうか。これにより、カスタムの pollStrategy は例外に対応できます。たとえば、コンシューマーやのような機能を停止できます。
|
siteCommand
|
null
|
FTP および FTPS のみ:Camel 2.5: ログインに成功した後にサイトコマンドを実行する。複数のサイトコマンドは、改行文字(\n)を使用して区切ることができます。help site を使用して、FTP サーバーがサポートするサイトコマンドを確認します。
|
stepwise
|
true
|
ディレクトリーを使用する場合は、ディレクトリーツリーをトラバースするためにステップ単位のモードを使用するかどうかを指定します。Stepwise は、一度に 1 つのディレクトリーが CD になることを意味します。詳細は、「ディレクトリーのステップ的な変更」 を参照してください。 |
separator
|
UNIX
|
Camel 2.6: ファイルのアップロード時に使用するパスセパレーター char を変更します。auto は、変更せずに指定されたパスを使用することを意味します。UNIX は、UNIX スタイルのパス区切り文字を使用することを意味します。Windows は、Windows スタイルのパス区切り文字を使用することを意味します。
|
chmod
|
null
|
SFTP プロデューサーのみ: Camel 2.9: 保存したファイルに chmod を設定できます。たとえば、chmod=640 です。
|
圧縮
|
0
|
SFTP のみ: Camel 2.8.3/2.9: 圧縮を使用します。レベルを 1 から 10 に指定します。重要: 圧縮サポートのために必要な JSCH zlib JAR をクラスパスに手動で追加する必要があります。 |
receiveBufferSize
|
32768
|
FTP/FTPS のみ: Camel 2.15.1: ファイルのダウンロード用のバッファーサイズ。デフォルトのサイズは 32KB です。
|
ftpClient
|
null
|
FTP および FTPS のみ:Camel 2.1: カスタムの org.apache.commons.net.ftp.FTPClient インスタンスを使用できます。
|
ftpClientConfig
|
null
|
FTP および FTPS のみ:Camel 2.1: カスタムの org.apache.commons.net.ftp.FTPClientConfig インスタンスを使用できます。
|
serverAliveInterval
|
0
|
SFTP のみ:Camel 2.8 では、sftp セッションの serverAliveInterval を設定できます。 |
serverAliveCountMax
|
1
|
SFTP のみ:Camel 2.8 を使用すると、sftp セッションの serverAliveCountMax を設定できます。 |
ftpClient.trustStore.file
|
null
|
FTPS のみ: トラストストアファイルを設定し、FTPS クライアントが信頼された証明書を検索できるようにします。 |
ftpClient.trustStore.type
|
JKS
|
FTPS のみ:トラスト ストアのタイプを設定します。 |
ftpClient.trustStore.algorithm
|
SunX509
|
FTPS Only: トラストストアアルゴリズムを設定します。 |
ftpClient.trustStore.password
|
null
|
FTPS のみ:トラスト ストアのパスワードを設定します。 |
ftpClient.keyStore.file
|
null
|
FTPS のみ: FTPS クライアントがプライベート証明書を検索できるようにキーストアファイルを設定します。 |
ftpClient.keyStore.type
|
JKS
|
FTPS Only: キーストアタイプを設定します。 |
ftpClient.keyStore.algorithm
|
SunX509
|
FTPS Only: キーストアアルゴリズムを設定します。 |
ftpClient.keyStore.password
|
null
|
FTPS Only: キーストアのパスワードを設定します。 |
ftpClient.keyStore.keyPassword
|
null
|
FTPS Only: 秘密鍵のパスワードを設定します。 |
sslContextParameters
|
null
|
FTPS のみ:Camel 2.9: レジストリー の org.apache.camel.util.jsse.SSLContextParameters への 参照。 この参照は、ftpClient で設定された SSL 関連のオプションと、FtpsConfiguration に設定された securityProtocol (SSL、TLS など)を上書きします。 Security Guide および JSSE ユーティリティーの Configuring Transport Security for Camel Components を参照してください。
|
proxy
|
null
|
SFTP のみ:Camel 2.10.7、2.11.1: レジストリー で com.jcraft.jsch.Proxy への 参照。 このプロキシーは、ターゲット SFTP ホストからのメッセージの消費/送信に使用されます。
|
useList
|
true
|
FTP/FTPS のみ:Camel 2.12.1: コンシューマーが FTP LIST コマンドを使用してディレクトリーの一覧を取得し、どのファイルが存在するかを確認します。このオプションを false に設定すると、stepwise=false を設定し、fileName も固定名に設定する必要があります。そのため、コンシューマーは取得するファイルの名前を認識します。これを行うと、1 つのファイルのみを取得できます。詳細につていは以下をご覧ください
|
ignoreFileNotFoundOrPermissionError
|
false
|
Camel 2.12.1: ファイルの取得を試みたにも拘らず、存在せず(何らかの理由で)ファイルの取得を試みたときにコンシューマーが無視するかどうか、またはファイルパーミッションが不十分であるために失敗するかどうか。 |
sendNoop
|
true
|
Camel 2.16: プロデューサーのみ。FTP サーバーにファイルをアップロードする前に、noop コマンドを書き込み前チェックとして送信するかどうか。このオプションは、接続を検証し、サイレント再接続を有効にするためにデフォルトで有効になります。ただし、これで何らかの問題が発生した場合には、このオプションを無効にすることができます。 |
jschLoggingLevel
|
WARN
|
SFTP のみ:Camel 2.15.3/2.16: JSCH アクティビティーロギングに使用するログレベル。JSCH はデフォルトで詳細であるため(
INFO レベル)、しきい値はデフォルトで WARN に設定されます。
|
ftpClient. プロパティーを使用する場合、トラストストアはすべての証明書を受け入れます。信頼の選択証明書のみが必要な場合は、ftpClient.trustStore.xxx オプションを使用するか、カスタム ftpClient を設定してトラストストアを設定する必要があります。
sslContextParameters を使用する場合、トラストストアは提供される SSLContextParameters インスタンスの設定によって管理されます。
ftpClient. または ftpClientConfig. 接頭辞を使用すると、URI から ftpClientConfig および ftp ClientConfig に直接追加オプションを設定できます。
FTPClient の setDataTimeout を 30 秒に設定するには、以下を実行できます。
from("ftp://foo@myserver?password=secret&ftpClient.dataTimeout=30000")
.to("bean:foo");
from("ftp://foo@myserver?password=secret&ftpClient.dataTimeout=30000")
.to("bean:foo");
from("ftp://foo@myserver?password=secret&ftpClient.dataTimeout=30000&ftpClientConfig.serverLanguageCode=fr")
.to("bean:foo");
from("ftp://foo@myserver?password=secret&ftpClient.dataTimeout=30000&ftpClientConfig.serverLanguageCode=fr")
.to("bean:foo");
<bean id="myConfig" class="org.apache.commons.net.ftp.FTPClientConfig">
<property name="lenientFutureDates" value="true"/>
<property name="serverLanguageCode" value="fr"/>
</bean>
<bean id="myConfig" class="org.apache.commons.net.ftp.FTPClientConfig">
<property name="lenientFutureDates" value="true"/>
<property name="serverLanguageCode" value="fr"/>
</bean>
from("ftp://foo@myserver?password=secret&ftpClientConfig=#myConfig").to("bean:foo");
from("ftp://foo@myserver?password=secret&ftpClientConfig=#myConfig").to("bean:foo");
その他の URI オプション リンクのコピーリンクがクリップボードにコピーされました!
例 リンクのコピーリンクがクリップボードにコピーされました!
ftp://someone@someftpserver.com/public/upload/images/holiday2008?password=secret&binary=true ftp://someoneelse@someotherftpserver.co.uk:12049/reports/2008/password=secret&binary=false ftp://publicftpserver.com/download
ftp://someone@someftpserver.com/public/upload/images/holiday2008?password=secret&binary=true
ftp://someoneelse@someotherftpserver.co.uk:12049/reports/2008/password=secret&binary=false
ftp://publicftpserver.com/download
ファイルの使用時のデフォルト リンクのコピーリンクがクリップボードにコピーされました!
delete=true を使用してファイルを削除するか、move=.done を使用してファイルを非表示にしたサブディレクトリーに移動できます。
.camel サブディレクトリーに移動します。FTP コンシューマーに対して Camel はデフォルトでこれを行わないのは、ファイルを移動または削除するためにデフォルトでパーミッションがない可能性があるからです。
limitations リンクのコピーリンクがクリップボードにコピーされました!
メッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| ヘッダー | 説明 |
|---|---|
CamelFileName
|
エンドポイントに送信するときに出力メッセージに使用される出力ファイル名(エンドポイントディレクトリーに対する相対)を指定します。これがなく、式がない場合は、生成されたメッセージ ID がファイル名として使用されます。 |
CamelFileNameProduced
|
書き込まれた出力ファイルのパス名。このヘッダーは Apache Camel によって自動的に設定されます。 |
CamelFileBatchIndex
|
このバッチで使用されるファイルの合計数からの現在のインデックス。 |
CamelFileBatchSize
|
このバッチで消費されるファイルの合計数。 |
CamelFileHost
|
リモートホスト名。 |
CamelFileLocalWorkPath
|
ローカルの作業ディレクトリーが使用されている場合は、ローカルのワークファイルへのパス。 |
Message を強化します。
| ヘッダー | 説明 |
|---|---|
CamelFtpReplyCode
|
Camel 2.11.1: FTP クライアントの応答コード(タイプは整数) |
CamelFtpReplyString
|
Camel 2.11.1: FTP クライアントの応答文字列 |
タイムアウトについて リンクのコピーリンクがクリップボードにコピーされました!
connectTimeout オプションを使用してタイムアウトをミリ秒単位で設定し、ネットワーク接続を確立できます。FTP/FTPS で個別の soTimeout を設定することもできます。これは ftpClient.soTimeout の使用に対応します。SFTP は connectTimeout を soTimeout として自動的に使用することに注意してください。timeout オプションは、ftpClient.dataTimeout 値に対応するデータタイムアウトとして FTP/FTSP にのみ適用されます。すべてのタイムアウト値はミリ秒単位です。
ローカルワークディレクトリーの使用 リンクのコピーリンクがクリップボードにコピーされました!
FileOutputStream を使用してローカルファイルに直接ストリーミングされるため、リモートファイルの内容全体がメモリーに読み取られなくなります。
.inprogress を拡張子とし、リモートファイルと同じ名前のローカルファイルに保存します。その後、ファイルの名前が変更され、.inprogress 接尾辞が削除されます。最後に、エクスチェンジ が完了すると、ローカルファイルが削除されます。
from("ftp://someone@someserver.com?password=secret&localWorkDirectory=/tmp").to("file://inbox");
from("ftp://someone@someserver.com?password=secret&localWorkDirectory=/tmp").to("file://inbox");
java.io.File ハンドルが エクスチェンジ ボディーとして使用されます。ファイルプロデューサーはこのファクトを活用し、ワークファイル java.io.File ハンドルで直接動作し、java.io.File.rename をターゲットファイル名に対して実行できます。Apache Camel はローカルのワークファイルを認識しているため、作業ファイルはいつでも削除されることが意図されているため、ファイルコピーの代わりに名前変更を最適化および使用できます。
ディレクトリーのステップ的な変更 リンクのコピーリンクがクリップボードにコピーされました!
- stepwise
- 非ステップ(stepwise)
/ として報告される場合にのみ機能します。
/
/one
/one/two
/one/two/sub-a
/one/two/sub-b
/
/one
/one/two
/one/two/sub-a
/one/two/sub-b
sub-a (a.txt)と sub-b (b.txt)の各フォルダーにファイルがあります。
stepwise=true (デフォルトモード)の使用 リンクのコピーリンクがクリップボードにコピーされました!
stepwise=false の使用 リンクのコピーリンクがクリップボードにコピーされました!
サンプル リンクのコピーリンクがクリップボードにコピーされました!
<route>
<from uri="ftp://scott@localhost/public/reports?password=tiger&inary=true&elay=60000"/>
<to uri="file://target/test-reports"/>
</route>
<route>
<from uri="ftp://scott@localhost/public/reports?password=tiger&inary=true&elay=60000"/>
<to uri="file://target/test-reports"/>
</route>
ルートによってトリガーされるリモート FTP サーバーの使用 リンクのコピーリンクがクリップボードにコピーされました!
from("seda:start")
// define the file name so that only a single file is polled and deleted once retrieved
.pollEnrich("ftp://admin@localhost:21/getme?password=admin&binary=false&fileName=myFile.txt&delete=true")
.to("mock:result");
from("seda:start")
// define the file name so that only a single file is polled and deleted once retrieved
.pollEnrich("ftp://admin@localhost:21/getme?password=admin&binary=false&fileName=myFile.txt&delete=true")
.to("mock:result");
リモート FTPS サーバー(暗黙的な SSL)およびクライアント認証の使用 リンクのコピーリンクがクリップボードにコピーされました!
リモート FTPS サーバー(explicit TLS)およびカスタムトラストストア設定の使用 リンクのコピーリンクがクリップボードにコピーされました!
from("ftps://admin@localhost:2222/public/camel?password=admin&ftpClient.trustStore.file=./src/test/resources/server.jks&ftpClient.trustStore.password=password")
.to("bean:foo");
from("ftps://admin@localhost:2222/public/camel?password=admin&ftpClient.trustStore.file=./src/test/resources/server.jks&ftpClient.trustStore.password=password")
.to("bean:foo");
org.apache.camel.component.file.GenericFileFilter を使用するフィルター リンクのコピーリンクがクリップボードにコピーされました!
org.apache.camel.component.file.GenericFileFilter インターフェイスを実装してフィルターストラテジーを定義します。次に、フィルターでエンドポイントを設定し、特定のファイルをスキップできます。
report で始まるファイル名のファイルのみを許可するフィルターを定義します。
# 表記を使用)を参照するルートを設定できます。
ANT パスマッチャーを使用したフィルターリング リンクのコピーリンクがクリップボードにコピーされました!
?1 文字に一致します。*ゼロ以上の文字に一致します。**パス内の 0 個以上のディレクトリーに一致します。
SFTP でのプロキシーの使用 リンクのコピーリンクがクリップボードにコピーされました!
com.jcraft.jsch.Proxy のドキュメントを参照してください。
推奨される SFTP 認証方法の設定 リンクのコピーリンクがクリップボードにコピーされました!
sftp コンポーネントが使用する認証方法の一覧を明示的に指定する場合は、preferredAuthentications オプションを使用します。たとえば、Camel が秘密鍵/パブリック SSH 鍵で認証を試み、公開鍵が利用できない場合にユーザー/パスワード認証にフォールバックします。以下のルート設定を使用します。
from("sftp://localhost:9999/root?username=admin&password=admin&preferredAuthentications=publickey,password")
.to("bean:processFile");
from("sftp://localhost:9999/root?username=admin&password=admin&preferredAuthentications=publickey,password")
.to("bean:processFile");
固定名を使用した単一ファイルの使用 リンクのコピーリンクがクリップボードにコピーされました!
fileName=myFileName.txt を使用して、ダウンロードするファイルの名前を Camel に指示できます。デフォルトでは、コンシューマーは FTP LIST コマンドを実行してディレクトリーの一覧を実行し、fileName オプションに基づいてこれらのファイルをフィルターリングします。このユースケースでは、useList=false を設定してディレクトリー一覧をオフにすることが推奨されます。たとえば、FTP サーバーへのログインに使用されるユーザーアカウントには、FTP LIST コマンドを実行する権限がない場合があります。そのため、useList=false を使用してこれをオフにしてから、fileName=myFileName.txt でダウンロードするファイルの固定名を指定します。その後、FTP コンシューマーはファイルをダウンロードできます。何らかの理由で ファイルが存在しない場合は、Camel はデフォルトで例外を出力し、ignoreFileNotFoundOrPermissionError=true を設定してこれを無視します。
from("ftp://admin@localhost:21/nolist/?password=admin&stepwise=false&useList=false&ignoreFileNotFoundOrPermissionError=true&fileName=report.txt&delete=true")
.to("activemq:queue:report");
from("ftp://admin@localhost:21/nolist/?password=admin&stepwise=false&useList=false&ignoreFileNotFoundOrPermissionError=true&fileName=report.txt&delete=true")
.to("activemq:queue:report");
ConsumerTemplate で使用することもできます。たとえば、単一のファイル(存在する場合)をダウンロードし、ファイルの内容を String タイプとして取得するには、以下を実行します。
String data = template.retrieveBodyNoWait("ftp://admin@localhost:21/nolist/?password=admin&stepwise=false&useList=false&ignoreFileNotFoundOrPermissionError=true&fileName=report.txt&delete=true", String.class);
String data = template.retrieveBodyNoWait("ftp://admin@localhost:21/nolist/?password=admin&stepwise=false&useList=false&ignoreFileNotFoundOrPermissionError=true&fileName=report.txt&delete=true", String.class);
デバッグロギング リンクのコピーリンクがクリップボードにコピーされました!
第54章 GAE リンクのコピーリンクがクリップボードにコピーされました!
54.1. GAE コンポーネントの概要 リンクのコピーリンクがクリップボードにコピーされました!
Google App Engine の Apache Camel コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
- Apache Camel on GAE を使用するためのスタート地点は、Google App Engine 上の Camel のチュートリアルです。
- OAuth チュートリアル は、Web アプリケーションで OAuth を実装する方法を示しています。
camel-gae プロジェクトの一部で、GAE の クラウドコンピューティングサービス への接続を提供します。これにより、Apache Camel インターフェイスを介してアプリケーションが GAE クラウドコンピューティング環境にアクセスできるようになります。他のクラウドコンピューティング環境のこのパターンに従うと、Apache Camel アプリケーションをあるクラウドプロバイダーから別のクラウドコンピューティングプロバイダーに移植しやすくなります。以下の表は、Google App Engine によって提供されるクラウドコンピューティングサービスとサポートする Apache Camel コンポーネントを示しています。各コンポーネントのドキュメントは、Camel Component 列のリンクに従って表示されます。
| GAE サービス | Camel コンポーネント | コンポーネントの説明 |
|---|---|---|
| URL フェッチサービス | ghttp | GAE URL フェッチサービスへの接続を提供しますが、サーブレットからメッセージを受信する場合にも使用できます。 |
| タスクキューサービス | gtask | タスクキューをメッセージキューとして使用して、GAE での非同期メッセージ処理をサポートします。 |
| メールサービス | gmail | GAE メールサービスを介したメールの送信をサポートします。メールの受信はまだサポートされていませんが、後で追加されます。 |
| memcache サービス | サポートされていません。 | |
| XMPP サービス | サポートされていません。 | |
| イメージサービス | サポートされていません。 | |
| データストアサービス | サポートされていません。 | |
| Accounts サービス | gauth glogin | これらのコンポーネントは、認証および承認のために Google Accounts API と対話します。Google アカウントは Google App Engine に固有のものではありませんが、セキュリティーを実装するために GAE アプリケーションによって使用されます。gauth コンポーネントは、Google 固有の OAuth コンシューマーを実装するために Web アプリケーションによって使用されます。このコンポーネントは、GAE 以外の Web アプリケーションを有効にするためにも使用できます。glogin コンポーネントは、GAE アプリケーションにプログラムによるログインのために Java クライアント(GAE 外)によって使用されます。GAE アプリケーションを不正アクセスから保護する方法は、セキュリティー ページを参照してください。 |
Camel コンテキスト リンクのコピーリンクがクリップボードにコピーされました!
SpringCamelContext の設定は、Camel 2.1 以降のバージョンによって異なります。この問題は、http://camel.apache.org/schema/spring の Camel 固有の Spring 設定 XML スキーマを使用するには JAXB が必要で、Camel 2.1 は JAXB をサポートしない Google App Engine SDK バージョンに依存することです。この制限は、Camel 2.2 以降から削除されました。
javax.management パッケージは App Engine JRE のホワイトリストに含まれていないため、JMX は必ず無効にする必要があります。
Apache Camel 2.1 リンクのコピーリンクがクリップボードにコピーされました!
camel-gae 2.1 には、以下の CamelContext 実装が同梱されています。
org.apache.camel.component.gae.context.GaeDefaultCamelContext(org.apache.camel.impl.DefaultCamelContextの拡張)org.apache.camel.component.gae.context.GaeSpringCamelContext(org.apache.camel.spring.SpringCamelContextを拡張)
GaeSpringCamelContext は、以下の例のようにルートビルダーを追加するセッターメソッドを追加で提供します。
GaeSpringCamelContext の routeBuilders プロパティーを使用します。この方法では、JAXB を必要とせずに SpringCamelContext を GAE に設定できます。
Apache Camel 2.2 リンクのコピーリンクがクリップボードにコピーされました!
SpringCamelContext を設定するために http://camel.apache.org/schema/spring namespace を使用できますが、JMX を無効にする必要があります。以下は例です。
web.xml リンクのコピーリンクがクリップボードにコピーされました!
camel-servlet から CamelHttpTransportServlet を使用する必要があります。以下の例は、Spring アプリケーションコンテキスト XML ファイルとともにこのサーブレットを設定する方法を示しています。
contextConfigLocation init パラメーターによって指定されます。appctx.xml ファイルはクラスパス上にある必要があります。サーブレットマッピングは、Google App Engine にデプロイする際に、http://<appname>.appspot.com/camel/... で Apache Camel アプリケーションにアクセスできるようにします。< appname > は実際の GAE アプリケーション名に置き換えます。2 つ目のサーブレットマッピングは、Web フック を介してバックグラウンド処理のためにタスクキューサービスによって内部的に使用されます。このマッピングは gtask コンポーネントに関連し、詳細に説明されています。
54.2. gauth リンクのコピーリンクがクリップボードにコピーされました!
gauth コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
gauth コンポーネントは、Google 固有の OAuth コンシューマーを実装するために Web アプリケーションによって使用されます。他の OAuth プロバイダーもサポートするように、後で拡張されます。このコンポーネントは Google App Engine (GAE)の Camel コンポーネントに属していますが、OAuth-enable 非 GAE Web アプリケーションにも使用することができます。Google の OAuth 実装の詳細については、Google OAuth API リファレンス を参照してください。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
gauth://name[?options]
gauth://name[?options]
名 は、を 承認 または アップグレード できます。承認 エンドポイントは、Google から承認されていないリクエストトークンを取得し、ユーザーを承認ページにリダイレクトするために使用されます。upgrade エンドポイントは、Google から OAuth コールバックを処理し、承認されたリクエストトークンを有効期限の長いアクセストークンにアップグレードするために使用されます。例については、使用方法のセクション を参照してください。
オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | デフォルト値 | 必須 | 説明 |
|---|---|---|---|
callback
|
null
|
True ( GAuthAuthorizeBinding.GAUTH_CALLBACK メッセージヘッダーで設定することもできます)
|
アクセスの許可または拒否後にユーザーをリダイレクトする URL。 |
scope
|
null
|
true ( GAuthAuthorizeBinding.GAUTH_SCOPE メッセージヘッダーで設定することもできます)
|
アクセスするサービスを識別する URL。スコープは各 Google サービスによって定義されます。正しい値については、サービスのドキュメントを参照してください。複数のスコープを指定するには、それぞれをコンマで区切って一覧表示します。例: http://www.google.com/calendar/feeds/
|
consumerKey
|
null
|
True ( コンポーネントレベルでも設定できます)。 |
Web アプリケーションを識別するドメイン。これは、アプリケーションを Google に登録する際に使用されるドメインです。例: camelcloud.appspot.com登録されていないアプリケーションでは、匿名 を使用します。
|
consumerSecret
|
null
|
consumerSecret または keyLoaderRef のいずれかが必要です(または、コンポーネントレベルの で設定できます)。
|
Web アプリケーションのコンシューマーシークレット。コンシューマーシークレットは、アプリケーションを Google に登録する際に生成されます。HMAC-SHA1 署名方式を使用する場合は、これが必要です。登録されていないアプリケーションでは、匿名 を使用します。
|
keyLoaderRef
|
null
|
consumerSecret または keyLoaderRef のいずれかが必要です(代わりに コンポーネントレベルの に設定できます)。
|
レジストリー内の秘密鍵ローダーへの参照。camel-gae の一部は 2 つの主要なローダーです。PKCS#8 ファイルから秘密鍵を読み込む GAuthPk8Loader と、Java キーストアから秘密鍵を読み込む GAuthJksLoader です。これは、RSA-SHA1 署名メソッドを使用する場合は必要になります。これらのクラスは org.apache.camel.component.gae.auth パッケージで定義されます。
|
authorizeBindingRef
|
GAuthAuthorizeBindingへの参照
|
false |
エクスチェンジ が GoogleOAuthParameters にバインドされる方法をカスタマイズするための OutboundBinding<GAuthEndpoint, GoogleOAuthParameters, GoogleOAuthParameters > への参照。このバインディングは、teh 承認フェーズに使用されます。ほとんどのアプリケーションはデフォルト値を変更しません。
|
upgradeBindingRef
|
GAuthAuthorizeBindingへの参照
|
false |
レジストリーでの OutboundBinding<GAuthEndpoint、GoogleOAuthParameters、GoogleOAuthParameters > への参照。エクスチェンジ が GoogleOAuthParameters にバインドされる方法をカスタマイズするためのものです。このバインディングは、teh トークンのアップグレードフェーズに使用されます。ほとんどのアプリケーションはデフォルト値を変更しません。
|
メッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | タイプ | エンドポイント | メッセージ | 説明 |
|---|---|---|---|---|
GAuthAuthorizeBinding.GAUTH_CALLBACK
|
文字列
|
gauth:authorize
|
in |
コールバック オプションを上書きします。
|
GAuthAuthorizeBinding.GAUTH_SCOPE
|
文字列
|
gauth:authorize
|
in |
scope オプションを上書きします。
|
GAuthUpgradeBinding.GAUTH_ACCESS_TOKEN
|
文字列
|
gauth:upgrade
|
out | 有効期間の長いアクセストークンが含まれています。このトークンは、アプリケーションによってユーザーのコンテキストに保存する必要があります。 |
GAuthUpgradeBinding.GAUTH_ACCESS_TOKEN_SECRET
|
文字列
|
gauth:upgrade
|
out | アクセストークンのシークレットが含まれます。このトークンシークレットは、アプリケーションによってユーザーのコンテキストに保存する必要があります。 |
メッセージボディー リンクのコピーリンクがクリップボードにコピーされました!
gauth コンポーネントはメッセージの本文を読み書きしません。
コンポーネントの設定 リンクのコピーリンクがクリップボードにコピーされました!
consumerKey、consumerSecret、keyLoader などの一部のエンドポイントオプションは、通常 gauth:authorize および gauth:upgrade エンドポイントで同じ値に設定されます。gauth コンポーネントは、コンポーネントレベルでそれらを設定できるようにします。これらの設定は gauth エンドポイントによって継承され、エンドポイント URI で冗長的に設定する必要はありません。以下は、いくつかの設定例になります。
使用方法 リンクのコピーリンクがクリップボードにコピーされました!
gauth.example.org で実行されていることを前提としています。
http://gauth.example.org/authorize に GET リクエストを送信することでトリガーされます。その後、ユーザーは Google 承認ページにリダイレクトされます。このページへのアクセスを許可した後、Google はユーザーをコールバックを処理する Web アプリケーションにリダイレクトすると、最後に Google から有効期限の長いアクセストークンを取得します。
jetty コンポーネントの代わりにサーブレットコンポーネントを使用して、既存の サーブレット コンテナーのリソースを使用することもできます。
- アプリケーションは、現在のユーザーのコンテキストでアクセストークンを保存する必要があります。ユーザーが次回ログインする場合、OAuth の dance を再度実行せずに、アクセストークンをデータベースから直接読み込むことができます。
- その後、アクセストークンを使用して、ユーザーの代わりに Google カレンダー API などの Google サービスへのアクセスを取得します。Java アプリケーションは多くの場合、GData Java ライブラリー を使用する可能性が高くなります。ユーザーのカレンダーフィードを読み取るために GData Java ライブラリーでアクセストークンを使用する方法の 例 は、以下を参照してください。
- ユーザーは、Google Accounts ページからアクセストークンをいつでも取り消すことができます。この場合、対応する Google サービスにアクセスすると、承認例外が発生します。Web アプリケーションは、保存されたアクセストークンを削除し、別のトークンを作成するためにユーザーを Google 承認ページにリダイレクトする必要があります。
GAE の例 リンクのコピーリンクがクリップボードにコピーされました!
camelcloud.appspot.com であるとすると、設定は以下のようになります。ここでは、ghttp コンポーネントは、jetty コンポーネントの代わりに HTTP (S)要求を処理するために使用されます。
アクセストークンの使用 リンクのコピーリンクがクリップボードにコピーされました!
stdout に書き込みます。
54.3. ghttp リンクのコピーリンクがクリップボードにコピーされました!
ghttp コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
ghttp コンポーネントは、Google App Engine (GAE)の Camel コンポーネントに提供します。GAE URL フェッチサービス への接続を提供しますが、サーブレットからメッセージを受信するためにも使用できます(GAE で HTTP リクエストを受信する唯一の方法)。これは、Servlet コンポーネント を拡張することで実現されます。そのため、ghttp URI 形式およびオプションは、コンシューマー側の(からの)およびプロデューサー側の(から)とは異なります。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
| 形式 | コンテキスト | Comment |
|---|---|---|
ghttp:///path[?options]
|
コンシューマー | Servlet コンポーネントも参照してください。 |
ghttp://hostname[:port][/path][?options] ghttps://hostname[:port][/path][?options]
|
プロデューサー | Http コンポーネントも参照してください。 |
オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | デフォルト値 | コンテキスト | 説明 |
|---|---|---|---|
bridgeEndpoint
|
true
|
プロデューサー |
true に設定すると、Exchange.HTTP_URI ヘッダーは無視されます。Exchange.HTTP_URI ヘッダーでデフォルトのエンドポイント URI を上書きするには、このオプションを false に設定します。
|
throwExceptionOnFailure
|
true
|
プロデューサー |
応答コードが >= 400 の場合は、org.apache.camel.component.gae.http を出力します。例外の出力を無効にするには、このオプションを false に設定します。
|
inboundBindingRef
|
GHttpBindingへの参照
|
コンシューマー |
エクスチェンジ のサーブレット API へのバインディングをカスタマイズするための 、レジストリー内の InboundBinding<GHttpEndpoint、HttpServletRequest、HttpServletResponse > への参照。参照バインディングは、org.apache.camel.component.http.HttpBinding への後プロセッサーとして使用されます。
|
outboundBindingRef
|
GHttpBindingへの参照
|
プロデューサー |
エクスチェンジ の URLFetchService へのバインディングをカスタマイズするための Registry の OutboundBinding<GHttpEndpoint, HTTPRequest, HTTPResponse > への参照。
|
メッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | タイプ | 説明 |
|---|---|---|
Exchange.CONTENT_TYPE
|
文字列
|
HTTP コンテンツタイプ。は、in および out メッセージの両方で設定され、text/html などのコンテンツタイプを提供します。
|
Exchange.CONTENT_ENCODING
|
文字列
|
HTTP コンテンツエンコーディング。は、gzip などのコンテンツエンコーディングを提供するために in および out メッセージの両方に設定されます。
|
Exchange.HTTP_METHOD
|
文字列
|
実行する HTTP メソッド。GET、POST、PUT、DELETE のいずれか。設定されていない場合は、メッセージのボディーが null でない場合は POST が使用され、それ以外の場合はGET が使用されます。
|
Exchange.HTTP_QUERY
|
文字列
|
エンドポイント URI のクエリー部分または Exchange.HTTP_URI のクエリー部分(定義されている場合)を上書きします。クエリー文字列はデコードされた形式である必要があります。
|
Exchange.HTTP_URI
|
文字列
|
bridgeEndpoint オプションが false に設定されている場合には、デフォルトのエンドポイント URI を上書きします。URI 文字列はデコード形式である必要があります。
|
Exchange.RESPONSE_CODE
|
int
|
URL からの HTTP 応答コードは、サービス応答をフェッチします。 |
メッセージボディー リンクのコピーリンクがクリップボードにコピーされました!
byte[] に変換されます。out メッセージ本文は InputStream として利用できます。リポジトリーサイズが 1 メガバイトを超える場合、URL フェッチサービスによって ResponseTooLargeException が出力されます( クォータおよび制限を参照)。
メッセージの受信 リンクのコピーリンクがクリップボードにコピーされました!
ghttp コンポーネント経由でメッセージを受信するには、CamelHttpTransportServlet を設定し、アプリケーションの web.xml でマッピングする必要があります( 「web.xml」を参照してください)。たとえば、http://<appname>.appspot.com/camel/* または http://localhost/camel/* (ローカル開発サーバーを使用する場合)でターゲットとする要求を処理するには、以下のサーブレットマッピングを定義する必要があります。
from("ghttp:///greeting").transform().constant("Hello")
from("ghttp:///greeting").transform().constant("Hello")
http://<appname>.appspot.com/camel/greeting でターゲットとなる要求を処理します。この例では、リクエストボディーは無視され、応答ボディーが Hello に設定されています。http://<appname>.appspot.com/camel/greeting/* でターゲットとする要求は、デフォルトでは処理されません。これには、オプション matchOnUriPrefix を true に設定する必要があります。
from("ghttp:///greeting?matchOnUriPrefix=true").transform().constant("Hello")
from("ghttp:///greeting?matchOnUriPrefix=true").transform().constant("Hello")
メッセージの送信 リンクのコピーリンクがクリップボードにコピーされました!
ghttp コンポーネントは URL フェッチサービス を使用します。たとえば、Apache Camel のホームページは、プロデューサー側で以下のエンドポイント定義で取得できます。
from(...)
...
.to("ghttp://camel.apache.org")
...
from(...)
...
.to("ghttp://camel.apache.org")
...
Exchange.HTTP_METHOD メッセージヘッダーまたはインメッセージの本文の存在によって異なります( null の場合はGET、POST の場合は POST)。GAE アプリケーションを介した Camel ホームページの取得は、
from("ghttp:///home")
.to("ghttp://camel.apache.org")
from("ghttp:///home")
.to("ghttp://camel.apache.org")
GET リクエストを http://<appname>.appspot.com/camel/home に送信すると、Camel ホームページが返されます。外部サービスとの HTTPS ベースの通信は、ghttps スキームで有効にできます。
from(...)
...
.to("ghttps://svn.apache.org/repos/asf/camel/trunk/")
...
from(...)
...
.to("ghttps://svn.apache.org/repos/asf/camel/trunk/")
...
Dependencies リンクのコピーリンクがクリップボードにコピーされました!
pom.xml に追加する必要があります。
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-gae</artifactId>
<version>${camel-version}</version>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-gae</artifactId>
<version>${camel-version}</version>
</dependency>
${camel-version} は、実際のバージョンの Apache Camel (2.1.0 以降)に置き換える必要があります。
54.4. glogin リンクのコピーリンクがクリップボードにコピーされました!
glogin コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
glogin コンポーネントは、GAE アプリケーションにプログラムによるログインを行うために、Google App Engine (GAE)以外の Apache Camel アプリケーションによって使用されます。これは、54章GAE の一部です。セキュリティー対応の GAE アプリケーション は通常、ユーザーをログインページにリダイレクトします。認証用のユーザー名とパスワードを送信すると、ユーザーはアプリケーションにリダイレクトされます。これは、クライアントがブラウザーであるアプリケーションで適切に機能します。その他のすべてのアプリケーションでは、ログインプロセスをプログラムで行う必要があります。プログラムによるログインに 必要なすべての手順 は、glogin コンポーネントによって実装されます。これらは以下のとおりです。
- ClientLogin API 経由で Google アカウント から認証トークンを取得します。
- Google App Engine のログイン API から承認クッキーを取得します。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
glogin://hostname[:port][?options]
glogin://hostname[:port][?options]
オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | デフォルト値 | 必須 | 説明 |
|---|---|---|---|
clientName
|
apache-camel-2.x
|
false |
< organization>\-<appname>\-<version> の形式が推奨されるクライアント名 (必須ではありません)。
|
userName
|
null
|
true ( GLoginBinding.GLOGIN_USER_NAME メッセージヘッダーで設定できます)
|
ログインユーザー名(メールアドレス)。 |
password
|
null
|
true ( GLoginBinding.GLOGIN_PASSWORD メッセージヘッダーで設定することもできます)
|
ログインパスワード。 |
devMode
|
false
|
false |
true に設定すると、開発サーバーへのログインが試行されます。
|
devAdmin
|
false
|
false |
true に設定すると、admin ロールで開発サーバーへのログインが試行されます。
|
メッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | タイプ | メッセージ | 説明 |
|---|---|---|---|
GLoginBinding.GLOGIN_HOST_NAME
|
文字列
|
in | エンドポイント URI で定義されたホスト名を上書きします。 |
GLoginBinding.GLOGIN_USER_NAME
|
文字列
|
in |
userName オプションを上書きします。
|
GLoginBinding.GLOGIN_PASSWORD
|
文字列
|
in |
パスワード オプションを上書きします。
|
GLoginBinding.GLOGIN_TOKEN
|
文字列
|
out | Google アカウント から取得した認証トークンが含まれます。開発サーバーにログインしても、このヘッダーは設定されません。 |
GLoginBinding.GLOGIN_COOKIE
|
文字列
|
out | Google App Engine (または開発サーバー)から取得したアプリケーション固有の承認クッキーが含まれます。 |
メッセージボディー リンクのコピーリンクがクリップボードにコピーされました!
glogin コンポーネントはメッセージの本文を読み書きしません。
使用方法 リンクのコピーリンクがクリップボードにコピーされました!
ahlogincookie=test@example.org:false:11223191102230730701;Path=/
ahlogincookie=test@example.org:false:11223191102230730701;Path=/
ACSID=AJKiYcE...XxhH9P_jR_V3; expires=Sun, 07-Feb-2010 15:14:51 GMT; path=/
ACSID=AJKiYcE...XxhH9P_jR_V3; expires=Sun, 07-Feb-2010 15:14:51 GMT; path=/
54.5. gmail リンクのコピーリンクがクリップボードにコピーされました!
Gmail コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
gmail コンポーネントは、Google App Engine (GAE)の Camel コンポーネントに提供します。GAE メール サービス を介したメールの送信をサポートします。メールの受信はまだサポートされていませんが、後で追加されます。現在、アプリケーション管理者がメールを送信できる Google アカウントのみ。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
gmail://user@gmail.com[?options] gmail://user@googlemail.com[?options]
gmail://user@gmail.com[?options]
gmail://user@googlemail.com[?options]
オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | デフォルト値 | コンテキスト | 説明 |
|---|---|---|---|
上記を以下のように変更します。
|
null
|
プロデューサー | メールの to-receiver。これは、単一のレシーバーまたはコンマ区切りの受信側の一覧にすることができます。 |
cc
|
null
|
プロデューサー | メールの cc-receiver。これは、単一のレシーバーまたはコンマ区切りの受信側の一覧にすることができます。 |
bcc
|
null
|
プロデューサー | メールの bcc-receiver。これは、単一のレシーバーまたはコンマ区切りの受信側の一覧にすることができます。 |
subject
|
null
|
プロデューサー | メールの件名。 |
outboundBindingRef
|
GMailBindingへの参照
|
プロデューサー |
エクスチェンジ のメールサービスへのバインディングをカスタマイズするための レジストリー 内の OutboundBinding<GMailEndpoint, MailService.Message, void > への参照。
|
メッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | タイプ | コンテキスト | 説明 |
|---|---|---|---|
GMailBinding.GMAIL_SUBJECT
|
文字列
|
プロデューサー |
メールの件名。サブジェクト エンドポイントオプションを上書きします。
|
GMailBinding.GMAIL_SENDER
|
文字列
|
プロデューサー | 電子メールの送信者。エンドポイント URI の送信者定義を上書きします。 |
GMailBinding.GMAIL_TO
|
文字列
|
プロデューサー |
メールの to-receiver (s)エンドポイントオプション を上書きし ます。
|
GMailBinding.GMAIL_CC
|
文字列
|
プロデューサー |
メールの cc-receiver (s)cc endpoint オプションを上書きします。
|
GMailBinding.GMAIL_BCC
|
文字列
|
プロデューサー |
メールの bcc-receiver (s)bcc エンドポイントオプションを上書きします。
|
メッセージボディー リンクのコピーリンクがクリップボードにコピーされました!
の メッセージボディーは String に変換されます。
使用方法 リンクのコピーリンクがクリップボードにコピーされました!
...
.setHeader(GMailBinding.GMAIL_SUBJECT, constant("Hello"))
.setHeader(GMailBinding.GMAIL_TO, constant("account2@somewhere.com"))
.to("gmail://account1@gmail.com");
...
.setHeader(GMailBinding.GMAIL_SUBJECT, constant("Hello"))
.setHeader(GMailBinding.GMAIL_TO, constant("account2@somewhere.com"))
.to("gmail://account1@gmail.com");
account1@gmail.com から account2@somewhere.com に、件名 Hello の付いたメールを送信します。メールメッセージのボディーは、メッセージ本文の から取得されます。account1@gmail.com は、現在の GAE アプリケーションの管理者アカウントである必要があることに注意してください。
Dependencies リンクのコピーリンクがクリップボードにコピーされました!
pom.xml に追加する必要があります。
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-gae</artifactId>
<version>${camel-version}</version>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-gae</artifactId>
<version>${camel-version}</version>
</dependency>
$\{camel-version\} は Apache Camel の実際のバージョン(2.1.0 以降)に置き換える必要があります。
54.6. gsec リンクのコピーリンクがクリップボードにコピーされました!
Apache Camel GAE アプリケーションのセキュリティー リンクのコピーリンクがクリップボードにコピーされました!
web.xml ファイルで宣言されます( 「web.xml」を参照してください)。これは Apache Camel アプリケーションにも適用されます。以下の例では、アプリケーションは、認証されたユーザー(任意のロール)のみがアプリケーションにアクセスできるように設定されます。さらに、/worker/\* URL へのアクセスは、admin ロールを持つユーザーのみが実行できます。デフォルトでは、gtask コンポーネントによってインストールされた Web フック URL は /worker/\* パターンに一致し、通常のユーザーがアクセスすることはできません。この認可制約では、タスクキューイングサービス(常に admin ロール)のみが Web フックにアクセスできます。カスタムで宣言的ではない承認ロジックを実装するには、Apache Camel GAE アプリケーションは Google Accounts Java API を使用する必要があります。
例54.1 web.xml (承認制約あり)
54.7. gtask リンクのコピーリンクがクリップボードにコピーされました!
gtask コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
gtask コンポーネントは、Google App Engine (GAE)の Camel コンポーネントに提供します。これは、タスク キューをメッセージキューとして使用することで、GAE での非同期メッセージ処理をサポートします。キューへメッセージを追加するには、タスクキュー API を使用します。キューからメッセージを受信するには、HTTP コールバックハンドラーをインストールします。ハンドラーは、タスクキューサービスによって開始される HTTP POST コールバック( Web フック)によって呼び出されます。新しいタスクがキューに追加されるたびに、コールバックが送信されます。gtask コンポーネントはこれらの詳細から抽象化され、JMS または SEDA を使用したメッセージキューのように GAE でのメッセージキューを容易にするエンドポイント URI をサポートします。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
gtask://queue-name
gtask://queue-name
オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | デフォルト値 | コンテキスト | 説明 |
|---|---|---|---|
workerRoot
|
worker
|
プロデューサー |
コールバックハンドラーのサーブレットマッピング。デフォルトでは、このコンポーネントには /worker/* のコールバックサーブレットマッピングが必要です。別のサーブレットマッピングを使用する場合(例: /myworker/* )は、プロデューサー側でオプションとして設定する必要があります( to ("gtask:myqueue?workerRoot=myworker")。
|
inboundBindingRef
|
GTaskBindingへの参照
|
コンシューマー |
エクスチェンジ のサーブレット API へのバインディングをカスタマイズするための InboundBinding<GTaskEndpoint、HttpServletRequest、HttpServletResponse > への参照。参照バインディングは、org.apache.camel.component.http.HttpBinding への後プロセッサーとして使用されます。
|
outboundBindingRef
|
GTaskBindingへの参照
|
プロデューサー |
エクスチェンジ のタスクキューサービスへのバインディングをカスタマイズするための Registry の OutboundBinding<GTaskEndpoint, TaskOptions, void > への参照。
|
メッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | タイプ | コンテキスト | 説明 |
|---|---|---|---|
GTaskBinding.GTASK_QUEUE_NAME
|
文字列
|
コンシューマー | タスクキューの名前。 |
GTaskBinding.GTASK_TASK_NAME
|
文字列
|
コンシューマー | タスクの名前(生成された値)。 |
GTaskBinding.GTASK_RETRY_COUNT
|
int
|
コンシューマー | コールバックの再試行回数。 |
メッセージボディー リンクのコピーリンクがクリップボードにコピーされました!
byte[] に変換され、content-type application/octet-stream としてコールバックハンドラーに POST されます。
使用方法 リンクのコピーリンクがクリップボードにコピーされました!
デフォルト のキューは追加設定なしで参照できます。このキューは以下の例で使用されます。ローカル開発サーバーでタスクキューを使用する場合は、開発 者コンソール からタスクを手動で実行する必要があります。
デフォルトのキュー リンクのコピーリンクがクリップボードにコピーされました!
... .to(gtask:default) // add message to default queue from(gtask:default) // receive message from default queue (via a web hook) ...
...
.to(gtask:default) // add message to default queue
from(gtask:default) // receive message from default queue (via a web hook)
...
Dependencies リンクのコピーリンクがクリップボードにコピーされました!
pom.xml に追加する必要があります。
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-gae</artifactId>
<version>${camel-version}</version>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-gae</artifactId>
<version>${camel-version}</version>
</dependency>
${camel-version} は、実際のバージョンの Apache Camel (2.1.0 以降)に置き換える必要があります。
第55章 ganglia リンクのコピーリンクがクリップボードにコピーされました!
Ganglia コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
gmetric4j ライブラリーを使用して、Ganglia モニターリングシステムに値(メッセージボディー)をメトリックとして送信するメカニズムを提供します。標準の Ganglia および JMXetric と併用して、1 つのプラットフォームでオペレーティングシステム、JVM、およびビジネスプロセスからメトリクスを監視できます。
gmond エージェントを実行している必要があります。エージェントは、現在 camel-ganglia が使用できない Ganglia インフラストラクチャーにハートビートを送信します。
pom.xml に以下の依存関係を追加する必要があります。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
ganglia:address:port[?options]
ganglia:address:port[?options]
?option=value&option=value&.. 形式を使用します。
ganglia エンドポイントオプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | デフォルト | 説明 | w/ ヘッダーを上書きします。 |
|---|---|---|---|
mode
|
MULTICAST
|
UDP メトリクスパケットの送信に使用するアドレス指定モードを指定します。有効な値は MULTICAST または UNICAST です。
|
|
ttl
|
5
|
MULTICAST を使用する場合は、パケットの存続期間を指定します。
|
|
wireFormat31x
|
true
|
使用するワイヤ形式を指定します。true Wire 形式を Ganglia v3.1.0 以降に設定します。false Wire 形式を Ganglia v3.0.x 以前に設定します。
|
|
groupName
|
Java
|
メトリックが属するグループを指定します。 | |
prefix
|
[オプション] metricName に追加する文字列接頭辞を指定します。接頭辞にアンダースコアが自動的に追加されます。
|
||
metricName
|
メトリクス
|
メトリクスに使用する名前を指定します。
|
GangliaConstants.METRIC_NAME
|
type
|
STRING
|
メトリックのタイプを指定します(STRING, INT8|16|32, ----------|-----|----------|-----| splunk, NORMAL, NORMAL) UINT81632 FLOAT DOUBLE
|
GangliaConstants.METRIC_TYPE
|
slope
|
BOTH
|
メトリックのデータの保存方法を決定するメトリックの有効期間のスライプを指定します。有効な値は以下のとおりです。
|
GangliaConstants.METRIC_SLOPE
|
units
|
[オプション] メトリックの値をクォレートする測定単位を指定します(バイト、秒、チェンス、スレーターなど)。
その他のツールは後で行う可能性があるため、接頭辞(
k [kilo]、m [milli] など)を使用してユニットをスケーリングすることはできません。値もスケーリングする必要があります。
|
GangliaConstants.METRIC_UNITS
|
|
tmax
|
60
|
ギーメトリック呼び出し間の最大時間を秒単位で指定します。
tmax 以降、Ganglia は現在の値の有効期限が切れていると見なします。
|
GangliaConstants.METRIC_TMAX
|
dmax
|
0
|
指定されたメトリックの有効期間を秒単位で指定します。
|
GangliaConstants.METRIC_DMAX
|
メッセージボディー リンクのコピーリンクがクリップボードにコピーされました!
戻り値/レスポンス リンクのコピーリンクがクリップボードにコピーされました!
文字列メトリクスの送信 リンクのコピーリンクがクリップボードにコピーされました!
数値メトリックの送信 リンクのコピーリンクがクリップボードにコピーされました!
第56章 Geocoder リンクのコピーリンクがクリップボードにコピーされました!
Geocoder コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
pom.xml に以下の依存関係を追加する必要があります。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
geocoder:address:name[?options] geocoder:latlng:latitude,longitude[?options]
geocoder:address:name[?options]
geocoder:latlng:latitude,longitude[?options]
オプション リンクのコピーリンクがクリップボードにコピーされました!
| プロパティー | デフォルト | 説明 |
|---|---|---|
言語
|
en
|
使用する言語。 |
headersOnly
|
false
|
ヘッダーで エクスチェンジのみを補完 し、ボディーをそのまま残すかどうか。 |
clientId
|
このクライアント ID で google Premium を使用するには、以下を実行します。 | |
clientKey
|
このクライアントキーで google Premium を使用するには、以下を行います。 | |
httpClientConfigurer
|
null
|
Camel 2.17: レジストリーの org.apache.camel.component.geocoder.http.HttpClientConfigurer への参照。
|
clientConnectionManager
|
null
|
Camel 2.17: カスタム org.apache.http.conn.ClientConnectionManager を使用します。
|
?option=value&option=value&.. の形式で追加できます。
Proxy リンクのコピーリンクがクリップボードにコピーされました!
| プロパティー | デフォルト | 説明 |
|---|---|---|
proxyHost
|
null
|
Camel 2.17: プロキシーのホスト名。 |
proxyPort
|
null
|
Camel 2.17: プロキシーポート番号。 |
proxyAuthMethod
|
null
|
Camel 2.17: プロキシーの認証メソッド( Basic または Digest のいずれか。NTLM
|
proxyAuthUsername
|
null
|
Camel 2.17: プロキシー認証のユーザー名。 |
proxyAuthPassword
|
null
|
Camel 2.17: プロキシー認証のパススルー。 |
proxyAuthDomain
|
null
|
Camel 2.17: プロキシー NTML 認証のドメイン。 |
proxyAuthHost
|
null
|
Camel 2.17: プロキシー NTML 認証用のオプションのホスト。 |
エクスチェンジデータ形式 リンクのコピーリンクがクリップボードにコピーされました!
com.google.code.geocoder.model.GeocodeResponse タイプとして配信します。また、アドレスが current の場合、応答は現在 の場所の JSON 表現を持つ String 型になります。
メッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| ヘッダー | 説明 |
|---|---|
CamelGeoCoderStatus
|
必須。ジオコーダーライブラリーのステータスコード。ステータスが GeocoderStatus.OK の場合、追加のヘッダーが補完されます。
|
CamelGeoCoderAddress
|
フォーマットされたアドレス |
CamelGeoCoderLat
|
場所のお気に入り。 |
CamelGeoCoderLng
|
場所が長くなります。 |
CamelGeoCoderLatlng
|
場所のお気に入りと長い場所です。コンマで区切ります。 |
CamelGeoCoderCity
|
都市の長い名前。 |
CamelGeoCoderRegionCode
|
リージョンコード。 |
CamelGeoCoderRegionName
|
リージョン名。 |
CamelGeoCoderCountryLong
|
国の長い名前。 |
CamelGeoCoderCountryShort
|
国の短縮名。 |
サンプル リンクのコピーリンクがクリップボードにコピーされました!
from("direct:start")
.to("geocoder:address:Paris, France")
from("direct:start")
.to("geocoder:address:Paris, France")
CamelGeoCoderAddress でヘッダーを指定すると、エンドポイント設定が上書きされるため、Copenhagen の場所を取得するには、以下のようにヘッダーでメッセージを送信できます。
template.sendBodyAndHeader("direct:start", "Hello", GeoCoderConstants.ADDRESS, "Copenhagen, Denmark");
template.sendBodyAndHeader("direct:start", "Hello", GeoCoderConstants.ADDRESS, "Copenhagen, Denmark");
from("direct:start")
.to("geocoder:latlng:40.714224,-73.961452")
.log("Location ${header.CamelGeocoderAddress} is at lat/lng: ${header.CamelGeocoderLatlng} and in country ${header.CamelGeoCoderCountryShort}")
from("direct:start")
.to("geocoder:latlng:40.714224,-73.961452")
.log("Location ${header.CamelGeocoderAddress} is at lat/lng: ${header.CamelGeocoderLatlng} and in country ${header.CamelGeoCoderCountryShort}")
Location 285 Bedford Avenue, Brooklyn, NY 11211, USA is at lat/lng: 40.71412890,-73.96140740 and in country US
Location 285 Bedford Avenue, Brooklyn, NY 11211, USA is at lat/lng: 40.71412890,-73.96140740 and in country US
from("direct:start")
.to("geocoder:address:current")
from("direct:start")
.to("geocoder:address:current")
第57章 Git リンクのコピーリンクがクリップボードにコピーされました!
Git コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
git://localRepositoryPath[?options]
git://localRepositoryPath[?options]
URI オプション リンクのコピーリンクがクリップボードにコピーされました!
|
名前
|
デフォルト値
|
タイプ
|
コンテキスト
|
説明
|
|---|---|---|---|---|
|
localPath
|
null
|
文字列
|
共有
|
ローカル Git リポジトリーへのパス
|
|
remotePath
|
null
|
文字列
|
共有
|
リモート Git リポジトリーへのパス
|
|
operation
|
null
|
文字列
|
プロデューサー
|
実行する操作。現在、以下の値をサポートしています。
clone, init, add, remove, commit, commitAll, createBranch, deleteBranch, createTag, deleteTag, status, log, push, pull, showBranches, cherryPick.
|
|
branchName
|
null
|
文字列
|
プロデューサー
|
作業するブランチの名前
|
|
tagName
|
null
|
文字列
|
プロデューサー
|
作業するブランチのタグ
|
|
username
|
null
|
文字列
|
プロデューサー
|
git リポジトリーの認証フェーズで使用するユーザー名
|
|
password
|
null
|
文字列
|
プロデューサー
|
git リポジトリーの認証フェーズで使用するパスワード
|
|
type
|
null
|
文字列
|
コンシューマー
|
コンシューマーのタイプ。現在、以下の値をサポートしています。
commit, tag, branch
|
メッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
|
名前
|
デフォルト値
|
タイプ
|
コンテキスト
|
説明
|
|---|---|---|---|---|
|
CamelGitOperation
|
null
|
文字列
|
プロデューサー
|
エンドポイントオプションとして指定されていない場合に、リポジトリーで実行する操作
|
|
CamelGitFilename
|
null
|
文字列
|
プロデューサー
|
add 操作のファイル名
|
|
CamelGitCommitMessage
|
null
|
文字列
|
プロデューサー
|
コミット操作に関連するコミットメッセージ
|
|
CamelGitCommitUsername
|
null
|
文字列
|
プロデューサー
|
コミット操作のコミットユーザー名
|
|
CamelGitCommitEmail
|
null
|
文字列
|
プロデューサー
|
コミット操作のメール
|
|
CamelGitCommitId
|
null
|
文字列
|
プロデューサー
|
コミット ID
|
プロデューサーの例 リンクのコピーリンクがクリップボードにコピーされました!
コンシューマーの例 リンクのコピーリンクがクリップボードにコピーされました!
from("git:///tmp/testRepo?type=commit")
.to(....)
from("git:///tmp/testRepo?type=commit")
.to(....)
第58章 GitHub リンクのコピーリンクがクリップボードにコピーされました!
GitHub コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
- 信頼性/安定性の懸念
- ポーリングしているペイロードのタイプは通常大きくありません(上向き、ページングは API で利用可能です)。
- Webhook が失敗した場合にパブリックにアクセスできない一部のアプリケーションをサポートする必要があります。
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-github</artifactId>
<version>${camel-version}</version>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-github</artifactId>
<version>${camel-version}</version>
</dependency>
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
github://endpoint[?options]
github://endpoint[?options]
必須オプション: リンクのコピーリンクがクリップボードにコピーされました!
|
オプション
|
説明
|
|---|---|
username
|
GitHub ユーザー名。
oauthToken が指定されていない場合に必要です。
|
password
|
GitHub パスワード(
oauthToken が提供されない限り必要)
|
oauthToken
|
GitHub OAuth トークン。
username および password が指定されていない場合に必要です。
|
repoOwner
|
GitHub リポジトリーの所有者(組織)。
|
repoName
|
GitHub リポジトリー名。 |
コンシューマーエンドポイント: リンクのコピーリンクがクリップボードにコピーされました!
|
エンドポイント
|
コンテキスト
|
ボディタイプ
|
|---|---|---|
pullRequest
|
ポーリング
|
org.eclipse.egit.github.core.PullRequest
|
pullRequestComment
|
ポーリング
|
org.eclipse.egit.github.core.Comment (一般的なプルリクエストに関する議論)または org.eclipse.egit.github.core.CommitComment (プルリクエスト差分のインラインコメント)
|
tag
|
ポーリング
|
org.eclipse.egit.github.core.RepositoryTag
|
commit
|
ポーリング
|
org.eclipse.egit.github.core.RepositoryCommit
|
プロデューサーエンドポイント: リンクのコピーリンクがクリップボードにコピーされました!
|
エンドポイント
|
本文
| メッセージヘッダー |
|---|---|---|
pullRequestComment
|
string (コメントテキスト)
|
|
closePullRequest
|
none
|
|
URI オプション リンクのコピーリンクがクリップボードにコピーされました!
|
名前
|
デフォルト値
|
説明
|
|---|---|---|
delay
|
60
|
秒単位
|
第59章 GoogleCalendar リンクのコピーリンクがクリップボードにコピーされました!
GoogleCalendar コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
コンポーネントの説明 リンクのコピーリンクがクリップボードにコピーされました!
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-google-calendar</artifactId>
<version>2.17.0.redhat-630xxx</version>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-google-calendar</artifactId>
<version>2.17.0.redhat-630xxx</version>
</dependency>
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
google-calendar://endpoint-prefix/endpoint?[options]
google-calendar://endpoint-prefix/endpoint?[options]
- acl
- calendars
- channels
- colors
- events
- freebusy
- list
- settings
GoogleCalendarComponent リンクのコピーリンクがクリップボードにコピーされました!
org.apache.camel.component.google.calendar.GoogleCalendarConfiguration のコンポーネントの Bean プロパティー configuration を使用して提供できます。
| オプション | タイプ | |
|---|---|---|
accessToken
|
String
|
OAuth 2 アクセストークン通常、これは 1 時間後に期限切れになるため、長期間の使用には refreshToken が推奨されます。
|
applicationName
|
String
|
Google カレンダーアプリケーション名。たとえば、camel-google-calendar/1.0 です。
|
clientId
|
String
|
カレンダーアプリケーションのクライアント ID。 |
clientSecret
|
String
|
カレンダーアプリケーションのクライアントシークレット。 |
refreshToken
|
String
|
OAuth2 更新トークン。このトークンを使用すると、Google カレンダーコンポーネントは現在の有効期限が切れるたびに新しい accessToken を取得できます。アプリケーションが長期間使用する場合は必要となります。
|
scopes
|
List<String>
|
カレンダーアプリケーションでユーザーアカウントに必要なパーミッションのレベルを指定します。詳細は、https://developers.google.com/google-apps/calendar/auth を参照してください。 |
emailAddress
|
String
|
Camel 2.16.0: Google Service Account の
emailAddress。
|
p12FileName
|
String
|
Camel 2.16.0: Google サービスアカウントで使用する秘密鍵を持つ
.p12 ファイルの名前。
|
プロデューサーエンドポイント リンクのコピーリンクがクリップボードにコピーされました!
inBody を使用することもできます。
CamelGoogleCalendar.<option> の形式である必要があります。inBody オプションはメッセージヘッダーを上書きすることに注意してください。つまり、エンドポイントオプション inBody=option は CamelGoogleCalendar.option ヘッダーを上書きすることに注意してください。
1.エンドポイント接頭辞 acl リンクのコピーリンクがクリップボードにコピーされました!
acl で呼び出すことができます。
google-calendar://acl/endpoint?[options]
google-calendar://acl/endpoint?[options]
| エンドポイント | 短縮形エイリアス | オプション | 結果ボディーのタイプ |
|---|---|---|---|
| delete | calendarId, ruleId | ||
| get | calendarId, ruleId | com.google.api.services.calendar.model.AclRule | |
| insert | calendarId, content | com.google.api.services.calendar.model.AclRule | |
| list | calendarId |
com.google.api.services.calendar.model.Acl
|
|
| patch | calendarId、content、ruleId | com.google.api.services.calendar.model.AclRule | |
| update | calendarId、content、ruleId | com.google.api.services.calendar.model.AclRule | |
| watch | calendarId, contentChannel | com.google.api.services.calendar.model.Channel |
aclの URI オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | タイプ |
|---|---|
| calendarId | 文字列 |
| content | com.google.api.services.calendar.model.AclRule |
| contentChannel | com.google.api.services.calendar.model.Channel |
| ruleId | 文字列 |
2.エンドポイント接頭辞 カレンダー リンクのコピーリンクがクリップボードにコピーされました!
calendars で呼び出すことができます。
google-calendar://calendars/endpoint?[options]
google-calendar://calendars/endpoint?[options]
| エンドポイント | 短縮形エイリアス | オプション | 結果ボディーのタイプ |
|---|---|---|---|
| clear | calendarId | ||
| delete | calendarId | ||
| get | calendarId |
com.google.api.services.calendar.Calendar
|
|
| insert | content |
com.google.api.services.calendar.Calendar
|
|
| patch | calendarId, content |
com.google.api.services.calendar.Calendar
|
|
| update | calendarId, content |
com.google.api.services.calendar.Calendar
|
カレンダーの URI オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | タイプ |
|---|---|
| calendarId | 文字列 |
| content | com.google.api.services.calendar.model.Calendar |
3.エンドポイント接頭辞 チャネル リンクのコピーリンクがクリップボードにコピーされました!
channels で呼び出すことができます。
google-calendar://channels/endpoint?[options]
google-calendar://channels/endpoint?[options]
| エンドポイント | 短縮形エイリアス | オプション | 結果ボディーのタイプ |
|---|---|---|---|
| stop | contentChannel |
チャネルの URI オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | タイプ |
|---|---|
| contentChannel | com.google.api.services.calendar.model.Channel |
4.エンドポイント接頭辞の 色 リンクのコピーリンクがクリップボードにコピーされました!
colors で呼び出すことができます。
google-calendar://colors/endpoint?[options]
google-calendar://colors/endpoint?[options]
| エンドポイント | 短縮形エイリアス | オプション | 結果ボディーのタイプ |
|---|---|---|---|
| get |
com.google.api.services.calendar.model.Colors
|
色の URI オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | タイプ |
|---|
5.エンドポイント接頭辞 イベント リンクのコピーリンクがクリップボードにコピーされました!
events で呼び出すことができます。
google-calendar://events/endpoint?[options]
google-calendar://events/endpoint?[options]
| エンドポイント | 短縮形エイリアス | オプション | 結果ボディーのタイプ |
|---|---|---|---|
| calendarImport | calendarId, content | com.google.api.services.calendar.model.Event | |
| delete | calendarId, eventId | ||
| get | calendarId, eventId | com.google.api.services.calendar.model.Event | |
| insert | calendarId, content | com.google.api.services.calendar.model.Event | |
| instances | calendarId, eventId |
com.google.api.services.calendar.model.Events
|
|
| list | calendarId |
com.google.api.services.calendar.model.Events
|
|
| move | calendarId、destination、eventId | com.google.api.services.calendar.model.Event | |
| patch | calendarId、content、eventId | com.google.api.services.calendar.model.Event | |
| quickAdd | calendarId, text | com.google.api.services.calendar.model.Event | |
| update | calendarId、content、eventId | com.google.api.services.calendar.model.Event | |
| watch | calendarId, contentChannel | com.google.api.services.calendar.model.Channel |
イベントの URI オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | タイプ |
|---|---|
| calendarId | 文字列 |
| content | com.google.api.services.calendar.model.Event |
| contentChannel | com.google.api.services.calendar.model.Channel |
| destination | 文字列 |
| eventId | 文字列 |
| text | 文字列 |
6.エンドポイント接頭辞 freebusy リンクのコピーリンクがクリップボードにコピーされました!
freebusy で呼び出すことができます。
google-calendar://freebusy/endpoint?[options]
google-calendar://freebusy/endpoint?[options]
| エンドポイント | 短縮形エイリアス | オプション | 結果ボディーのタイプ |
|---|---|---|---|
| query | content | com.google.api.services.calendar.model.FreeBusyResponse |
freebusyの URI オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | タイプ |
|---|---|
| content | com.google.api.services.calendar.model.FreeBusyRequest |
7.endpoint Prefix list リンクのコピーリンクがクリップボードにコピーされました!
list で呼び出すことができます。
google-calendar://list/endpoint?[options]
google-calendar://list/endpoint?[options]
| エンドポイント | 短縮形エイリアス | オプション | 結果ボディーのタイプ |
|---|---|---|---|
| delete | calendarId | ||
| get | calendarId |
com.google.api.services.calendar.model.CalendarListEntry
|
|
| insert | content |
com.google.api.services.calendar.model.CalendarListEntry
|
|
| list |
com.google.api.services.calendar.model.CalendarList
|
||
| patch | calendarId, content |
com.google.api.services.calendar.model.CalendarListEntry
|
|
| update | calendarId, content |
com.google.api.services.calendar.model.CalendarListEntry
|
|
| watch | contentChannel | com.google.api.services.calendar.model.Channel |
listの URI オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | タイプ |
|---|---|
| calendarId | 文字列 |
| content | com.google.api.services.calendar.model.CalendarListEntry |
| contentChannel | com.google.api.services.calendar.model.Channel |
8.エンドポイント接頭辞の 設定 リンクのコピーリンクがクリップボードにコピーされました!
settings で呼び出すことができます。
google-calendar://settings/endpoint?[options]
google-calendar://settings/endpoint?[options]
| エンドポイント | 短縮形エイリアス | オプション | 結果ボディーのタイプ |
|---|---|---|---|
| get | 設定 |
com.google.api.services.calendar.model.Setting
|
|
| list |
com.google.api.services.calendar.model.Settings
|
||
| watch | contentChannel | com.google.api.services.calendar.model.Channel |
設定の URI オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | タイプ |
|---|---|
| contentChannel | com.google.api.services.calendar.model.Channel |
| 設定 | 文字列 |
コンシューマーエンドポイント リンクのコピーリンクがクリップボードにコピーされました!
consumer. 接頭辞が付い た Scheduled Poll Consumer オプション を使用して、エンドポイントの呼び出しをスケジュールできます。配列またはコレクションを返すコンシューマーエンドポイントは、要素ごとにエクスチェンジを 1 つ生成し、それらのルートはエクスチェンジごとに 1 回実行されます。
メッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
CamelGoogleCalendar. 接頭辞が付いたプロデューサーエンドポイントのメッセージヘッダーで指定できます。
メッセージボディー リンクのコピーリンクがクリップボードにコピーされました!
inBody エンドポイント URI パラメーターに受信メッセージボディーのオプション名を指定できます。配列またはコレクションを返すエンドポイントの場合、コンシューマーエンドポイントはすべての要素を個別のメッセージにマップします。
第60章 GoogleDrive リンクのコピーリンクがクリップボードにコピーされました!
GoogleDrive Component リンクのコピーリンクがクリップボードにコピーされました!
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-google-drive</artifactId>
<version>2.14-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-google-drive</artifactId>
<version>2.14-SNAPSHOT</version>
</dependency>
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
google-drive://endpoint-prefix/endpoint?[options]
google-drive://endpoint-prefix/endpoint?[options]
drive-aboutdrive-appsdrive-changesdrive-channelsdrive-childrendrive-commentsdrive-filesdrive-parentsdrive-permissionsdrive-propertiesdrive-realtimedrive-repliesdrive-revisions
GoogleDriveComponent リンクのコピーリンクがクリップボードにコピーされました!
org.apache.camel.component.google.drive.GoogleDriveConfiguration のコンポーネントの Bean プロパティー configuration を使用して提供できます。
| オプション | タイプ | 説明 |
|---|---|---|
accessToken
|
String
|
OAuth 2 アクセストークン通常、これは 1 時間後に期限切れになるため、長期間の使用には refreshToken が推奨されます。
|
applicationName
|
String
|
Google ドライブアプリケーション名。たとえば、camel-google-drive/1.0 です。
|
clientId
|
String
|
ドライブアプリケーションのクライアント ID |
clientSecret
|
String
|
ドライブアプリケーションのクライアントシークレット |
refreshToken
|
String
|
OAuth 2 トークンの更新これを使用すると、現在の有効期限が切れるたびに Google ドライブコンポーネントが新しい accessToken を取得することができます。アプリケーションが長い期間であれば必要です。
|
scopes
|
List<String>
|
ドライブアプリケーションでユーザーアカウントに必要なパーミッションのレベルを指定します。詳細は、https://developers.google.com/drive/web/scopes を参照してください。 |
プロデューサーエンドポイント リンクのコピーリンクがクリップボードにコピーされました!
inBody を使用することもできます。
CamelGoogleDrive.<option> の形式である必要があります。inBody オプションはメッセージヘッダーを上書きすることに注意してください。つまり、エンドポイントオプション inBody=option は CamelGoogleDrive.option ヘッダーを上書きすることに注意してください。
1.エンドポイント接頭辞 drive-about リンクのコピーリンクがクリップボードにコピーされました!
drive-about で呼び出すことができます。
google-drive://drive-about/endpoint?[options]
google-drive://drive-about/endpoint?[options]
| エンドポイント | 短縮形エイリアス | オプション | 結果ボディーのタイプ |
|---|---|---|---|
get
|
com.google.api.services.drive.model.About
|
drive-about の URI オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | タイプ |
|---|
2.エンドポイント接頭辞 drive-apps リンクのコピーリンクがクリップボードにコピーされました!
drive-apps で呼び出すことができます。
google-drive://drive-apps/endpoint?[options]
google-drive://drive-apps/endpoint?[options]
| エンドポイント | 短縮形エイリアス | オプション | 結果ボディーのタイプ |
|---|---|---|---|
get
|
appId
|
com.google.api.services.drive.model.App
|
|
list
|
com.google.api.services.drive.model.AppList
|
drive-apps の URI オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | タイプ |
|---|---|
appId
|
String
|
3.エンドポイント接頭辞 drive-changes リンクのコピーリンクがクリップボードにコピーされました!
drive-changes で呼び出すことができます。
google-drive://drive-changes/endpoint?[options]
google-drive://drive-changes/endpoint?[options]
| エンドポイント | 短縮形エイリアス | オプション | 結果ボディーのタイプ |
|---|---|---|---|
get
|
changeId
|
com.google.api.services.drive.model.Change
|
|
list
|
com.google.api.services.drive.model.ChangeList
|
||
watch
|
contentChannel
|
com.google.api.services.drive.model.Channel
|
drive-changes の URI オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | タイプ |
|---|---|
changeId
|
String
|
contentChannel
|
com.google.api.services.drive.model.Channel
|
4.エンドポイント接頭辞ドライブチャネル リンクのコピーリンクがクリップボードにコピーされました!
drive-channels で呼び出すことができます。
google-drive://drive-channels/endpoint?[options]
google-drive://drive-channels/endpoint?[options]
| エンドポイント | 短縮形エイリアス | オプション | 結果ボディーのタイプ |
|---|---|---|---|
stop
|
contentChannel
|
drive-channel の URI オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | タイプ |
|---|---|
contentChannel
|
com.google.api.services.drive.model.Channel
|
5.エンドポイント接頭辞 drive-children リンクのコピーリンクがクリップボードにコピーされました!
drive-children で呼び出すことができます。
google-drive://drive-children/endpoint?[options]
google-drive://drive-children/endpoint?[options]
| エンドポイント | 短縮形エイリアス | オプション | 結果ボディーのタイプ |
|---|---|---|---|
delete
|
childId, folderId
|
||
get
|
childId, folderId
|
com.google.api.services.drive.model.ChildReference
|
|
insert
|
content, folderId
|
com.google.api.services.drive.model.ChildReference
|
|
list
|
folderId
|
com.google.api.services.drive.model.ChildList
|
drive-children の URI オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | タイプ |
|---|---|
childId
|
String
|
content
|
com.google.api.services.drive.model.ChildReference
|
folderId
|
String
|
6.エンドポイント接頭辞ドライブ リンクのコピーリンクがクリップボードにコピーされました!
drive-comments で呼び出すことができます。
google-drive://drive-comments/endpoint?[options]
google-drive://drive-comments/endpoint?[options]
| エンドポイント | 短縮形エイリアス | オプション | 結果ボディーのタイプ |
|---|---|---|---|
delete
|
commentId, fileId
|
||
get
|
commentId, fileId
|
com.google.api.services.drive.model.Comment
|
|
insert
|
content, fileId
|
com.google.api.services.drive.model.Comment
|
|
list
|
fileId
|
com.google.api.services.drive.model.CommentList
|
|
patch
|
commentId, content, fileId
|
com.google.api.services.drive.model.Comment
|
|
update
|
commentId, content, fileId
|
com.google.api.services.drive.model.Comment
|
drive-comment の URI オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | タイプ |
|---|---|
commentId
|
String
|
content
|
com.google.api.services.drive.model.Comment
|
fileId
|
String
|
7.エンドポイント接頭辞ドライブファイル リンクのコピーリンクがクリップボードにコピーされました!
drive-files で呼び出すことができます。
google-drive://drive-files/endpoint?[options]
google-drive://drive-files/endpoint?[options]
| エンドポイント | 短縮形エイリアス | オプション | 結果ボディーのタイプ |
|---|---|---|---|
copy
|
content, fileId
|
com.google.api.services.drive.model.File
|
|
delete
|
fileId
|
||
emptyTrash
|
|||
get
|
fileId
|
com.google.api.services.drive.model.File
|
|
insert
|
[mediaContent], content
|
com.google.api.services.drive.model.File
|
|
list
|
com.google.api.services.drive.model.FileList
|
||
patch
|
content, fileId
|
com.google.api.services.drive.model.File
|
|
touch
|
fileId
|
com.google.api.services.drive.model.File
|
|
trash
|
fileId
|
com.google.api.services.drive.model.File
|
|
untrash
|
fileId
|
com.google.api.services.drive.model.File
|
|
update
|
[mediaContent], content, fileId
|
com.google.api.services.drive.model.File
|
|
watch
|
contentChannel, fileId
|
com.google.api.services.drive.model.Channel
|
drive-files の URI オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | タイプ |
|---|---|
content
|
com.google.api.services.drive.model.File
|
contentChannel
|
com.google.api.services.drive.model.Channel
|
fileId
|
String
|
mediaContent
|
com.google.api.client.http.AbstractInputStreamContent
|
8.エンドポイント接頭辞 drive-parents リンクのコピーリンクがクリップボードにコピーされました!
drive-parents で呼び出すことができます。
google-drive://drive-parents/endpoint?[options]
google-drive://drive-parents/endpoint?[options]
| エンドポイント | 短縮形エイリアス | オプション | 結果ボディーのタイプ |
|---|---|---|---|
delete
|
fileId, parentId
|
||
get
|
fileId, parentId
|
com.google.api.services.drive.model.ParentReference
|
|
insert
|
content, fileId
|
com.google.api.services.drive.model.ParentReference
|
|
list
|
fileId
|
com.google.api.services.drive.model.ParentList
|
drive-parents の URI オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | タイプ |
|---|---|
content
|
com.google.api.services.drive.model.ParentReference
|
fileId
|
String
|
parentId
|
String
|
9.エンドポイント接頭辞 drive-permissions リンクのコピーリンクがクリップボードにコピーされました!
drive-permissions で呼び出すことができます。
google-drive://drive-permissions/endpoint?[options]
google-drive://drive-permissions/endpoint?[options]
| エンドポイント | 短縮形エイリアス | オプション | 結果ボディーのタイプ |
|---|---|---|---|
delete
|
fileId, permissionId
|
||
get
|
fileId, permissionId
|
com.google.api.services.drive.model.Permission
|
|
getIdForEmail
|
email
|
com.google.api.services.drive.model.PermissionId
|
|
insert
|
content, fileId
|
com.google.api.services.drive.model.Permission
|
|
list
|
fileId
|
com.google.api.services.drive.model.PermissionList
|
|
patch
|
content, fileId, permissionId
|
com.google.api.services.drive.model.Permission
|
|
update
|
content, fileId, permissionId
|
com.google.api.services.drive.model.Permission
|
drive-permissions の URI オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | タイプ |
|---|---|
content
|
com.google.api.services.drive.model.Permission
|
email
|
String
|
fileId
|
String
|
permissionId
|
String
|
10.エンドポイント接頭辞 drive-properties リンクのコピーリンクがクリップボードにコピーされました!
drive-properties で呼び出すことができます。
google-drive://drive-properties/endpoint?[options]
google-drive://drive-properties/endpoint?[options]
| エンドポイント | 短縮形エイリアス | オプション | 結果ボディーのタイプ |
|---|---|---|---|
delete
|
fileId, propertyKey
|
||
get
|
fileId, propertyKey
|
com.google.api.services.drive.model.Property
|
|
insert
|
content, fileId
|
com.google.api.services.drive.model.Property
|
|
list
|
fileId
|
com.google.api.services.drive.model.PropertyList
|
|
patch
|
content, fileId, propertyKey
|
com.google.api.services.drive.model.Property
|
|
update
|
content, fileId, propertyKey
|
com.google.api.services.drive.model.Property
|
drive-properties の URI オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | タイプ |
|---|---|
content
|
com.google.api.services.drive.model.Property
|
fileId
|
String
|
propertyKey
|
String
|
11.エンドポイント接頭辞 drive-realtime リンクのコピーリンクがクリップボードにコピーされました!
drive-realtime で呼び出すことができます。
google-drive://drive-realtime/endpoint?[options]
google-drive://drive-realtime/endpoint?[options]
| エンドポイント | 短縮形エイリアス | オプション | 結果ボディーのタイプ |
|---|---|---|---|
get
|
fileId
|
||
update
|
[mediaContent], fileId
|
drive-realtime の URI オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | タイプ |
|---|---|
fileId
|
String
|
mediaContent
|
com.google.api.client.http.AbstractInputStreamContent
|
12.エンドポイント接頭辞ドライブ リンクのコピーリンクがクリップボードにコピーされました!
drive-replies で呼び出すことができます。
google-drive://drive-replies/endpoint?[options]
google-drive://drive-replies/endpoint?[options]
| エンドポイント | 短縮形エイリアス | オプション | 結果ボディーのタイプ |
|---|---|---|---|
delete
|
commentId, fileId, replyId
|
||
get
|
commentId, fileId, replyId
|
com.google.api.services.drive.model.CommentReply
|
|
insert
|
commentId, content, fileId
|
com.google.api.services.drive.model.CommentReply
|
|
list
|
commentId, fileId
|
com.google.api.services.drive.model.CommentReplyList
|
|
patch
|
commentId, content, fileId, replyId
|
com.google.api.services.drive.model.CommentReply
|
|
update
|
commentId, content, fileId, replyId
|
com.google.api.services.drive.model.CommentReply
|
drive-replies の URI オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | タイプ |
|---|---|
commentId
|
String
|
content
|
com.google.api.services.drive.model.CommentReply
|
fileId
|
String
|
replyId
|
String
|
13.エンドポイント接頭辞 drive-revisions リンクのコピーリンクがクリップボードにコピーされました!
drive-revisions で呼び出すことができます。
google-drive://drive-revisions/endpoint?[options]
google-drive://drive-revisions/endpoint?[options]
| エンドポイント | 短縮形エイリアス | オプション | 結果ボディーのタイプ |
|---|---|---|---|
delete
|
fileId, revisionId
|
||
get
|
fileId, revisionId
|
com.google.api.services.drive.model.Revision
|
|
list
|
fileId
|
com.google.api.services.drive.model.RevisionList
|
|
patch
|
content, fileId, revisionId
|
com.google.api.services.drive.model.Revision
|
|
update
|
content, fileId, revisionId
|
com.google.api.services.drive.model.Revision
|
drive-revisions の URI オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | タイプ |
|---|---|
content
|
com.google.api.services.drive.model.Revision
|
fileId
|
String
|
revisionId
|
String
|
コンシューマーエンドポイント リンクのコピーリンクがクリップボードにコピーされました!
consumer. 接頭辞が付い た Scheduled Poll Consumer オプション を使用して、エンドポイントの呼び出しをスケジュールできます。配列またはコレクションを返すコンシューマーエンドポイントは、要素ごとにエクスチェンジを 1 つ生成し、それらのルートはエクスチェンジごとに 1 回実行されます。
メッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
CamelGoogleDrive. 接頭辞が付いたプロデューサーエンドポイントのメッセージヘッダーで指定できます。
メッセージボディー リンクのコピーリンクがクリップボードにコピーされました!
inBody エンドポイント URI パラメーターに受信メッセージボディーのオプション名を指定できます。配列またはコレクションを返すエンドポイントの場合、コンシューマーエンドポイントはすべての要素を個別のメッセージにマップします。
第61章 GoogleMail リンクのコピーリンクがクリップボードにコピーされました!
GoogleMail コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
コンポーネントの説明 リンクのコピーリンクがクリップボードにコピーされました!
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-google-mail</artifactId>
<version>2.17.0.redhat-630xxx</version>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-google-mail</artifactId>
<version>2.17.0.redhat-630xxx</version>
</dependency>
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
google-mail://endpoint-prefix/endpoint?[options]
google-mail://endpoint-prefix/endpoint?[options]
- attachments
- ドラフト
- history
- labels
- messages
- threads
- users
GoogleMailComponent リンクのコピーリンクがクリップボードにコピーされました!
org.apache.camel.component.google.mail.GoogleMailConfiguration のコンポーネントの Bean プロパティー configuration を使用して提供できます。
| オプション | タイプ | |
|---|---|---|
accessToken
|
String
|
OAuth2 アクセストークン。通常、これは 1 時間後に期限切れになるため、長期間の使用には refreshToken が推奨されます。
|
applicationName
|
String
|
Google ドライブアプリケーション名。たとえば、camel-google-mail/1.0 です。
|
clientId
|
String
|
ドライブアプリケーションのクライアント ID。 |
clientSecret
|
String
|
ドライブアプリケーションのクライアントシークレット。 |
refreshToken
|
String
|
OAuth2 更新トークン。このトークンを使用すると、現在の有効期限が長い場合に Google Mail コンポーネントは新しい accessToken を取得できます。
|
scopes
|
List<String>
|
ドライブアプリケーションでユーザーアカウントに必要なパーミッションのレベルを指定します。詳細は、https://developers.google.com/gmail/api/auth/scopes を参照してください。 |
user
|
String
|
Camel 2.16.0: サービスアカウントフローでアプリケーションの権限を借用しようとするユーザーのメールアドレス。
|
p12FileName
|
String
|
Camel 2.16.0: Google サービスアカウントで使用する秘密鍵を持つ
.p12 ファイルの名前。
|
プロデューサーエンドポイント リンクのコピーリンクがクリップボードにコピーされました!
inBody を使用することもできます。
CamelGoogleMail.<option> の形式である必要があります。inBody オプションはメッセージヘッダーを上書きすることに注意してください。つまり、エンドポイントオプション inBody=option は CamelGoogleMail.option ヘッダーを上書きすることに注意してください。
1.エンドポイント接頭辞 アタッチメント リンクのコピーリンクがクリップボードにコピーされました!
attachments で呼び出すことができます。
google-mail://attachments/endpoint?[options]
google-mail://attachments/endpoint?[options]
| エンドポイント | 短縮形エイリアス | オプション | 結果ボディーのタイプ |
|---|---|---|---|
| get | id、messageId、userId | com.google.api.services.gmail.model.MessagePartBody |
添付の URI オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | タイプ |
|---|---|
| id | 文字列 |
| messageId | 文字列 |
| userId | 文字列 |
2.エンドポイント接頭 辞ドラフト リンクのコピーリンクがクリップボードにコピーされました!
drafts で呼び出すことができます。
google-mail://drafts/endpoint?[options]
google-mail://drafts/endpoint?[options]
| エンドポイント | 短縮形エイリアス | オプション | 結果ボディーのタイプ |
|---|---|---|---|
| create | [mediaContent], content, userId |
com.google.api.services.gmail.model.Draft
|
|
| delete | id、userId | ||
| get | id、userId |
com.google.api.services.gmail.model.Draft
|
|
| list | userId |
com.google.api.services.gmail.model.ListDraftsResponse
|
|
| send | [mediaContent], content, userId |
com.google.api.services.gmail.model.Message
|
|
| update | [mediaContent]、content、id、userId |
com.google.api.services.gmail.model.Draft
|
ドラフトの URI オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | タイプ |
|---|---|
| content | com.google.api.services.gmail.model.Draft |
| id | 文字列 |
| mediaContent | com.google.api.client.http.AbstractInputStreamContent |
| userId | 文字列 |
3.エンドポイント接頭辞の 履歴 リンクのコピーリンクがクリップボードにコピーされました!
history で呼び出すことができます。
google-mail://history/endpoint?[options]
google-mail://history/endpoint?[options]
| エンドポイント | 短縮形エイリアス | オプション | 結果ボディーのタイプ |
|---|---|---|---|
| list | userId |
com.google.api.services.gmail.model.ListHistoryResponse
|
履歴の URI オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | タイプ |
|---|---|
| userId | 文字列 |
4.エンドポイント接頭辞の ラベル リンクのコピーリンクがクリップボードにコピーされました!
labels で呼び出すことができます。
google-mail://labels/endpoint?[options]
google-mail://labels/endpoint?[options]
| エンドポイント | 短縮形エイリアス | オプション | 結果ボディーのタイプ |
|---|---|---|---|
| create | content, userId |
com.google.api.services.gmail.model.Label
|
|
| delete | id、userId | ||
| get | id、userId |
com.google.api.services.gmail.model.Label
|
|
| list | userId |
com.google.api.services.gmail.model.ListLabelsResponse
|
|
| patch | content、id、userId |
com.google.api.services.gmail.model.Label
|
|
| update | content、id、userId |
com.google.api.services.gmail.model.Label
|
ラベルの URI オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | タイプ |
|---|---|
| content | com.google.api.services.gmail.model.Label |
| id | 文字列 |
| userId | 文字列 |
5.エンドポイント接頭辞 メッセージ リンクのコピーリンクがクリップボードにコピーされました!
messages で呼び出すことができます。
google-mail://messages/endpoint?[options]
google-mail://messages/endpoint?[options]
| エンドポイント | 短縮形エイリアス | オプション | 結果ボディーのタイプ |
|---|---|---|---|
| delete | id、userId | ||
| get | id、userId |
com.google.api.services.gmail.model.Message
|
|
| gmailImport | [mediaContent], content, userId |
com.google.api.services.gmail.model.Message
|
|
| insert | [mediaContent], content, userId |
com.google.api.services.gmail.model.Message
|
|
| list | userId |
com.google.api.services.gmail.model.ListMessagesResponse
|
|
| modify | id, modifyMessageRequest, userId |
com.google.api.services.gmail.model.Message
|
|
| send | [mediaContent], content, userId |
com.google.api.services.gmail.model.Message
|
|
| trash | id、userId |
|
|
| untrash | id、userId |
|
メッセージの URI オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | タイプ |
|---|---|
| content | com.google.api.services.gmail.model.Message |
| id | 文字列 |
| mediaContent | com.google.api.client.http.AbstractInputStreamContent |
| modifyMessageRequest | com.google.api.services.gmail.model.ModifyMessageRequest |
| userId | 文字列 |
6.エンドポイント接頭辞 スレッド リンクのコピーリンクがクリップボードにコピーされました!
threads で呼び出すことができます。
google-mail://threads/endpoint?[options]
google-mail://threads/endpoint?[options]
| エンドポイント | 短縮形エイリアス | オプション | 結果ボディーのタイプ |
|---|---|---|---|
| delete | id、userId | ||
| get | id、userId |
com.google.api.services.gmail.model.Thread
|
|
| list | userId |
com.google.api.services.gmail.model.ListThreadsResponse
|
|
| modify | content、id、userId |
com.google.api.services.gmail.model.Thread
|
|
| trash | id、userId | ||
| untrash | id、userId |
スレッドの URI オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | タイプ |
|---|---|
| content | com.google.api.services.gmail.model.ModifyThreadRequest |
| id | 文字列 |
| userId | 文字列 |
7.エンドポイント接頭辞 ユーザー リンクのコピーリンクがクリップボードにコピーされました!
users で呼び出すことができます。
google-mail://users/endpoint?[options]
google-mail://users/endpoint?[options]
| エンドポイント | 短縮形エイリアス | オプション | 結果ボディーのタイプ |
|---|---|---|---|
| getProfile | userId | com.google.api.services.gmail.model.Profile |
ユーザーの URI オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | タイプ |
|---|---|
| userId | 文字列 |
コンシューマーエンドポイント リンクのコピーリンクがクリップボードにコピーされました!
consumer. 接頭辞が付い た Scheduled Poll Consumer オプション を使用して、エンドポイントの呼び出しをスケジュールできます。配列またはコレクションを返すコンシューマーエンドポイントは、要素ごとにエクスチェンジを 1 つ生成し、それらのルートはエクスチェンジごとに 1 回実行されます。
メッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
CamelGoogleMail. 接頭辞が付いたプロデューサーエンドポイントのメッセージヘッダーで指定できます。
メッセージボディー リンクのコピーリンクがクリップボードにコピーされました!
inBody エンドポイント URI パラメーターに受信メッセージボディーのオプション名を指定できます。配列またはコレクションを返すエンドポイントの場合、コンシューマーエンドポイントはすべての要素を個別のメッセージにマップします。
第62章 Guava EventBus リンクのコピーリンクがクリップボードにコピーされました!
Guava EventBus コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
EventBus で交換されるメッセージは、Camel ルートに透過的に転送できます。EventBus コンポーネントを使用すると、Camel エクスチェンジのボディーを Guava EventBus にルーティングすることもできます。
pom.xml に以下の依存関係を追加する必要があります。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
guava-eventbus:busName[?options]
guava-eventbus:busName[?options]
com.google.common.eventbus.EventBus インスタンスの名前を表します。
オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | デフォルト値 | 説明 |
|---|---|---|
eventClass
|
null
|
Camel 2.10: ルートのコンシューマー側で使用された場合、は EventBus から受信したイベントを、eventClass の クラスおよびスーパークラス にフィルターします。このオプションの null 値は、これを java.lang.Object に設定するのと同じです。つまり、コンシューマーはイベントバスに受信するすべてのメッセージを取得します。このオプションは listenerInterface オプションと併用できません。
|
listenerInterface
|
null
|
Camel 2.11: @Subscribe アノテーションが付けられたメソッドを持つインターフェイス。動的プロキシーはインターフェイスで作成され、EventBus リスナーとして登録できるようにします。特に、マルチイベントリスナーを作成し、DeadEvent を適切に処理する際に役立ちます。このオプションは eventClass オプションと併用できません。
|
使用方法 リンクのコピーリンクがクリップボードにコピーされました!
guava-eventbus コンポーネントを使用すると、Guava EventBus に送信されたメッセージをキャプチャーし、Camel ルートに転送します。Guava EventBus コンシューマーは受信メッセージを 非同期的 に処理します。
guava-eventbus コンポーネントを使用すると、Camel エクスチェンジのボディーが Guava EventBus インスタンスに転送されます。
DeadEvent に関する考慮事項 リンクのコピーリンクがクリップボードにコピーされました!
@Subscribe メソッドでアノテーションが付けられたクラスを作成せずにリスナーによって受信されるイベントクラスを指定できないことに注意してください。この制限は、eventClass オプションが指定されたエンドポイントが可能なすべてのイベント(java.lang.Object)をリッスンし、ランタイム時に適切なメッセージをプログラムでフィルターすることを意味します。以下のスニッシングは、Camel コードベースからの適切な抜粋を示しています。
@Subscribe
public void eventReceived(Object event) {
if (eventClass == null || eventClass.isAssignableFrom(event.getClass())) {
doEventReceived(event);
...
@Subscribe
public void eventReceived(Object event) {
if (eventClass == null || eventClass.isAssignableFrom(event.getClass())) {
doEventReceived(event);
...
EventBus インスタンスが com.google.common.eventbus.DeadEvent 通知を生成しないことです。Camel が正確に指定されたイベントのみをリッスンするようにするには(そのため、DeadEvent サポートを有効にする)、listenerInterface endpoint オプションを使用します。Camel は、後者のオプションで指定したインターフェイスで動的プロキシーを作成し、インターフェイスハンドラーメソッドによって指定されたメッセージのみをリッスンします。SpecificEvent インスタンスのみを処理する単一のメソッドインターフェイスの例を以下に示します。
from("guava-eventbus:busName?listenerInterface=com.example.CustomListener").to("seda:queue");
from("guava-eventbus:busName?listenerInterface=com.example.CustomListener").to("seda:queue");
複数のタイプのイベントの使用 リンクのコピーリンクがクリップボードにコピーされました!
@Subscribe アノテーションが付けられた複数のメソッドを提供できるため、listenerInterface エンドポイントオプションを使用します。
from("guava-eventbus:busName?listenerInterface=com.example.MultipleEventsListener").to("seda:queue");
from("guava-eventbus:busName?listenerInterface=com.example.MultipleEventsListener").to("seda:queue");
第63章 HawtDB リンクのコピーリンクがクリップボードにコピーされました!
HawtDB リンクのコピーリンクがクリップボードにコピーされました!
- HawtDBAggregationRepository
HawtDBAggregationRepository の使用 リンクのコピーリンクがクリップボードにコピーされました!
HawtDBAggregationRepository は AggregationRepository で、オンザフライで集約されたメッセージを永続化します。これにより、デフォルトのアグリゲーターはメモリーの AggregationRepository のみを使用するので、メッセージを失わないようにします。
| オプション | タイプ | 説明 |
|---|---|---|
repositoryName
|
文字列 |
必須リポジトリー名。複数のリポジトリーに共有 HawtDBFile を使用できます。
|
persistentFileName
|
文字列 | 永続ストレージのファイル名。起動時にファイルが存在しない場合は、新しいファイルが作成されます。 |
bufferSize
|
int | ファイルストアにマップされるメモリーセグメントバッファーのサイズ。デフォルトでは 8mb です。値はバイト単位です。 |
sync
|
boolean |
HawtDBFile が書き込み時に同期されるかどうか。デフォルトは true です。書き込み時に同期することで、すべての書き込みがディスクにスプールされるのを待つため、更新は失われません。このオプションを無効にすると、多くの書き込みがバッチ処理されると HawtDB が自動的に同期されます。
|
pageSize
|
short | メモリーページのサイズ。デフォルトでは 512 バイトになります。値はバイト単位です。 |
hawtDBFile
|
HawtDBFile |
既存の設定された org.apache.camel.component.hawtdb.HawtDBFile インスタンスを使用します。
|
returnOldExchange
|
boolean |
get 操作が存在する場合は、get 操作によって古い既存のエクスチェンジが返されるかどうか。デフォルトでは、集計時に古いエクスチェンジを必要としないため、このオプションは false で最適化されます。
|
useRecovery
|
boolean |
リカバリーが有効になっているかどうか。このオプションは、デフォルトで true です。有効にすると、Apache Camel Aggregator は失敗した集約されたエクスチェンジを自動的にリカバリーし、再送信を行います。
|
recoveryInterval
|
long | recovery が有効になっている場合、バックグラウンドタスクは x 度ごとに実行され、失敗したエクスチェンジをスキャンしてリカバリーし、再送信します。デフォルトでは、この間隔は 5000 ミリ秒です。 |
maximumRedeliveries
|
int |
リカバリーされたエクスチェンジの再配信試行の最大数を制限できます。有効にすると、すべての再配信試行に失敗すると、エクスチェンジはデッドレターチャネルに移動します。デフォルトでは、このオプションは無効です。このオプションを使用する場合は、deadLetterUri オプションも指定する必要があります。
|
deadLetterUri
|
文字列 |
リカバリーされたエクスチェンジが使い切られる Dead Letter Channel のエンドポイント URI。このオプションを使用する場合は、maximumRedeliveries オプションも指定する必要があります。
|
optimisticLocking
|
false
|
Camel 2.12: 複数の Camel アプリケーションが同じ HawtDB ベースの集約リポジトリーを共有するクラスター環境で必要になる、楽観的ロックを有効にします。 |
repositoryName オプションを指定する必要があります。次に、persistentFileName または hawtDBFile のいずれかを指定する必要があります。
永続化時に保持される内容 リンクのコピーリンクがクリップボードにコピーされました!
HawtDBAggregationRepository は、Serializable と互換性のあるデータタイプのみを保持します。データ型がそのようなタイプの場合はドロップされ、WARN がログに記録されます。また、メッセージ本文とメッセージ ヘッダーのみを保持 し ます。Exchange プロパティーは永続化され ません。
復元 リンクのコピーリンクがクリップボードにコピーされました!
HawtDBAggregationRepository は、デフォルトで失敗したエクスチェンジ を復元し ます。これは、永続ストアで失敗した エクスチェンジをスキャンするバックグラウンドタスクを持つことで行われます。checkInterval オプションを使用して、このタスクの実行頻度を設定できます。リカバリーはトランザクションとして機能し、Apache Camel が失敗したエクスチェンジのリカバリーと再配信を試み ます。リカバリーされたエクスチェンジは永続ストアから復元され、再送信されて再度送信されます。
| ヘッダー | タイプ | 説明 |
|---|---|---|
Exchange.REDELIVERED
|
ブール値 | エクスチェンジ が再配信されていることを示すために が true に設定されます。 |
Exchange.REDELIVERY_COUNTER
|
整数 | 1 から始まる再配信の試行。 |
AggregationRepository で confirm メソッドが呼び出されたときに発生します。つまり、同じ エクスチェンジ が再び失敗すると、成功するまで再試行されます。
maximumRedeliveries オプションを使用して、特定のリカバリーエクスチェンジの再配信試行の最大数を制限でき ます。また、adLetter Uri オプションも設定する 必要があります。これにより、Apache Camel は maximumRedeliveries に達したときに エクスチェンジ を送信する場所を認識します。
Java DSL での HawtDBAggregationRepository の使用 リンクのコピーリンクがクリップボードにコピーされました!
target/data/hawtdb.dat ファイルで集約されたメッセージを永続化します。
Spring XML での HawtDBAggregationRepository の使用 リンクのコピーリンクがクリップボードにコピーされました!
Dependencies リンクのコピーリンクがクリップボードにコピーされました!
<dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-hawtdb</artifactId> <version>2.3.0</version> </dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-hawtdb</artifactId>
<version>2.3.0</version>
</dependency>
第64章 Hazelcast コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
Hazelcast コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
pom.xml に以下の依存関係を追加する必要があります。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
hazelcast:[ map | multimap | queue | topic | seda | set | atomicvalue | instance | list]:cachename[?options]
hazelcast:[ map | multimap | queue | topic | seda | set | atomicvalue | instance | list]:cachename[?options]
オプション リンクのコピーリンクがクリップボードにコピーされました!
|
名前
|
必須
|
説明
|
hazelcastInstance
|
いいえ
|
Camel 2.14: hazelcast エンドポイントに使用できる hazelcast インスタンス参照。インスタンス参照を指定しない場合、Camel は camel-hazelcast インスタンスからデフォルトの hazelcast インスタンスを使用します。
|
hazelcastInstanceName
|
No
|
|
defaultOperation
|
-1
|
Camel 2.15: 操作ヘッダーが提供されていない場合に使用するデフォルトの操作を指定します。
|
セクション リンクのコピーリンクがクリップボードにコピーされました!
マップの使用 リンクのコピーリンクがクリップボードにコピーされました!
map cache producer - to("hazelcast:map:foo") リンクのコピーリンクがクリップボードにコピーされました!
org.apache.camel.component.hazelcast.HazelcastConstants からの定数を使用できます。
| 名前 | タイプ | 説明 |
|---|---|---|
hazelcast.operation.type
|
文字列
|
有効な値は put、delete、get、update、query です。 |
hazelcast.objectId
|
文字列
|
キャッシュ内にオブジェクトを保存/検索するオブジェクト ID (クエリー操作には必要ありません) |
| 名前 | タイプ | 説明 |
|---|---|---|
CamelHazelcastOperationType
|
文字列
|
有効な値は put、delete、get、update、query Version 2.8です。 |
CamelHazelcastObjectId
|
文字列
|
キャッシュ内にオブジェクトを保存/検索するオブジェクト ID (クエリー操作には必要ありません) バージョン 2.8 |
template.sendBodyAndHeader("direct:[put|get|update|delete|query]", "my-foo", HazelcastConstants.OBJECT_ID, "4711");
template.sendBodyAndHeader("direct:[put|get|update|delete|query]", "my-foo", HazelcastConstants.OBJECT_ID, "4711");
put の例: リンクのコピーリンクがクリップボードにコピーされました!
from("direct:put")
.setHeader(HazelcastConstants.OPERATION, constant(HazelcastConstants.PUT_OPERATION))
.toF("hazelcast:%sfoo", HazelcastConstants.MAP_PREFIX);
from("direct:put")
.setHeader(HazelcastConstants.OPERATION, constant(HazelcastConstants.PUT_OPERATION))
.toF("hazelcast:%sfoo", HazelcastConstants.MAP_PREFIX);
get の例: リンクのコピーリンクがクリップボードにコピーされました!
from("direct:get")
.setHeader(HazelcastConstants.OPERATION, constant(HazelcastConstants.GET_OPERATION))
.toF("hazelcast:%sfoo", HazelcastConstants.MAP_PREFIX)
.to("seda:out");
from("direct:get")
.setHeader(HazelcastConstants.OPERATION, constant(HazelcastConstants.GET_OPERATION))
.toF("hazelcast:%sfoo", HazelcastConstants.MAP_PREFIX)
.to("seda:out");
更新のサンプル: リンクのコピーリンクがクリップボードにコピーされました!
from("direct:update")
.setHeader(HazelcastConstants.OPERATION, constant(HazelcastConstants.UPDATE_OPERATION))
.toF("hazelcast:%sfoo", HazelcastConstants.MAP_PREFIX);
from("direct:update")
.setHeader(HazelcastConstants.OPERATION, constant(HazelcastConstants.UPDATE_OPERATION))
.toF("hazelcast:%sfoo", HazelcastConstants.MAP_PREFIX);
削除のサンプル: リンクのコピーリンクがクリップボードにコピーされました!
from("direct:delete")
.setHeader(HazelcastConstants.OPERATION, constant(HazelcastConstants.DELETE_OPERATION))
.toF("hazelcast:%sfoo", HazelcastConstants.MAP_PREFIX);
from("direct:delete")
.setHeader(HazelcastConstants.OPERATION, constant(HazelcastConstants.DELETE_OPERATION))
.toF("hazelcast:%sfoo", HazelcastConstants.MAP_PREFIX);
クエリーのサンプル リンクのコピーリンクがクリップボードにコピーされました!
from("direct:query")
.setHeader(HazelcastConstants.OPERATION, constant(HazelcastConstants.QUERY_OPERATION))
.toF("hazelcast:%sfoo", HazelcastConstants.MAP_PREFIX)
.to("seda:out");
from("direct:query")
.setHeader(HazelcastConstants.OPERATION, constant(HazelcastConstants.QUERY_OPERATION))
.toF("hazelcast:%sfoo", HazelcastConstants.MAP_PREFIX)
.to("seda:out");
String q1 = "bar > 1000";
template.sendBodyAndHeader("direct:query", null, HazelcastConstants.QUERY, q1);
String q1 = "bar > 1000";
template.sendBodyAndHeader("direct:query", null, HazelcastConstants.QUERY, q1);
map cache consumer - from("hazelcast:map:foo") リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | タイプ | 説明 |
|---|---|---|
hazelcast.listener.time
|
Long
|
イベントの時間(ミリ秒単位) |
hazelcast.listener.type
|
文字列
|
マップコンシューマーは"cachelistener"をここで設定します。 |
hazelcast.listener.action
|
文字列
|
イベントのタイプ:ここでは、更新、エンコーデント、および 削除され ました。 |
hazelcast.objectId
|
文字列
|
オブジェクトの oid |
hazelcast.cache.name
|
文字列
|
キャッシュの名前(例:foo) |
hazelcast.cache.type
|
文字列
|
キャッシュのタイプ - マップ |
| 名前 | タイプ | 説明 |
|---|---|---|
CamelHazelcastListenerTime
|
Long
|
イベントの時間(ミリス バージョン 2.8 でのイベント時間) |
CamelHazelcastListenerType
|
文字列
|
map consumer sets here "cachelistener" Version 2.8 |
CamelHazelcastListenerAction
|
文字列
|
イベントのタイプ:ここで、更新、エンコーデーション、および 削除 さ れました。 バージョン 2.8 |
CamelHazelcastObjectId
|
文字列
|
The oid of the object Version 2.8 |
CamelHazelcastCacheName
|
文字列
|
キャッシュの名前(例:foo バージョン 2.8) |
CamelHazelcastCacheType
|
文字列
|
キャッシュのタイプ:ここでは、マップ バージョン 2.8 |
マルチマップの使用 リンクのコピーリンクがクリップボードにコピーされました!
multimap cache producer - to("hazelcast:multimap:foo") リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | タイプ | 説明 |
|---|---|---|
hazelcast.operation.type
|
文字列
|
有効な値は put、get、removevalue、delete です。 |
hazelcast.objectId
|
文字列
|
キャッシュ内にオブジェクトを保存/検索するオブジェクト ID |
| 名前 | タイプ | 説明 |
|---|---|---|
CamelHazelcastOperationType
|
文字列
|
有効な値は put、delete、get、update、query Available as Apache Camel 2.8です。 |
CamelHazelcastObjectId
|
文字列
|
キャッシュ内にオブジェクトを保存/検索するオブジェクト ID (クエリー操作には必要ありません) バージョン 2.8 |
template.sendBodyAndHeader("direct:[put|get|update|delete|query]", "my-foo", HazelcastConstants.OBJECT_ID, "4711");
template.sendBodyAndHeader("direct:[put|get|update|delete|query]", "my-foo", HazelcastConstants.OBJECT_ID, "4711");
put の例: リンクのコピーリンクがクリップボードにコピーされました!
from("direct:put")
.setHeader(HazelcastConstants.OPERATION, constant(HazelcastConstants.PUT_OPERATION))
.toF("hazelcast:%sfoo", HazelcastConstants.MAP_PREFIX);
from("direct:put")
.setHeader(HazelcastConstants.OPERATION, constant(HazelcastConstants.PUT_OPERATION))
.toF("hazelcast:%sfoo", HazelcastConstants.MAP_PREFIX);
get の例: リンクのコピーリンクがクリップボードにコピーされました!
from("direct:get")
.setHeader(HazelcastConstants.OPERATION, constant(HazelcastConstants.GET_OPERATION))
.toF("hazelcast:%sfoo", HazelcastConstants.MAP_PREFIX)
.to("seda:out");
from("direct:get")
.setHeader(HazelcastConstants.OPERATION, constant(HazelcastConstants.GET_OPERATION))
.toF("hazelcast:%sfoo", HazelcastConstants.MAP_PREFIX)
.to("seda:out");
更新のサンプル: リンクのコピーリンクがクリップボードにコピーされました!
from("direct:update")
.setHeader(HazelcastConstants.OPERATION, constant(HazelcastConstants.UPDATE_OPERATION))
.toF("hazelcast:%sfoo", HazelcastConstants.MAP_PREFIX);
from("direct:update")
.setHeader(HazelcastConstants.OPERATION, constant(HazelcastConstants.UPDATE_OPERATION))
.toF("hazelcast:%sfoo", HazelcastConstants.MAP_PREFIX);
削除のサンプル: リンクのコピーリンクがクリップボードにコピーされました!
from("direct:delete")
.setHeader(HazelcastConstants.OPERATION, constant(HazelcastConstants.DELETE_OPERATION))
.toF("hazelcast:%sfoo", HazelcastConstants.MAP_PREFIX);
from("direct:delete")
.setHeader(HazelcastConstants.OPERATION, constant(HazelcastConstants.DELETE_OPERATION))
.toF("hazelcast:%sfoo", HazelcastConstants.MAP_PREFIX);
クエリーのサンプル リンクのコピーリンクがクリップボードにコピーされました!
from("direct:query")
.setHeader(HazelcastConstants.OPERATION, constant(HazelcastConstants.QUERY_OPERATION))
.toF("hazelcast:%sfoo", HazelcastConstants.MAP_PREFIX)
.to("seda:out");
from("direct:query")
.setHeader(HazelcastConstants.OPERATION, constant(HazelcastConstants.QUERY_OPERATION))
.toF("hazelcast:%sfoo", HazelcastConstants.MAP_PREFIX)
.to("seda:out");
String q1 = "bar > 1000";
template.sendBodyAndHeader("direct:query", null, HazelcastConstants.QUERY, q1);
String q1 = "bar > 1000";
template.sendBodyAndHeader("direct:query", null, HazelcastConstants.QUERY, q1);
map cache consumer - from("hazelcast:map:foo") リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | タイプ | 説明 |
|---|---|---|
hazelcast.listener.time
|
Long
|
イベントの時間(ミリ秒単位) |
hazelcast.listener.type
|
文字列
|
マップコンシューマーは"cachelistener"をここで設定します。 |
hazelcast.listener.action
|
文字列
|
イベントのタイプ:ここでは、更新、エンコーデント、および 削除され ました。 |
hazelcast.objectId
|
文字列
|
オブジェクトの oid |
hazelcast.cache.name
|
文字列
|
キャッシュの名前(例:foo) |
hazelcast.cache.type
|
文字列
|
キャッシュのタイプ - マップ |
| 名前 | タイプ | 説明 |
|---|---|---|
CamelHazelcastListenerTime
|
Long
|
イベントの時間(ミリス バージョン 2.8 でのイベント時間) |
CamelHazelcastListenerType
|
文字列
|
map consumer sets here "cachelistener" Version 2.8 |
CamelHazelcastListenerAction
|
文字列
|
イベントのタイプ:ここで、更新、エンコーデーション、および 削除 さ れました。 バージョン 2.8 |
CamelHazelcastObjectId
|
文字列
|
The oid of the object Version 2.8 |
CamelHazelcastCacheName
|
文字列
|
キャッシュの名前(例:foo バージョン 2.8) |
CamelHazelcastCacheType
|
文字列
|
キャッシュのタイプ:ここでは、マップ バージョン 2.8 |
マルチマップの使用 リンクのコピーリンクがクリップボードにコピーされました!
multimap cache producer - to("hazelcast:multimap:foo") リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | タイプ | 説明 |
|---|---|---|
hazelcast.operation.type
|
文字列
|
有効な値は put、get、removevalue、delete です。 |
hazelcast.objectId
|
文字列
|
キャッシュ内にオブジェクトを保存/検索するオブジェクト ID |
| 名前 | タイプ | 説明 |
|---|---|---|
CamelHazelcastOperationType
|
文字列
|
有効な値は put、get、removevalue、および delete Version 2.8です。 |
CamelHazelcastObjectId
|
文字列
|
キャッシュ バージョン 2.8内でオブジェクトを保存/検索するオブジェクト ID |
put の例: リンクのコピーリンクがクリップボードにコピーされました!
from("direct:put")
.setHeader(HazelcastConstants.OPERATION, constant(HazelcastConstants.PUT_OPERATION))
.to(String.format("hazelcast:%sbar", HazelcastConstants.MULTIMAP_PREFIX));
from("direct:put")
.setHeader(HazelcastConstants.OPERATION, constant(HazelcastConstants.PUT_OPERATION))
.to(String.format("hazelcast:%sbar", HazelcastConstants.MULTIMAP_PREFIX));
removevalue の例: リンクのコピーリンクがクリップボードにコピーされました!
from("direct:removevalue")
.setHeader(HazelcastConstants.OPERATION, constant(HazelcastConstants.REMOVEVALUE_OPERATION))
.toF("hazelcast:%sbar", HazelcastConstants.MULTIMAP_PREFIX);
from("direct:removevalue")
.setHeader(HazelcastConstants.OPERATION, constant(HazelcastConstants.REMOVEVALUE_OPERATION))
.toF("hazelcast:%sbar", HazelcastConstants.MULTIMAP_PREFIX);
} がある場合は、メッセージボディー内に my-foo の値を削除する必要があります。
get の例: リンクのコピーリンクがクリップボードにコピーされました!
from("direct:get")
.setHeader(HazelcastConstants.OPERATION, constant(HazelcastConstants.GET_OPERATION))
.toF("hazelcast:%sbar", HazelcastConstants.MULTIMAP_PREFIX)
.to("seda:out");
from("direct:get")
.setHeader(HazelcastConstants.OPERATION, constant(HazelcastConstants.GET_OPERATION))
.toF("hazelcast:%sbar", HazelcastConstants.MULTIMAP_PREFIX)
.to("seda:out");
削除のサンプル: リンクのコピーリンクがクリップボードにコピーされました!
from("direct:delete")
.setHeader(HazelcastConstants.OPERATION, constant(HazelcastConstants.DELETE_OPERATION))
.toF("hazelcast:%sbar", HazelcastConstants.MULTIMAP_PREFIX);
from("direct:delete")
.setHeader(HazelcastConstants.OPERATION, constant(HazelcastConstants.DELETE_OPERATION))
.toF("hazelcast:%sbar", HazelcastConstants.MULTIMAP_PREFIX);
template.sendBodyAndHeader("direct:[put|get|removevalue|delete]", "my-foo", HazelcastConstants.OBJECT_ID, "4711");
template.sendBodyAndHeader("direct:[put|get|removevalue|delete]", "my-foo", HazelcastConstants.OBJECT_ID, "4711");
multimap cache consumer - from("hazelcast:multimap:foo") リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | タイプ | 説明 |
|---|---|---|
hazelcast.listener.time
|
Long
|
イベントの時間(ミリ秒単位) |
hazelcast.listener.type
|
文字列
|
マップコンシューマーは"cachelistener"をここで設定します。 |
hazelcast.listener.action
|
文字列
|
イベントのタイプ - ここでは 追加 および 削除 (および 近い動作) |
hazelcast.objectId
|
文字列
|
オブジェクトの oid |
hazelcast.cache.name
|
文字列
|
キャッシュの名前(例:foo) |
hazelcast.cache.type
|
文字列
|
キャッシュのタイプ(ここではマルチマップ) |
| 名前 | タイプ | 説明 |
|---|---|---|
CamelHazelcastListenerTime
|
Long
|
イベントの時間(ミリス バージョン 2.8 でのイベント時間) |
CamelHazelcastListenerType
|
文字列
|
map consumer sets here "cachelistener" Version 2.8 |
CamelHazelcastListenerAction
|
文字列
|
イベントのタイプ:ここでは 追加 および 削除 (および近い 動作) バージョン 2.8 |
CamelHazelcastObjectId
|
文字列
|
The oid of the object Version 2.8 |
CamelHazelcastCacheName
|
文字列
|
キャッシュの名前(例:foo バージョン 2.8) |
CamelHazelcastCacheType
|
文字列
|
キャッシュのタイプ(ここではマルチマップ バージョン 2.8) |
キューの使用 リンクのコピーリンクがクリップボードにコピーされました!
キュープロデューサー to ("hazelcast:queue:foo") リンクのコピーリンクがクリップボードにコピーされました!
追加する例: リンクのコピーリンクがクリップボードにコピーされました!
from("direct:add")
.setHeader(HazelcastConstants.OPERATION, constant(HazelcastConstants.ADD_OPERATION))
.toF("hazelcast:%sbar", HazelcastConstants.QUEUE_PREFIX);
from("direct:add")
.setHeader(HazelcastConstants.OPERATION, constant(HazelcastConstants.ADD_OPERATION))
.toF("hazelcast:%sbar", HazelcastConstants.QUEUE_PREFIX);
put の例: リンクのコピーリンクがクリップボードにコピーされました!
from("direct:put")
.setHeader(HazelcastConstants.OPERATION, constant(HazelcastConstants.PUT_OPERATION))
.toF("hazelcast:%sbar", HazelcastConstants.QUEUE_PREFIX);
from("direct:put")
.setHeader(HazelcastConstants.OPERATION, constant(HazelcastConstants.PUT_OPERATION))
.toF("hazelcast:%sbar", HazelcastConstants.QUEUE_PREFIX);
ポーリングのサンプル: リンクのコピーリンクがクリップボードにコピーされました!
from("direct:poll")
.setHeader(HazelcastConstants.OPERATION, constant(HazelcastConstants.POLL_OPERATION))
.toF("hazelcast:%sbar", HazelcastConstants.QUEUE_PREFIX);
from("direct:poll")
.setHeader(HazelcastConstants.OPERATION, constant(HazelcastConstants.POLL_OPERATION))
.toF("hazelcast:%sbar", HazelcastConstants.QUEUE_PREFIX);
peek の例: リンクのコピーリンクがクリップボードにコピーされました!
from("direct:peek")
.setHeader(HazelcastConstants.OPERATION, constant(HazelcastConstants.PEEK_OPERATION))
.toF("hazelcast:%sbar", HazelcastConstants.QUEUE_PREFIX);
from("direct:peek")
.setHeader(HazelcastConstants.OPERATION, constant(HazelcastConstants.PEEK_OPERATION))
.toF("hazelcast:%sbar", HazelcastConstants.QUEUE_PREFIX);
オファーのサンプル: リンクのコピーリンクがクリップボードにコピーされました!
from("direct:offer")
.setHeader(HazelcastConstants.OPERATION, constant(HazelcastConstants.OFFER_OPERATION))
.toF("hazelcast:%sbar", HazelcastConstants.QUEUE_PREFIX);
from("direct:offer")
.setHeader(HazelcastConstants.OPERATION, constant(HazelcastConstants.OFFER_OPERATION))
.toF("hazelcast:%sbar", HazelcastConstants.QUEUE_PREFIX);
removevalue の例: リンクのコピーリンクがクリップボードにコピーされました!
from("direct:removevalue")
.setHeader(HazelcastConstants.OPERATION, constant(HazelcastConstants.REMOVEVALUE_OPERATION))
.toF("hazelcast:%sbar", HazelcastConstants.QUEUE_PREFIX);
from("direct:removevalue")
.setHeader(HazelcastConstants.OPERATION, constant(HazelcastConstants.REMOVEVALUE_OPERATION))
.toF("hazelcast:%sbar", HazelcastConstants.QUEUE_PREFIX);
キューコンシューマー from ("hazelcast:queue:foo") リンクのコピーリンクがクリップボードにコピーされました!
トピックの使用 リンクのコピーリンクがクリップボードにコピーされました!
トピックプロデューサー - to ("hazelcast:topic:foo") リンクのコピーリンクがクリップボードにコピーされました!
公開のサンプル リンクのコピーリンクがクリップボードにコピーされました!
from("direct:add")
.setHeader(HazelcastConstants.OPERATION, constant(HazelcastConstants.PUBLISH_OPERATION))
.toF("hazelcast:%sbar", HazelcastConstants.PUBLISH_OPERATION);
from("direct:add")
.setHeader(HazelcastConstants.OPERATION, constant(HazelcastConstants.PUBLISH_OPERATION))
.toF("hazelcast:%sbar", HazelcastConstants.PUBLISH_OPERATION);
Topic consumer - from ("hazelcast:topic:foo") リンクのコピーリンクがクリップボードにコピーされました!
List の使用 リンクのコピーリンクがクリップボードにコピーされました!
プロデューサー to ("hazelcast:list:foo")を一覧表示します。 リンクのコピーリンクがクリップボードにコピーされました!
追加する例: リンクのコピーリンクがクリップボードにコピーされました!
from("direct:add")
.setHeader(HazelcastConstants.OPERATION, constant(HazelcastConstants.ADD_OPERATION))
.toF("hazelcast:%sbar", HazelcastConstants.LIST_PREFIX);
from("direct:add")
.setHeader(HazelcastConstants.OPERATION, constant(HazelcastConstants.ADD_OPERATION))
.toF("hazelcast:%sbar", HazelcastConstants.LIST_PREFIX);
get の例: リンクのコピーリンクがクリップボードにコピーされました!
from("direct:get")
.setHeader(HazelcastConstants.OPERATION, constant(HazelcastConstants.GET_OPERATION))
.toF("hazelcast:%sbar", HazelcastConstants.LIST_PREFIX)
.to("seda:out");
from("direct:get")
.setHeader(HazelcastConstants.OPERATION, constant(HazelcastConstants.GET_OPERATION))
.toF("hazelcast:%sbar", HazelcastConstants.LIST_PREFIX)
.to("seda:out");
setvalue の例: リンクのコピーリンクがクリップボードにコピーされました!
from("direct:set")
.setHeader(HazelcastConstants.OPERATION, constant(HazelcastConstants.SETVALUE_OPERATION))
.toF("hazelcast:%sbar", HazelcastConstants.LIST_PREFIX);
from("direct:set")
.setHeader(HazelcastConstants.OPERATION, constant(HazelcastConstants.SETVALUE_OPERATION))
.toF("hazelcast:%sbar", HazelcastConstants.LIST_PREFIX);
removevalue の例: リンクのコピーリンクがクリップボードにコピーされました!
from("direct:removevalue")
.setHeader(HazelcastConstants.OPERATION, constant(HazelcastConstants.REMOVEVALUE_OPERATION))
.toF("hazelcast:%sbar", HazelcastConstants.LIST_PREFIX);
from("direct:removevalue")
.setHeader(HazelcastConstants.OPERATION, constant(HazelcastConstants.REMOVEVALUE_OPERATION))
.toF("hazelcast:%sbar", HazelcastConstants.LIST_PREFIX);
list consumer from ("hazelcast:list:foo") リンクのコピーリンクがクリップボードにコピーされました!
SEDA の使用 リンクのコピーリンクがクリップボードにコピーされました!
SEDA producer to("hazelcast:seda:foo") リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | デフォルト値 | 説明 |
|---|---|---|
transferExchange
|
false
|
Apache Camel 2.8.0: true に設定すると、エクスチェンジ全体が転送されます。ヘッダーまたはボディーにシリアライズ可能なオブジェクトが含まれる場合、それらはスキップされます。 |
from("direct:foo")
.to("hazelcast:seda:foo");
from("direct:foo")
.to("hazelcast:seda:foo");
<route> <from uri="direct:start" /> <to uri="hazelcast:seda:foo" /> </route>
<route>
<from uri="direct:start" />
<to uri="hazelcast:seda:foo" />
</route>
SEDA consumer from("hazelcast:seda:foo") リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | デフォルト値 | 説明 |
|---|---|---|
pollInterval
|
1000
|
Camel 2.15 以降非推奨になりました。代わりに pollTimeout を使用します。
|
pollTimeout
|
1000
|
SEDA キューから消費する際に使用するタイムアウト。タイムアウトが発生すると、コンシューマーは実行を継続できるかどうかを確認できます。値を低く設定すると、シャットダウン時にコンシューマーがより迅速に対応できるようになります。 |
concurrentConsumers
|
1
|
SEDA キューからの同時コンシューマーのポーリングを使用します。 |
transferExchange
|
false
|
Camel 2.8.0: true に設定すると、エクスチェンジ全体が転送されます。ヘッダーまたはボディーにシリアライズ可能なオブジェクトが含まれる場合、それらはスキップされます。 |
transacted
|
false
|
Camel 2.10.4: true に設定すると、コンシューマーはトランザクションモードで実行されます。 |
from("hazelcast:seda:foo")
.to("mock:result");
from("hazelcast:seda:foo")
.to("mock:result");
<route> <from uri="hazelcast:seda:foo" /> <to uri="mock:result" /> </route>
<route>
<from uri="hazelcast:seda:foo" />
<to uri="mock:result" />
</route>
Atomic Number の使用 リンクのコピーリンクがクリップボードにコピーされました!
atomic number producer - to ("hazelcast:atomicnumber:foo") リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | タイプ | 説明 |
|---|---|---|
hazelcast.operation.type
|
文字列
|
有効な値は、setvalue、get、increase、decrease、destroy です。 |
| 名前 | タイプ | 説明 |
|---|---|---|
CamelHazelcastOperationType
|
文字列
|
有効な値は、setvalue、get、grade、destroy Available (Apache Camel バージョン 2.8 の場合)です。 |
セットのサンプル: リンクのコピーリンクがクリップボードにコピーされました!
from("direct:set")
.setHeader(HazelcastConstants.OPERATION, constant(HazelcastConstants.SETVALUE_OPERATION))
.toF("hazelcast:%sfoo", HazelcastConstants.ATOMICNUMBER_PREFIX);
from("direct:set")
.setHeader(HazelcastConstants.OPERATION, constant(HazelcastConstants.SETVALUE_OPERATION))
.toF("hazelcast:%sfoo", HazelcastConstants.ATOMICNUMBER_PREFIX);
template.sendBody ("direct:set", 10);
get の例: リンクのコピーリンクがクリップボードにコピーされました!
from("direct:get")
.setHeader(HazelcastConstants.OPERATION, constant(HazelcastConstants.GET_OPERATION))
.toF("hazelcast:%sfoo", HazelcastConstants.ATOMICNUMBER_PREFIX);
from("direct:get")
.setHeader(HazelcastConstants.OPERATION, constant(HazelcastConstants.GET_OPERATION))
.toF("hazelcast:%sfoo", HazelcastConstants.ATOMICNUMBER_PREFIX);
long body = template.requestBody("direct:get", null, Long.class); で数値を取得できます。
increment のサンプル: リンクのコピーリンクがクリップボードにコピーされました!
from("direct:increment")
.setHeader(HazelcastConstants.OPERATION, constant(HazelcastConstants.INCREMENT_OPERATION))
.toF("hazelcast:%sfoo", HazelcastConstants.ATOMICNUMBER_PREFIX);
from("direct:increment")
.setHeader(HazelcastConstants.OPERATION, constant(HazelcastConstants.INCREMENT_OPERATION))
.toF("hazelcast:%sfoo", HazelcastConstants.ATOMICNUMBER_PREFIX);
デクリメントのサンプル: リンクのコピーリンクがクリップボードにコピーされました!
from("direct:decrement")
.setHeader(HazelcastConstants.OPERATION, constant(HazelcastConstants.DECREMENT_OPERATION))
.toF("hazelcast:%sfoo", HazelcastConstants.ATOMICNUMBER_PREFIX);
from("direct:decrement")
.setHeader(HazelcastConstants.OPERATION, constant(HazelcastConstants.DECREMENT_OPERATION))
.toF("hazelcast:%sfoo", HazelcastConstants.ATOMICNUMBER_PREFIX);
破棄のサンプル リンクのコピーリンクがクリップボードにコピーされました!
from("direct:destroy")
.setHeader(HazelcastConstants.OPERATION, constant(HazelcastConstants.DESTROY_OPERATION))
.toF("hazelcast:%sfoo", HazelcastConstants.ATOMICNUMBER_PREFIX);
from("direct:destroy")
.setHeader(HazelcastConstants.OPERATION, constant(HazelcastConstants.DESTROY_OPERATION))
.toF("hazelcast:%sfoo", HazelcastConstants.ATOMICNUMBER_PREFIX);
クラスターのサポート リンクのコピーリンクがクリップボードにコピーされました!
instance consumer - from("hazelcast:instance:foo") リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | タイプ | 説明 |
|---|---|---|
hazelcast.listener.time
|
Long
|
イベントの時間(ミリ秒単位) |
hazelcast.listener.type
|
文字列
|
map consumer sets here "instancelistener" |
hazelcast.listener.action
|
文字列
|
イベントのタイプ:ここで 追加 または 削除されています。 |
hazelcast.instance.host
|
文字列
|
インスタンスのホスト名 |
hazelcast.instance.port
|
整数
|
インスタンスのポート番号 |
| 名前 | タイプ | 説明 |
|---|---|---|
CamelHazelcastListenerTime
|
Long
|
イベントの時間(ミリス バージョン 2.8 でのイベント時間) |
CamelHazelcastListenerType
|
文字列
|
map consumer sets here "instancelistener" Version 2.8 |
CamelHazelcastListenerActionn
|
文字列
|
イベントのタイプ:ここでは を 追加 または 削除 します。 バージョン 2.8 |
CamelHazelcastInstanceHost
|
文字列
|
インスタンス バージョン 2.8のホスト名 |
CamelHazelcastInstancePort
|
整数
|
インスタンスの バージョン 2.8 のポート番号 |
hazelcast リファレンスの使用 リンクのコピーリンクがクリップボードにコピーされました!
名前 リンクのコピーリンクがクリップボードにコピーされました!
インスタンス別 リンクのコピーリンクがクリップボードにコピーされました!
hazelcast インスタンスを OSGI サービスとして公開 リンクのコピーリンクがクリップボードにコピーされました!
バンドル A はインスタンスを作成し、OSGI サービスとして公開します。 リンクのコピーリンクがクリップボードにコピーされました!
バンドル B は インスタンスを使用します。 リンクのコピーリンクがクリップボードにコピーされました!
第65章 HBase リンクのコピーリンクがクリップボードにコピーされました!
HBase コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
pom.xml に以下の依存関係を追加する必要があります。
Apache HBase の概要 リンクのコピーリンクがクリップボードにコピーされました!
Camel および HBase リンクのコピーリンクがクリップボードにコピーされました!
- HBase は列をファミリーにグループ化するため、命名規則を使用してプロパティーを列にマッピングするだけでは不十分です。
- HBase には 型の概念がありません。つまり、すべてを byte[] として格納し、byte[] が String、Number、シリアル化された Java オブジェクト、またはバイナリーデータのみを表しているかどうかは認識されません。
コンポーネントの設定 リンクのコピーリンクがクリップボードにコピーされました!
<bean id="hbase" class="org.apache.camel.component.hbase.HBaseComponent">
<property name="configuration" ref="config"/>
</bean>
<bean id="hbase" class="org.apache.camel.component.hbase.HBaseComponent">
<property name="configuration" ref="config"/>
</bean>
HBase プロデューサー リンクのコピーリンクがクリップボードにコピーされました!
hbase://table[?options]
hbase://table[?options]
- Put
- Get
- 削除
- スキャン
プロデューサーでサポートされる URI オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | デフォルト値 | 説明 |
|---|---|---|
operation
|
CamelHBasePut
|
実行する HBase 操作。サポートされる値:CamelHBasePut、CamelHBaseGet、CamelHBaseDelete、および CamelHBaseScan。
|
maxResults
|
100
|
スキャンする行の最大数。サポートされる操作:CamelHBaseScan
|
mappingStrategyName
|
header
|
Camel メッセージを HBase 列にマッピングするために使用するストラテジー。サポートされる値は、ヘッダー、または ボディー です。
|
mappingStrategyClassName
|
null
|
カスタムマッピングストラテジー実装のクラス名。 |
filters
|
null
|
フィルターの一覧。サポートされる操作:CamelHBaseScan。
|
userGroupInformation
|
UserGroupInformation
|
Camel 2.17: Kerberos を使用する場合など、HBase と通信する権限を定義します。 |
row.xxx
|
null
|
Camel 2.17: キー/値を HBaseRow モデルにマッピングするのに使用されます。Camel 2.17 以降 では、マッピングでは
row. 接頭辞を使用する必要があります。キーは、ヘッダーマッピングテーブルに以下に一覧表示されます。たとえば、以下のようになります。 row.family=info&row.qualifier=firstName&row.family2=birthdate&row.qualifier2=year
|
| 名前 | デフォルト値 | 説明 |
|---|---|---|
rowId
|
行の ID。これは、通常 Exchange ごとの行の変更として使用が制限されています。 | |
rowType
|
文字列 |
行 ID に対応するタイプ。サポートされる操作:CamelHBaseScan。
|
family
|
列ファミリー。複数の列を参照するための数字接尾辞を サポート します。 | |
修飾子
|
列修飾子。複数の列を参照するための数字接尾辞を サポート します。 | |
value
|
値。複数の列を参照するための数字接尾辞を サポート します。 | |
valueType
|
文字列 |
値のタイプ。複数の列を参照するための数字接尾辞をサポートします。サポートされる操作:CamelHBaseGet および CamelHBaseScan。
|
操作を配置します。 リンクのコピーリンクがクリップボードにコピーされました!
RowId2, RowId3, RowId4 など)を使用する必要があります。最初のヘッダーのみには数字 1 がありません。
操作を取得します。 リンクのコピーリンクがクリップボードにコピーされました!
操作を削除します。 リンクのコピーリンクがクリップボードにコピーされました!
スキャン操作。 リンクのコピーリンクがクリップボードにコピーされました!
<route>
<from uri="direct:in"/>
<to uri="hbase:mytable?operation=CamelHBaseScan&amily=myfamily&ualifier=myqualifier&alueType=java.lang.Long&owType=java.lang.String"/>
<to uri="log:out"/>
</route>
<route>
<from uri="direct:in"/>
<to uri="hbase:mytable?operation=CamelHBaseScan&amily=myfamily&ualifier=myqualifier&alueType=java.lang.Long&owType=java.lang.String"/>
<to uri="log:out"/>
</route>
ModelAwareColumnMatchingFilter を使用します。
HBase コンシューマー リンクのコピーリンクがクリップボードにコピーされました!
hbase://table[?options]
hbase://table[?options]
hbase:mutable?family=name&qualifer=first&valueType=java.lang.String&family=address&qualifer=number&valueType2=java.lang.Integer&rowType=java.lang.Long
hbase:mutable?family=name&qualifer=first&valueType=java.lang.String&family=address&qualifer=number&valueType2=java.lang.Integer&rowType=java.lang.Long
コンシューマーでサポートされている URI オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | デフォルト値 | 説明 |
|---|---|---|
initialDelay
|
1000
|
最初のポーリングが開始されるまでの時間(ミリ秒単位)。 |
delay
|
500
|
次のポーリングまでの時間 (ミリ秒単位)。 |
useFixedDelay
|
true
|
固定遅延または固定レートを使用するかどうかを制御します。詳細は、JDK の ScheduledExecutorService を参照してください。 |
| timeUnit |
TimeUnit.MILLISECONDS
|
initialDelay および delay オプションの時間単位。
|
runLoggingLevel
|
TRACE
|
Camel 2.8: コンシューマーはポーリング時に開始/完了のログ行をログに記録します。このオプションを使用すると、ログレベルを設定できます。 |
operation
|
CamelHBasePut
|
実行する HBase 操作。サポートされる値:CamelHBasePut、CamelHBaseGet、CamelHBaseDelete、および CamelHBaseScan。
|
maxResults
|
100
|
スキャンする行の最大数。サポートされる操作:CamelHBaseScan
|
mappingStrategyName
|
header
|
Camel メッセージを HBase 列にマッピングするために使用するストラテジー。サポートされる値は、ヘッダー、または ボディー です。
|
mappingStrategyClassName
|
null
|
カスタムマッピングストラテジー実装のクラス名。 |
filters
|
null
|
フィルターの一覧。サポートされる操作:CamelHBaseScan
|
remove
|
true
|
true の場合、Camel HBase Consumer は処理する行を削除します。
|
userGroupInformation
|
UserGroupInformation
|
Camel 2.17: Kerberos を使用する場合など、HBase と通信する権限を定義します。 |
| 名前 | デフォルト値 | 説明 |
|---|---|---|
rowId
|
行の ID。これは、通常 Exchange ごとの行の変更として使用が制限されています。 | |
rowType
|
文字列 | 行 ID に対応するタイプ。サポートされる操作: CamelHBaseScan |
family
|
列ファミリー。**upports には、複数の列を参照するための数字の接尾辞が含まれます。 | |
修飾子
|
列修飾子。*複数の列を参照するための数字接尾辞をサポートします。 | |
value
|
値。複数の列を参照するための数字接尾辞をサポートします。 | |
rowModel
|
文字列 | 各行のモデル化方法を記述する org.apache.camel.component.hbase.model.HBaseRow のインスタンス |
HBase Idempotent リポジトリー リンクのコピーリンクがクリップボードにコピーされました!
HBase マッピング リンクのコピーリンクがクリップボードにコピーされました!
HBase ヘッダーマッピングの例 リンクのコピーリンクがクリップボードにコピーされました!
| ヘッダー | 値 |
|---|---|
| CamelHBaseRowId | myrow |
| CamelHBaseFamily | myfamily |
| CamelHBaseQualifier | myqualifier |
| CamelHBaseValue | myvalue |
| ヘッダー | 値 |
|---|---|
| CamelHBaseRowId | myrow |
| CamelHBaseFamily | myfamily |
| CamelHBaseQualifier | myqualifier |
| CamelHBaseValue | myvalue |
| CamelHBaseRowId2 | myrow2 |
| CamelHBaseFamily2 | myfamily |
| CamelHBaseQualifier2 | myqualifier |
| CamelHBaseValue2 | myvalue2 |
| ヘッダー | 値 |
|---|---|
| CamelHBaseFamily | myfamily |
| CamelHBaseQualifier | myqualifier |
| CamelHBaseValueType | Long |
ボディーマッピングの例 リンクのコピーリンクがクリップボードにコピーされました!
hbase:mytable?mappingStrategy=body
hbase:mytable?mappingStrategy=body
その他の参考資料 リンクのコピーリンクがクリップボードにコピーされました!
第66章 HDFS リンクのコピーリンクがクリップボードにコピーされました!
HDFS コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
pom.xml に以下の依存関係を追加する必要があります。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
hdfs://hostname[:port][/path][?options]
hdfs://hostname[:port][/path][?options]
?option=value&option=value&.. の形式で追加できます。パスは以下のように処理されます。
- コンシューマーとして、ファイルの場合、ファイルを読み取るだけです。それ以外の場合は、設定されたパターンを満たすパス下のすべてのファイルをスキャンするディレクトリーを表します。このディレクトリー下のすべてのファイルは同じタイプである必要があります。
- プロデューサーとして、少なくとも 1 つの分割ストラテジーが定義されている場合、パスはディレクトリーと見なされ、そのディレクトリーの下に、プロデューサーは設定された
UuidGeneratorを使用して分割された名前ごとに異なるファイルを作成します。
chunkSize オプションを使用して、チャンクのサイズを設定できます。File コンポーネントを使用して HDFS から読み取り、通常のファイルに書き込む場合は、fileMode=Append を設定してチャンクを連結できます。
オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | デフォルト値 | 説明 |
|---|---|---|
overwrite
|
true
|
ファイルは上書きできる |
append
|
false
|
既存のファイルに追加します。すべての HDFS ファイルシステムが append オプションをサポートしているわけではないことに注意してください。 |
bufferSize
|
4096
|
HDFS が使用するバッファーサイズ |
レプリケーション
|
3
|
HDFS レプリケーション係数 |
blockSize
|
67108864
|
HDFS ブロックのサイズ |
fileType
|
NORMAL_FILE
|
SEQUENCE_FILE、MAP_FILE、ARRAY_FILE、または BLOOMMAP_FILE を指定できます。Hadoop を参照してください。
|
fileSystemType
|
HDFS
|
ローカルファイルシステムの LOCAL にすることができます。 |
keyType
|
NULL
|
シーケンスまたはマップファイルの場合のキーのタイプ。以下を参照してください。
|
valueType
|
TEXT
|
シーケンスまたはマップファイルの場合のキーのタイプ。以下を参照してください。
|
splitStrategy
|
異なる基準に基づいてファイルを分割する方法に関するストラテジーを記述する文字列。以下を参照してください。
|
|
openedSuffix
|
開放済み
|
読み取り/書き込み用にファイルが開かれると、書き込みフェーズでファイルを読み取らないように、この接尾辞でファイルの名前が変更されます。
|
readSuffix
|
read
|
ファイルを読み込んだら、再度読み取るのを回避するために、この接尾辞で名前を変更します。
|
initialDelay
|
0
|
コンシューマーの場合、ディレクトリーのスキャンを開始する前に待機する時間(ミリ秒単位)。
|
delay
|
0
|
ディレクトリースキャンの間隔(ミリ秒単位)。
|
pattern
|
*
|
ディレクトリーのスキャンに使用されるパターン
|
chunkSize
|
4096
|
通常のファイルを読み取る場合、これはチャンクごとにメッセージを生成するチャンクに分割されます。
|
connectOnStartup
|
true
|
Camel 2.9.3/ 2.10.1: プロデューサー/コンシューマーの開始時に HDFS ファイルシステムに接続するかどうか。false の場合、接続はオンデマンドで作成されます。HDFS は、45 x 20 秒再配信をハードコーディングしているため、接続を確立するために最大 15 分かかる可能性があることに注意してください。このオプションを false に設定すると、アプリケーションは起動できるようになり、最大 15 分間ブロックされません。
|
owner
|
Camel 2.13/2.12.4: コンシューマーがファイルを取得するには、ファイルの所有者はこの所有者と一致する必要があります。それ以外の場合は、ファイルはスキップされます。
|
keyType および ValueType リンクのコピーリンクがクリップボードにコピーされました!
- NULL これは、キーまたは値が存在しないことを意味します。
- バイトを書き込む BYTE では、java バイトクラスは BYTE にマッピングされます。
- バイトのシーケンスを書き込む BYTES。java ByteBuffer クラスをマッピングします。
- java 整数を書き込む INT
- java 浮動小数点を書き込む FLOAT
- java long を記述する LONG
- Java の二重書き込み用の DOUBLE
- java 文字列を書き込む TEXT
分割ストラテジー リンクのコピーリンクがクリップボードにコピーされました!
- split strategy オプションが定義されている場合、hdfs パスがディレクトリーとして使用され、設定された
UuidGeneratorを使用してファイルが作成されます。 - 分割条件が満たされるたびに、新しいファイルが作成されます。
splitStrategyオプションは、以下の構文で文字列として定義されます。splitStrategy=<ST>:<value>,<ST>:<value>,*
<ST> は以下のとおりです。
- BYTES は新しいファイルが作成され、書き込まれたバイト数が <value> を超えると古いファイルが閉じられます。
- MESSAGES は新しいファイルが作成され、書き込まれたメッセージの数が <value> を超える場合に古いファイルが閉じられます。
- IDLE 新しいファイルが作成され、最後の <value> ミリ秒で書き込みが行われなかった場合に古いファイルが閉じられます。
HdfsConstants.HDFS_CLOSE ヘッダーを false に設定して BYTES/MESSAGES 設定を使用する必要があります。そうしないと、ファイルは各メッセージで閉じられます。
hdfs://localhost/tmp/simple-file?splitStrategy=IDLE:1000,BYTES:5
hdfs://localhost/tmp/simple-file?splitStrategy=IDLE:1000,BYTES:5
hadoop fs ls /tmp/simplefile を実行すると、複数のファイルが作成されていることがわかります。
メッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
|
ヘッダー
|
説明
|
|---|---|
CamelFileName
|
Camel 2.13: 書き込むファイルの名前を指定します(エンドポイントパスに相対的)。名前は
String または Expression オブジェクトにすることができます。分割ストラテジーを使用しない場合のみ関連します。
|
ファイルストリームを閉じるための制御 リンクのコピーリンクがクリップボードにコピーされました!
HdfsConstants.HDFS_CLOSE (value = "CamelHdfsClose")を使用してこれを制御することができます。この値をブール値に設定すると、ストリームを閉じるべきかどうかを明示的に制御できます。
OSGi でのこのコンポーネントの使用 リンクのコピーリンクがクリップボードにコピーされました!
第67章 HDFS2 リンクのコピーリンクがクリップボードにコピーされました!
HDFS2 コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
pom.xml に追加する必要があります。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
hdfs2://hostname[:port][/path][?options]
hdfs2://hostname[:port][/path][?options]
?option=value&option=value&... の形式で、クエリーオプションを URI に追加できます。パスは以下の方法で処理されます。
- コンシューマーとして、ファイルの場合、ファイルを読み取るだけです。それ以外の場合は、設定されたパターンを満たすパス下のすべてのファイルをスキャンするディレクトリーを表します。このディレクトリー下のすべてのファイルは同じタイプである必要があります。
- プロデューサーとして、少なくとも 1 つの分割ストラテジーが定義されている場合、パスはディレクトリーと見なされ、そのディレクトリー下で、プロデューサーは設定された UuidGenerator を使用して、分割ごとに異なるファイルを作成します。
chunkSize オプションを使用して、チャンクのサイズを設定できます。File コンポーネントを使用して HDFS から読み取り、通常のファイルに書き込む場合は、fileMode=Append を設定してチャンクを連結できます。
オプション リンクのコピーリンクがクリップボードにコピーされました!
|
名前
|
デフォルト値
|
説明
|
|---|---|---|
overwrite
|
true
|
ファイルは上書きできる
|
append
|
false
|
既存のファイルに追加します。すべての HDFS ファイルシステムが append オプションをサポートしているわけではないことに注意してください。
|
bufferSize
|
4096
|
HDFS が使用するバッファーサイズ
|
replication
|
3
|
HDFS レプリケーション係数
|
blockSize
|
67108864
|
HDFS ブロックのサイズ
|
fileType
|
NORMAL_FILE
|
SEQUENCE_FILE、MAP_FILE、ARRAY_FILE、または BLOOMMAP_FILE を指定できます。Hadoop を参照してください。
|
fileSystemType
|
HDFS
|
ローカルファイルシステムの LOCAL にすることができます。
|
keyType
|
NULL
|
シーケンスまたはマップファイルの場合のキーのタイプ。以下を参照してください。
|
valueType
|
TEXT
|
シーケンスまたはマップファイルの場合のキーのタイプ。以下を参照してください。
|
splitStrategy
|
|
異なる基準に基づいてファイルを分割する方法に関するストラテジーを記述する文字列。以下を参照してください。
|
openedSuffix
|
opened
|
読み取り/書き込みのためにファイルを開くと、書き込みフェーズでファイルを読み取らないように、この接尾辞でファイルの名前が変更されます。
|
readSuffix
|
read
|
ファイルを読み込んだら、再度読み取るのを回避するために、この接尾辞で名前を変更します。
|
initialDelay
|
0
|
コンシューマーの場合、ディレクトリーのスキャンを開始する前に待機する時間(ミリ秒単位)。
|
delay
|
0
|
ディレクトリースキャンの間隔(ミリ秒単位)。
|
pattern
|
*
|
ディレクトリーのスキャンに使用されるパターン
|
chunkSize
|
4096
|
通常のファイルを読み取る場合、これはチャンクごとにメッセージを生成するチャンクに分割されます。
|
connectOnStartup
|
true
|
Camel 2.9.3/ 2.10.1: プロデューサー/コンシューマーの開始時に HDFS ファイルシステムに接続するかどうか。
false の場合、接続はオンデマンドで作成されます。HDFS は、45 x 20 秒再配信をハードコーディングしているため、接続を確立するために最大 15 分かかる可能性があることに注意してください。このオプションを false に設定すると、アプリケーションは起動でき、最大 15 分間ブロックされません。
|
owner
|
|
コンシューマーがファイルを選択できるようにするには、ファイルの所有者はこの所有者と一致する必要があります。それ以外の場合は、ファイルはスキップされます。
|
keyType および ValueType リンクのコピーリンクがクリップボードにコピーされました!
- NULL これは、キーまたは値が存在しないことを意味します。
- バイトを書き込む BYTE では、java バイトクラスは BYTE にマッピングされます。
- バイトのシーケンスを書き込む BYTES。java ByteBuffer クラスをマッピングします。
- java 整数を書き込む INT
- java 浮動小数点を書き込む FLOAT
- java long を記述する LONG
- Java の二重書き込み用の DOUBLE
- java 文字列を書き込む TEXT
分割ストラテジー リンクのコピーリンクがクリップボードにコピーされました!
- split strategy オプションが定義されている場合、hdfs パスがディレクトリーとして使用され、設定された UuidGeneratorを使用してファイルが作成されます。
- 分割条件が満たされるたびに、新しいファイルが作成されます。splitStrategy オプションは、splitStrategy=<ST>:<value>,<ST>:<value>,* 構文で文字列として定義されます。
- BYTES は新しいファイルが作成され、書き込まれたバイト数が <value> を超えると古いファイルが閉じられます。
- MESSAGES は新しいファイルが作成され、書き込まれたメッセージの数が <value> を超える場合に古いファイルが閉じられます。
- IDLE 新しいファイルが作成され、最後の <value> ミリ秒で書き込みが行われなかった場合に古いファイルが閉じられます。
hdfs2://localhost/tmp/simple-file?splitStrategy=IDLE:1000,BYTES:5
hdfs2://localhost/tmp/simple-file?splitStrategy=IDLE:1000,BYTES:5
hadoop fs -ls /tmp/simple-file を実行すると、複数のファイルが作成されていることがわかります。
メッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
プロデューサーのみ リンクのコピーリンクがクリップボードにコピーされました!
|
ヘッダー
|
説明
|
|---|---|
CamelFileName
|
Camel 2.13: 書き込むファイルの名前を指定します(エンドポイントパスに相対的)。名前は
String または Expression オブジェクトにすることができます。分割ストラテジーを使用しない場合のみ関連します。
|
ファイルストリームを閉じるための制御 リンクのコピーリンクがクリップボードにコピーされました!
HdfsConstants.HDFS_CLOSE (値 = "CamelHdfsClose")を使用して制御することができます。この値をブール値に設定すると、ストリームを閉じるべきかどうかを明示的に制御できます。
OSGi でのこのコンポーネントの使用 リンクのコピーリンクがクリップボードにコピーされました!
org.apache.hadoop.fs.FileSystem 実装の検出に際して、Hadoop 2.x が使用するメカニズムに関連する OSGi 環境でこのコンポーネントを実行する場合には、いくつかの quirk があります。Hadoop 2.x は java.util.ServiceLoader を使用します。これは、利用可能なファイルシステムタイプと実装を定義する /META-INF/services/org.apache.hadoop.fs.FileSystem ファイルを探します。これらのリソースは、OSGi 内で実行すると利用できません。
camel-hdfs コンポーネントと同様に、デフォルトの設定ファイルはバンドルクラ出力ダーから見える必要があります。これに対処する一般的な方法は、バンドルルートに core-default.xml のコピー(例: hdfs-default.xml)を保持することです。
手動で定義されたルートでのこのコンポーネントの使用 リンクのコピーリンクがクリップボードにコピーされました!
- ルートを定義するバンドルで
/META-INF/services/org.apache.hadoop.fs.FileSystemリソースをパッケージ化します。このリソースには、必要なHadoop 2.xファイルシステムの実装がすべて含まれているはずです。 org.apache.hadoop.fs.FileSystemクラス内の内部かつ静的キャッシュを設定するボイラープレート初期化コードを提供します。
Blueprint コンテナーでのこのコンポーネントの使用 リンクのコピーリンクがクリップボードにコピーされました!
- Blueprint 定義を含むバンドルを使用して
/META-INF/services/org.apache.hadoop.fs.FileSystemリソースをパッケージ化します。 - Blueprint 定義ファイルに以下を追加します。
第68章 Hipchat リンクのコピーリンクがクリップボードにコピーされました!
HipChat コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
|
有効な Hipchat ユーザーアカウントがあり、メッセージの生成/消費に使用できる 個人アクセストークン を取得する必要があります。
|
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
hipchat://[host][:port]?options
hipchat://[host][:port]?options
URI オプション リンクのコピーリンクがクリップボードにコピーされました!
|
名前
|
デフォルト値
|
コンテキスト
| 必須 | producer/Consumer |
説明
|
|---|---|---|---|---|---|
protocol
|
null
|
共有
|
はい | 両方 |
Hipchat サーバーに接続するためのデフォルトのプロトコル
|
host
|
null
|
共有 | はい | 両方 | 接続する Hipchat の API ホスト |
port
|
80 | 共有 | いいえ | 両方 | Hipchat ホストで接続するポート |
authToken
|
null
|
共有
|
はい | 両方 | Hipchatから取得した認証トークン(パーソナルアクセストークン) |
delay
|
5000 | 共有 | いいえ | コンシューマー | 提供された consumeUsers からのメッセージを消費するための millisec のポーリング間隔。これを減らす前に、流量制御 についてお読みください。 |
consumeUsers
|
null
|
共有
|
いいえ | コンシューマー |
authToken の所有者にメッセージを消費する必要があるユーザー @Mentions またはメールのコンマ区切りリスト。
|
スケジュールされたポーリングコンシューマー リンクのコピーリンクがクリップボードにコピーされました!
Hipchat コンシューマーによって設定されたメッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
|
HipChat プロデューサー リンクのコピーリンクがクリップボードにコピーされました!
Hipchat プロデューサーによって評価されるメッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
|
Hipchat プロデューサーによって設定されたメッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
|
Dependencies リンクのコピーリンクがクリップボードにコピーされました!
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-hipchat</artifactId>
<version>${camel-version}</version>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-hipchat</artifactId>
<version>${camel-version}</version>
</dependency>
${camel-version} は実際のバージョンの Camel (2.15.0 以降)に置き換える必要があります。
第69章 HL7 リンクのコピーリンクがクリップボードにコピーされました!
HL7 コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
- HL7 MLLP codec ( Mina)
- Camel 2.15 以降の Netty4 の HL7 MLLP コーデック
- HAPI および文字列間の 型コンバーター
- HAPI ライブラリーを使用した HL7 DataFormat
- さらに使いやすいため、105章MINA2 - 非推奨 コンポーネントと統合されています。
pom.xml に以下の依存関係を追加する必要があります。
Camel on EAP デプロイメント リンクのコピーリンクがクリップボードにコピーされました!
HL7 MLLP プロトコル リンクのコピーリンクがクリップボードにコピーされました!
camel-mina2 または camel-netty4 コンポーネントが HL7MLLPCodec (mina2)または HL7MLLPNettyDecoder/HL7MLLPNettyEncoder (Netty4)とともに使用されます。
| 名前 | デフォルト値 | 説明 |
|---|---|---|
startByte
|
0x0b
|
HL7 ペイロードにまたがる開始バイト。 |
endByte1
|
0x1c
|
HL7 ペイロードにまたがる最初のエンドバイト。 |
endByte2
|
0x0d
|
HL7 ペイロードにまたがる 2 番目の終了バイト。 |
charset
|
JVM のデフォルト | codec に使用するエンコーディング( 文字セット名)。指定しない場合、Camel は JVM のデフォルト Charset を 使用します。 |
produceString
|
true
|
Camel 2.14.1: true の場合、コーデックは定義された charset を使用して文字列を作成します。false の場合、コーデックはプレーンなバイトアレイをルートに送信し、HL7 Data Format が HL7 メッセージコンテンツから実際の文字セットを決定できるようにします。
|
convertLFtoCR
|
false
|
は、\n を \r (0x0d、13 進数)に変換します。HL7 は、セグメントターミネーターとして \r を使用します。HAPI ライブラリーには \r を使用する必要があります。
|
Mina を使用した HL7 リスナーの公開 リンクのコピーリンクがクリップボードにコピーされました!
<endpoint id="hl7MinaListener" uri="mina2:tcp://localhost:8888?sync=true&codec=#hl7codec"/>
<endpoint id="hl7MinaListener" uri="mina2:tcp://localhost:8888?sync=true&codec=#hl7codec"/>
hl7codec は Spring Bean ID であるため、mygreatcodecforhl7 または任意の名前を付けることができます。codec も Spring XML ファイルで設定されます。
<bean id="hl7codec" class="org.apache.camel.component.hl7.HL7MLLPCodec">
<property name="charset" value="iso-8859-1"/>
</bean>
<bean id="hl7codec" class="org.apache.camel.component.hl7.HL7MLLPCodec">
<property name="charset" value="iso-8859-1"/>
</bean>
from("hl7MinaListener").beanRef("patientLookupService");
from("hl7MinaListener").beanRef("patientLookupService");
<bean id="patientLookupService" class="com.mycompany.healthcare.service.PatientLookupService"/>
<bean id="patientLookupService" class="com.mycompany.healthcare.service.PatientLookupService"/>
Netty を使用した HL7 リスナーの公開(Camel 2.15 以降から利用可能) リンクのコピーリンクがクリップボードにコピーされました!
<endpoint id="hl7NettyListener" uri="netty4:tcp://localhost:8888?sync=true&encoder=#hl7encoder&decoder=#hl7decoder"/>
<endpoint id="hl7NettyListener" uri="netty4:tcp://localhost:8888?sync=true&encoder=#hl7encoder&decoder=#hl7decoder"/>
sync=true このリスナーが同期されているため、呼び出し元に HL7 応答を返すことを示します。HL7 コーデックは、encoder=#hl7encoder および decoder=#hl7decoder で設定されます。hl7encoder および hl7decoder は Bean ID のみであるため、名前が異なる可能性があることに注意してください。Bean は Spring XML ファイルで設定できます。
<bean id="hl7decoder" class="org.apache.camel.component.hl7.HL7MLLPNettyDecoderFactory"/> <bean id="hl7encoder" class="org.apache.camel.component.hl7.HL7MLLPNettyEncoderFactory"/>
<bean id="hl7decoder" class="org.apache.camel.component.hl7.HL7MLLPNettyDecoderFactory"/>
<bean id="hl7encoder" class="org.apache.camel.component.hl7.HL7MLLPNettyEncoderFactory"/>
hl7NettyListener エンドポイントはコンシューマーとしてルートで使用できます。
from("hl7NettyListener").beanRef("patientLookupService");
from("hl7NettyListener").beanRef("patientLookupService");
java.lang.String または byte[] を使用した HL7 モデル リンクのコピーリンクがクリップボードにコピーされました!
String をデータ形式として使用します。Camel は Type Converter を使用して文字列を HAPI HL7 モデルオブジェクトに変換しますが、データを独自に解析する場合は、プレーン String オブジェクトを使用できます。
produceString プロパティーを false に設定すると、Mina および Netty コーデックの両方がプレーン byte[] をデータ形式として使用することもできます。Type Converter は、byte[] を HAPI HL7 モデルオブジェクトとの間で変換することもできます。
HAPI を使用した HL7v2 モデル リンクのコピーリンクがクリップボードにコピーされました!
0101701234 で発行者を検索するリクエストです。
MSH|^~\\&|MYSENDER|MYRECEIVER|MYAPPLICATION||200612211200||QRY^A19|1234|P|2.4 QRD|200612211200|R|I|GetPatient|||1^RD|0101701234|DEM||
MSH|^~\\&|MYSENDER|MYRECEIVER|MYAPPLICATION||200612211200||QRY^A19|1234|P|2.4
QRD|200612211200|R|I|GetPatient|||1^RD|0101701234|DEM||
ca.uhn.hl7v2.model.Message オブジェクトを使用して作業できます。 たとえば、音声 ID を取得することができます。
Message msg = exchange.getIn().getBody(Message.class);
QRD qrd = (QRD)msg.get("QRD");
String patientId = qrd.getWhoSubjectFilter(0).getIDNumber().getValue(); // 0101701234
Message msg = exchange.getIn().getBody(Message.class);
QRD qrd = (QRD)msg.get("QRD");
String patientId = qrd.getWhoSubjectFilter(0).getIDNumber().getValue(); // 0101701234
byte[], String またはその他の単純なオブジェクト形式を使用する必要がないため、HL7 リスナーと組み合わせると便利です。HAPI HL7v2 モデルオブジェクトのみを使用できます。事前にメッセージタイプが分かっている場合は、よりタイプセーフになります。
QRY_A19 msg = exchange.getIn().getBody(QRY_A19.class); String patientId = msg.getQRD().getWhoSubjectFilter(0).getIDNumber().getValue();
QRY_A19 msg = exchange.getIn().getBody(QRY_A19.class);
String patientId = msg.getQRD().getWhoSubjectFilter(0).getIDNumber().getValue();
HL7 DataFormat リンクのコピーリンクがクリップボードにコピーされました!
marshal= メッセージからバイトストリームへ(HL7 MLLP コーデックを使用して応答する場合に使用できます)unmarshal= バイトストリームからメッセージへ(HL7 MLLP からストリームデータを受信する場合に使用できます)
marshal または unmarshal 操作を呼び出します。
DataFormat hl7 = new HL7DataFormat();
...
from("direct:hl7in").marshal(hl7).to("jms:queue:hl7out");
DataFormat hl7 = new HL7DataFormat();
...
from("direct:hl7in").marshal(hl7).to("jms:queue:hl7out");
DataFormat hl7 = new HL7DataFormat();
...
from("jms:queue:hl7out").unmarshal(hl7).to("patientLookupService");
DataFormat hl7 = new HL7DataFormat();
...
from("jms:queue:hl7out").unmarshal(hl7).to("patientLookupService");
marshal() を呼び出しずに)、キューから直接再度読み取ることができます(例: unmarshal()を呼び出さずに)。
unmarshal は \n から \r に変換してセグメント区切り文字を自動的に修正しません。この変換が必要な場合は、org.apache.camel.component.hl7.HL7#convertLFToCR で便利な Expression が提供されます。
marshal および unmarshal の両方が MSH-18 フィールドで提供された charset を評価します。このフィールドが空の場合、デフォルトでは、対応する Camel charset プロパティー/ヘッダーに含まれる charset が想定されます。HL7DataFormat クラスから継承する際に guessCharsetName メソッドを上書きすると、このデフォルトの動作を変更することもできます。
HL7DataFormat オブジェクトのインスタンスを作成する必要はありません。
from("direct:hl7in").marshal().hl7().to("jms:queue:hl7out");
from("jms:queue:hl7out").unmarshal().hl7().to("patientLookupService");
from("direct:hl7in").marshal().hl7().to("jms:queue:hl7out");
from("jms:queue:hl7out").unmarshal().hl7().to("patientLookupService");
メッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
unmarshal 操作は、MSH セグメントから以下のフィールドを Camel メッセージのヘッダーとして追加します。
| キー | MSH フィールド | 例 |
|---|---|---|
CamelHL7SendingApplication
|
MSH-3
|
MYSERVER
|
CamelHL7SendingFacility
|
MSH-4
|
MYSERVERAPP
|
CamelHL7ReceivingApplication
|
MSH-5
|
MYCLIENT
|
CamelHL7ReceivingFacility
|
MSH-6
|
MYCLIENTAPP
|
CamelHL7Timestamp
|
MSH-7
|
20071231235900
|
CamelHL7Security
|
MSH-8
|
null
|
CamelHL7MessageType
|
MSH-9-1
|
ADT
|
CamelHL7TriggerEvent
|
MSH-9-2
|
A01
|
CamelHL7MessageControl
|
MSH-10
|
1234
|
CamelHL7ProcessingId
|
MSH-11
|
P
|
CamelHL7VersionId
|
MSH-12
|
2.4
|
CamelHL7Context
|
-
|
Camel 2.14: メッセージの解析に使用された
HapiContext が含まれます。
|
CamelHL7Charset
|
MSH-18
|
Camel 2.14.1: Unicode UTF-8
|
CamelHL7Context 以外のヘッダーはすべて String 型です。ヘッダー値がない場合、その値は null になります。
オプション リンクのコピーリンクがクリップボードにコピーされました!
| オプション | デフォルト | 説明 |
|---|---|---|
validate
|
true
|
デフォルトの検証ルールを使用して HAPI Parser がメッセージを検証するかどうか。parser オプションまたは hapiContext オプションを使用して、目的の HAPI ValidationContext で初期化することが推奨されます。 |
parser
|
ca.uhn.hl7v2.parser.GenericParser
|
使用されるカスタムパーサー。タイプ ca.uhn.hl7v2.parser.Parser である必要があります。GenericParser では、XML でエンコードされた HL7v2 メッセージの解析も許可されることに注意してください。 |
hapiContext
|
ca.uhn.hl7v2.DefaultHapiContext
|
Camel 2.14: カスタムパーサー、カスタム ValidationContext などを定義できるカスタム HAPI コンテキスト。これにより、HL7 の解析およびレンダリングプロセスを完全に制御できます。
|
Dependencies リンクのコピーリンクがクリップボードにコピーされました!
camel-hl7 は HAPI ベースライブラリー のみを参照します。アプリケーションは、構造ライブラリー自体を含めます。たとえば、アプリケーションが HL7v2 メッセージバージョン 2.4 および 2.5 で機能する場合は、以下の依存関係を追加する必要があります。
Terser 言語 リンクのコピーリンクがクリップボードにコピーされました!
HL7 検証述語 リンクのコピーリンクがクリップボードにコピーされました!
HapiContext (Camel 2.14)を使用した HL7 検証述語 リンクのコピーリンクがクリップボードにコピーされました!
CamelHL7Context header で設定された HAPI コンテキストが転送され、このコンテキストの検証ルールを簡単に再利用できます。
HL7 確認式 リンクのコピーリンクがクリップボードにコピーされました!
ack 式は、この処理を非常に重要に達成できます。
追加のサンプル リンクのコピーリンクがクリップボードにコピーされました!
String HL7 リクエストが応答を返す HL7 リスナーに送信されます。
RouteBuilder を使用する Camel ルートは以下のようになります。
第70章 HTTP リンクのコピーリンクがクリップボードにコピーされました!
HTTP コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
pom.xml に以下の依存関係を追加する必要があります。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
http:hostname[:port][/resourceUri][?param1=value1][¶m2=value2]
http:hostname[:port][/resourceUri][?param1=value1][¶m2=value2]
例 リンクのコピーリンクがクリップボードにコピーされました!
| Java DSL | Spring DSL |
|---|---|
from("direct:start")
.to("http://myhost/mypath");
|
<from uri="direct:start"/> <to uri="http://oldhost"/>
|
| Java DSL |
|---|
from("direct:start")
.setHeader(Exchange.HTTP_URI, simple("http://myserver/orders/${header.orderId}"))
.to("http://dummyhost");
|
| Java DSL |
|---|
|
|
| Java DSL | Spring DSL |
|---|---|
from("direct:start")
.setHeader(Exchange.HTTP_METHOD, constant("POST"))
.to("http://www.google.com");
|
|
HTTPEndpoint オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | デフォルト値 | 説明 |
|---|---|---|
throwExceptionOnFailure
|
true
|
リモートサーバーからの応答が失敗した場合に HttpOperationFailedException を出力することを無効にするオプション。これにより、HTTP ステータスコードに関係なくすべての応答を取得できます。
|
bridgeEndpoint
|
false
|
オプションが true の場合、HttpProducer は Exchange.HTTP_URI ヘッダーを無視し、リクエストにエンドポイントの URI を使用します。また、throwExceptionOnFailure を false に設定して、HttpProducer がすべての障害応答を返信するようにすることもできます。Camel 2.3: オプションが true の場合、content-encoding が gzip の場合、HttpProducer および CamelServlet は gzip 処理をスキップします。
|
disableStreamCache
|
false
|
DefaultHttpBinding は、要求入力ストリームをストリームキャッシュにコピーし、このオプションが 2 回読み取りをサポートする場合はメッセージボディーに配置します。それ以外の場合は、DefaultHttpBinding は要求入力ストリームをメッセージボディーに設定します。Camel 2.17: このオプションは、デフォルトでストリームキャッシングではなく、応答ストリームを直接使用できるようにプロデューサーによってもサポートされるようになりました。 |
httpBinding
|
null
|
レジストリーの org.apache.camel.component.http.HttpBinding への参照。
|
httpClientConfigurer
|
null
|
レジストリーの org.apache.camel.component.http.HttpClientConfigurer への参照。
|
httpClient.XXX
|
null
|
HttpClientParams でオプションの設定たとえば、httpClient.soTimeout=5000 は SO_TIMEOUT を 5 秒に設定します。
|
clientConnectionManager
|
null
|
カスタムの org.apache.http.conn.ClientConnectionManager を使用するには、以下を行います。
|
transferException
|
false
|
Camel 2.6: 有効で、エクスチェンジ がコンシューマー側で処理に失敗した場合、発生した 例外 が application/x-java-serialized-object コンテンツタイプとして応答でシリアライズされた場合は( Jetty または Servlet Camel コンポーネントを使用)。プロデューサー側では、例外がデシリアライズされ、HttpOperationFailedException ではなくそのまま出力されます。原因となった例外はシリアライズする必要があります。
|
headerFilterStrategy
|
null
|
Camel 2.11: レジストリーの org.apache.camel.spi.HeaderFilterStrategy のインスタンスへの参照。これは、新しい create HttpEndpoint にカスタム headerFilterStrategy を適用するために使用されます。
|
eagerCheckContentAvailable
|
false
|
Camel 2.15.3/2.16: コンシューマーのみ。Content-Length ヘッダーが 0 の場合、HTTP リクエストにコンテンツがあるかどうかを即時にチェックするかどうか。HTTP クライアントがストリームデータを送信しない場合に、この機能を有効にできます。 |
copyHeaders
|
true
|
Camel 2.16: true の場合、コピーストラテジーに従って OUT エクスチェンジヘッダーにコピーされます。false の場合、HTTP 応答からのヘッダーのみが含まれます(IN ヘッダーはコピーされません)。
|
okStatusCodeRange
|
200-299
|
Camel 2.16: 正常な応答と見なされるステータスコード。値は含まれます。範囲は、構文 from-to を使用して定義する必要があります。
|
ignoreResponseBody
|
false
|
Camel 2.16: true の場合、http プロデューサーは応答ボディーを読み取りせず、入力ストリームをキャッシュします。
|
認証およびプロキシー リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | デフォルト値 | 説明 |
|---|---|---|
authMethod
|
null
|
Basic、Digest、または NTLM のいずれかの認証方法。
|
authMethodPriority
|
null
|
認証方法の優先度。はコンマで区切られたリストです。例: NTLM を除外する Basic,Digest。
|
authUsername
|
null
|
認証用のユーザー名 |
authPassword
|
null
|
認証のパスワード |
authDomain
|
null
|
NTML 認証のドメイン |
authHost
|
null
|
NTML 認証のオプションのホスト |
proxyHost
|
null
|
プロキシーのホスト名 |
proxyPort
|
null
|
プロキシーポート番号 |
proxyAuthMethod
|
null
|
プロキシーの認証方法( Basic Digest または NTLM のいずれか)。
|
proxyAuthUsername
|
null
|
プロキシー認証用のユーザー名 |
proxyAuthPassword
|
null
|
プロキシー認証のパスワード |
proxyAuthDomain
|
null
|
プロキシー NTML 認証のドメイン |
proxyAuthHost
|
null
|
プロキシー NTML 認証のオプションホスト |
authMethod オプションまたは authProxyMethod オプションのメソッドを選択する 必要 があります。プロキシーおよび認証の詳細は、HttpComponent または HttpEndoint のいずれかに設定できます。HttpEndpoint で指定される値は、HttpComponent よりも優先されます。これを 1 回実行できる HttpComponent で設定する最も適しています。
authMethodPriority を明示的に設定していない場合は、select (ed) authMethod を priority としても使用します。そのため、authMethod.Basic を使用する場合、auhtMethodPriority は Basic のみになります。
HttpComponent オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | デフォルト値 | 説明 |
|---|---|---|
httpBinding
|
null
|
カスタムの org.apache.camel.component.http.HttpBinding を使用するには、以下を行います。
|
httpClientConfigurer
|
null
|
カスタムの org.apache.camel.component.http.HttpClientConfigurer を使用するには、以下を行います。
|
httpConnectionManager
|
null
|
カスタムの org.apache.commons.httpclient.HttpConnectionManager を使用するには、以下を行います。
|
httpConfiguration
|
null
|
カスタムの org.apache.camel.component.http.HttpConfigurationを使用するには、以下を行います。
|
allowJavaSerializedObject
|
false
|
Camel 2.16.1/2.15.5: リクエストが
context-type=application/x-java-serialized-object を使用している場合に Java のシリアル化を許可するかどうか。このオプションはデフォルトでオフになっています。警告: このオプションを有効にすると、Java はリクエストから Java に受信データをデシリアライズし、セキュリティーリスクとなる可能性があることに注意してください。
|
メッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | タイプ | 説明 |
|---|---|---|
Exchange.HTTP_URI
|
文字列
|
呼び出す URI。エンドポイントに設定された既存の URI を直接上書きします。この URI は、呼び出す HTTP サーバーの URI です。セキュリティーなどのエンドポイントオプションを設定できる Camel エンドポイント URI とは異なります。このヘッダーは、HTTP サーバーの UTI のみをサポートしません。 |
Exchange.HTTP_METHOD
|
文字列
|
使用する HTTP メソッド/Verb (GET/POST/PUT/DELETE/HEAD/OPTIONS/TRACE) |
Exchange.HTTP_PATH
|
文字列
|
リクエスト URI のパス。ヘッダーは HTTP_URI でリクエスト URI を構築するために使用されます。Camel 2.3.0: パスが "/ で始まる場合、http プロデューサーは Exchange.HTTP_BASE_URI ヘッダーまたは exchange.getFromEndpoint ().getEndpointUri (); に基づいて相対パスの検索を試みます。 |
Exchange.HTTP_QUERY
|
文字列
|
URI パラメーター。エンドポイントで直接設定された既存の URI パラメーターを上書きします。 |
Exchange.HTTP_RESPONSE_CODE
|
int
|
外部サーバーからの HTTP 応答コード。OK の場合は 200 です。 |
Exchange.HTTP_CHARACTER_ENCODING
|
文字列
|
文字エンコーディング。 |
Exchange.CONTENT_TYPE
|
文字列
|
HTTP コンテンツタイプ。は IN メッセージと OUT メッセージの両方で設定され、text/html などのコンテンツタイプを提供します。
|
Exchange.CONTENT_ENCODING
|
文字列
|
HTTP コンテンツエンコーディング。は IN メッセージと OUT メッセージの両方で設定され、gzip などのコンテンツエンコーディングを提供します。
|
Exchange.HTTP_SERVLET_REQUEST
|
HttpServletRequest
|
HttpServletRequest オブジェクト。
|
Exchange.HTTP_SERVLET_RESPONSE
|
HttpServletResponse
|
HttpServletResponse オブジェクト。
|
Exchange.HTTP_PROTOCOL_VERSION
|
文字列
|
Camel 2.5: このヘッダーで http プロトコルバージョンを設定できます(例:)。"HTTP/1.0"。ヘッダーを指定しないと、HttpProducer はデフォルト値 HTTP/1.1 を使用します。 |
メッセージボディー リンクのコピーリンクがクリップボードにコピーされました!
レスポンスコード リンクのコピーリンクがクリップボードにコピーされました!
- レスポンスコードは 100..299 の範囲にあり、Camel は応答の成功と見なします。
- 応答コードは 300..399 の範囲にあり、Camel はこれをリダイレクト応答とみなし、その情報とともに
HttpOperationFailedExceptionを出力します。 - 応答コードは 400+ で、Camel はこれを外部サーバーの障害と見なし、この情報とともに
HttpOperationFailedExceptionを出力します。throwExceptionOnFailureオプションthrowExceptionOnFailureをfalseに設定すると、失敗したレスポンスコードに対してHttpOperationFailedExceptionが出力されないようにすることができます。これにより、リモートサーバーから応答を取得できるようになります。デモには、以下の例があります。
HttpOperationFailedException リンクのコピーリンクがクリップボードにコピーされました!
- HTTP ステータスコード
- HTTP ステータス行 (ステータスコードのテキスト)
- サーバーがリダイレクトを返した場合は、場所をリダイレクトします
- 応答ボディー(
java.lang.String) (サーバーがボディーを応答として提供)
GET または POST を使用した呼び出し リンクのコピーリンクがクリップボードにコピーされました!
GET または POST HTTP メソッドのいずれかを使用する必要があるかどうかを判断するために使用されます:1。ヘッダーで提供されるメソッドを使用します。2.クエリー文字列がヘッダーで提供される場合は GET。3.エンドポイントがクエリー文字列で設定されている場合の GET。4.送信するデータがある場合は POST します(null ではありません)。5.それ以外の場合は GET。
HttpServletRequest および HttpServletResponse にアクセスする方法 リンクのコピーリンクがクリップボードにコピーされました!
HttpServletRequest request = exchange.getIn().getBody(HttpServletRequest.class); HttpServletRequest response = exchange.getIn().getBody(HttpServletResponse.class);
HttpServletRequest request = exchange.getIn().getBody(HttpServletRequest.class);
HttpServletRequest response = exchange.getIn().getBody(HttpServletResponse.class);
クライアントタイムアウトの使用 - SO_TIMEOUT リンクのコピーリンクがクリップボードにコピーされました!
プロキシーの設定 リンクのコピーリンクがクリップボードにコピーされました!
| Java DSL |
|---|
from("direct:start")
.to("http://oldhost?proxyHost=www.myproxy.com&proxyPort=80");
|
proxyUsername および proxyPassword オプションを使用したプロキシー認証にも対応しています。
URI の外部でプロキシー設定の使用 リンクのコピーリンクがクリップボードにコピーされました!
| Java DSL | Spring DSL |
|---|---|
context.getProperties().put("http.proxyHost", "172.168.18.9");
context.getProperties().put("http.proxyPort" "8080");
|
|
charset の設定 リンクのコピーリンクがクリップボードにコピーされました!
POST を使用してデータを送信する場合は、charsetを設定できます。
setProperty(Exchange.CHARSET_NAME, "iso-8859-1");
setProperty(Exchange.CHARSET_NAME, "iso-8859-1");
スケジュールされたポーリングを使用したサンプル リンクのコピーリンクがクリップボードにコピーされました!
html ファイルに書き込みます。
from("timer://foo?fixedRate=true&delay=0&period=10000")
.to("http://www.google.com")
.setHeader(FileComponent.HEADER_FILE_NAME, "message.html").to("file:target/google");
from("timer://foo?fixedRate=true&delay=0&period=10000")
.to("http://www.google.com")
.setHeader(FileComponent.HEADER_FILE_NAME, "message.html").to("file:target/google");
レスポンスコードの取得 リンクのコピーリンクがクリップボードにコピーされました!
Exchange.HTTP_RESPONSE_CODE の値を取得します。
throwExceptionOnFailure=false を使用して応答を返す リンクのコピーリンクがクリップボードにコピーされました!
throwExceptionOnFailure オプションを false に設定して、AggregationStrategy で応答を取得します。コードは HTTP ステータスコード 404 をシミュレートするユニットテストをベースにしているため、アサーションコードなどがいくつかあります。
Cookie の無効化 リンクのコピーリンクがクリップボードにコピーされました!
httpClient.cookiePolicy=ignoreCookiesを追加して HTTP Client が Cookie を無視するように設定します。
高度な使用方法 リンクのコピーリンクがクリップボードにコピーされました!
HttpComponent を使用する必要があります。ここで、さまざまなクラスを設定してカスタム動作を提供できます。
MaxConnectionsPerHost の設定 リンクのコピーリンクがクリップボードにコピーされました!
org.apache.commons.httpclient.HttpConnectionManager があります。ここでは、指定のコンポーネントの各種のグローバル設定を設定できます。グローバルでは、コンポーネントによって作成されるエンドポイントに同じ HttpConnectionManager があることを意味します。したがって、ホストごとに max 接続に異なる値を設定する場合は、通常使用するエンドポイント URI では なく、HTTP コンポーネントで定義する必要があります。そのため、以下のようになります。
http コンポーネントを定義します。はい、同じスキーム名 http を使用します。そうしないと、Camel はデフォルト設定でコンポーネントを自動検出して作成します。必要なものは、このオプションを設定できるように、これをオーバールールすることです。以下の例では、max 接続をデフォルトの 2 ではなく 5 に設定します。
プリエンプション認証の使用 リンクのコピーリンクがクリップボードにコピーされました!
httpClient.authenticationPreemptive=trueの URI オプションを設定することでした。
リモートサーバーからの自己署名証明書の許可 リンクのコピーリンクがクリップボードにコピーされました!
JSSE 設定ユーティリティーの使用 リンクのコピーリンクがクリップボードにコピーされました!
org.apache.camel.component.http.SSLContextParametersSecureProtocolSocketFactory を提供します。 以下の例は、プロトコルレジストリーを設定し、登録されたプロトコル情報をルートで使用する方法を示しています。
Apache HTTP クライアントを直接設定 リンクのコピーリンクがクリップボードにコピーされました!
org.apache.camel.component.http.HttpClientConfigurer を実装し、完全な制御が必要な場合に http クライアントで一部の設定を行うことができます。
HttpClientConfigurer でこれを行うことができます。以下に例を示します。
HttpClientConfigurer を実装するクラスを作成し、上記の例ごとにキーストアまたはトラストストアを提供する https プロトコルを登録する必要があります。次に、Camel ルートビルダークラスから、以下のようにフックできます。
HttpComponent httpComponent = getContext().getComponent("http", HttpComponent.class);
httpComponent.setHttpClientConfigurer(new MyHttpClientConfigurer());
HttpComponent httpComponent = getContext().getComponent("http", HttpComponent.class);
httpComponent.setHttpClientConfigurer(new MyHttpClientConfigurer());
HttpClientConfigurer を指定できます。以下に例を示します。
第71章 HTTP4 リンクのコピーリンクがクリップボードにコピーされました!
HTTP4 コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
pom.xml に以下の依存関係を追加する必要があります。
Camel on EAP デプロイメント リンクのコピーリンクがクリップボードにコピーされました!
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
http4:hostname[:port][/resourceUri][?options]
http4:hostname[:port][/resourceUri][?options]
?option=value&option=value&.. の形式で追加できます。
HttpComponent オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | デフォルト値 | 説明 |
|---|---|---|
maxTotalConnections
|
200
|
接続の最大数。 |
connectionsPerRoute
|
20
|
ルートごとの最大接続数。 |
cookieStore
|
null
|
Camel 2.11.2/2.12.0: カスタムの org.apache.http.client.CookieStore を使用するには、以下を行います。デフォルトでは、org.apache.http.impl.client.BasicCookieStore が使用されます。これはインメモリーのみの Cookie ストアです。bridgeEndpoint=true の場合、クッキーストアは単にブリッジ(プロキシーとして機能するなど)であるため、Cookie ストアを noop クッキーストアとして強制的に保存しないでください。
|
httpClientConfigurer
|
null
|
レジストリーの org.apache.camel.component.http.HttpClientConfigurer への参照。
|
clientConnectionManager
|
null
|
カスタムの org.apache.http.conn.ClientConnectionManager を使用するには、以下を行います。
|
httpBinding
|
null
|
カスタムの org.apache.camel.component.http.HttpBinding を使用するには、以下を行います。
|
httpContext
|
null
|
Camel 2.9.2: リクエストの実行時にカスタムの org.apache.http.protocol.HttpContext を使用します。
|
sslContextParameters
|
null
|
Camel 2.8: カスタムの org.apache.camel.util.jsse.SSLContextParameters を使用するには、以下を行います。Security Guide の Configuring Transport Security for Camel Components の章を参照してください。 「JSSE 設定ユーティリティーの使用」
|
x509HostnameVerifier
|
BrowserCompatHostnameVerifier
|
Camel 2.7: org.apache.http.conn.ssl.X509HostnameVerifier インスタンスを別の org.apache.http.conn.ssl.StrictHostnameVerifier または org.apache.http.conn.ssl.AllowAllHostnameVerifier 等のレジストリーで参照できます。
|
connectionTimeToLive
|
-1
|
Camel 2.11.0: 接続の有効期間。時間単位はミリ秒で、デフォルト値は常に存続します。 |
allowJavaSerializedObject
|
false
|
Camel 2.16.1/2.15.5: リクエストが
context-type=application/x-java-serialized-object を使用している場合に Java のシリアル化を許可するかどうか。このオプションはデフォルトでオフになっています。警告: このオプションを有効にすると、Java はリクエストから Java に受信データをデシリアライズし、セキュリティーリスクとなる可能性があることに注意してください。
|
HTTPEndpoint オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | デフォルト値 | 説明 |
|---|---|---|
throwExceptionOnFailure
|
true
|
リモートサーバーからの応答が失敗した場合に HttpOperationFailedException を出力することを無効にするオプション。これにより、HTTP ステータスコードに関係なくすべての応答を取得できます。
|
bridgeEndpoint
|
false
|
true の場合、HttpProducer は Exchange.HTTP_URI ヘッダーを無視し、リクエストにエンドポイントの URI を使用します。また、throwExcpetionOnFailure を false に設定して、HttpProducer がすべての障害応答を返信するようにすることもできます。また、true HttpProducer に設定すると、content-encoding が gzip の場合、CamelServlet は gzip 処理をスキップします。 |
clearExpiredCookies
|
true
|
Camel 2.11.2/2.12.0: HTTP リクエストを送信する前に期限切れのクッキーを消去するかどうか。これにより、クッキーストアは、有効期限が切れたときに削除される新しいクッキーを追加して拡張し続けません。 |
cookieStore
|
null
|
Camel 2.11.2/2.12.0: カスタムの org.apache.http.client.CookieStore を使用するには、以下を行います。デフォルトでは、org.apache.http.impl.client.BasicCookieStore が使用されます。これはインメモリーのみの Cookie ストアです。bridgeEndpoint=true の場合、クッキーストアは単にブリッジ(プロキシーとして機能するなど)であるため、Cookie ストアを noop クッキーストアとして強制的に保存しないでください。
|
disableStreamCache
|
false
|
DefaultHttpBinding は、要求入力ストリームをストリームキャッシュにコピーし、このオプションが複数の読み取りをサポートする場合はメッセージボディーに配置します。それ以外の場合は、DefaultHttpBinding は要求入力ストリームをメッセージボディーに直接設定します。Camel 2.17: このオプションは、デフォルトでストリームキャッシングの代わりに応答ストリームを直接使用できるようにするため、プロデューサーによってもサポートされるようになりました。 |
headerFilterStrategy
|
null
|
Camel 2.10.4: レジストリーの org.apache.camel.spi.HeaderFilterStrategy のインスタンスへの参照。t は、新しい create HttpEndpoint にカスタム headerFilterStrategy を適用するために使用されます。
|
httpBindingRef
|
null
|
非推奨および は Camel 3.0: Registry の org.apache.camel.component.http.HttpBinding への参照で削除され ます。代わりに httpBinding オプションを使用してください。
|
httpBinding
|
null
|
カスタムの org.apache.camel.component.http.HttpBinding を使用するには、以下を行います。
|
httpClientConfigurer
|
null
|
レジストリーの org.apache.camel.component.http.HttpClientConfigurer への参照。
|
httpContext
|
null
|
Camel 2.9.2: リクエストの実行時にカスタムの org.apache.http.protocol.HttpContext を使用します。
|
httpClient.XXX
|
null
|
BasicHttpParams でオプションの設定たとえば、
httpClient.soTimeout=5000 は SO_TIMEOUT を 5 秒に設定します。以下のパラメーター bean のセッターメソッドを確認します。AuthParamBean、ClientParamBean、ConnConnectionParamBean、ConnRouteParamBean、CookieSpecParamBean、HttpConnectionParamBean、HttpConnectionParamBean、および HttpProtocolParamBean
Camel 2.13.0:
httpClient は HttpClientBuilder および RequestConfig.Builder の設定に変更されているため 、完全な参考として API ドキュメントを確認してください。たとえば、httpClient.socketTimeout=5000 を使用して、ソケットのタイムアウトを 5 秒に設定します。
|
clientConnectionManager
|
null
|
カスタムの org.apache.http.conn.ClientConnectionManager を使用するには、以下を行います。
|
transferException
|
false
|
有効化され、エクスチェンジ がコンシューマー側で処理に失敗した場合、発生した 例外 が application/x-java-serialized-object コンテンツタイプとして応答でシリアライズされた場合は( Jetty または SERVLET Camel コンポーネントを使用)。プロデューサー側では、例外がデシリアライズされ、HttpOperationFailedException ではなくそのまま出力されます。原因となった例外はシリアライズする必要があります。
|
sslContextParameters
|
null
|
Camel 2.11.1: レジストリーの org.apache.camel.util.jsse.SSLContextParameters への参照。重要: HttpComponent ごとに、org.apache.camel.util.jsse.SSLContextParameters の 1 つのインスタンスのみがサポートされます。2 つ以上の異なるインスタンスを使用する必要がある場合は、インスタンスごとに新しい HttpComponent を定義する必要があります。詳細につていは以下をご覧くださいSecurity Guide および 「JSSE 設定ユーティリティーの使用」 の Configuring Transport Security for Camel Components も参照して ください。
|
x509HostnameVerifier
|
BrowserCompatHostnameVerifier
|
Camel 2.7: org.apache.http.conn.ssl.X509HostnameVerifier インスタンスを別の org.apache.http.conn.ssl.StrictHostnameVerifier または org.apache.http.conn.ssl.AllowAllHostnameVerifier 等のレジストリーで参照できます。
|
maxTotalConnections
|
null
|
Camel 2.14: コネクションマネージャーが持つ合計接続数。このオプションが設定されていない場合、Camel は代わりにコンポーネントの 設定を使用します。
|
connectionsPerRoute
|
null
|
Camel 2.14: ルートごとの最大接続数。このオプションが設定されていない場合、Camel は代わりにコンポーネントの 設定を使用します。
|
authenticationPreemptive
|
false
|
Camel 2.11.3/2.12.2: このオプションが true の場合、camel-http4 はプリエンプティブな Basic 認証をサーバーに送信します。
|
eagerCheckContentAvailable
|
false
|
Camel 2.15.3/2.16: コンシューマーのみ。Content-Length ヘッダーが 0 の場合、HTTP リクエストにコンテンツがあるかどうかを即時にチェックするかどうか。HTTP クライアントがストリームデータを送信しない場合に、この機能を有効にできます。 |
copyHeaders
|
true
|
Camel 2.16: true の場合、コピーストラテジーに従って OUT エクスチェンジヘッダーにコピーされます。false の場合、HTTP 応答からのヘッダーのみが含まれます(IN ヘッダーはコピーされません)。
|
okStatusCodeRange
|
200-299
|
Camel 2.16: 正常な応答と見なされるステータスコード。値は含まれます。範囲は、構文 from-to を使用して定義する必要があります。
|
ignoreResponseBody
|
false
|
Camel 2.16: true の場合、http プロデューサーは応答ボディーを読み取りせず、入力ストリームをキャッシュします。
|
基本認証およびプロキシーの設定 リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | デフォルト値 | 説明 |
|---|---|---|
username
|
null
|
認証用のユーザー名。 |
password
|
null
|
認証のパスワード。 |
domain
|
null
|
認証用のドメイン名。 |
host
|
null
|
ホスト名の認証。 |
proxyHost
|
null
|
プロキシーのホスト名 |
proxyPort
|
null
|
プロキシーポート番号 |
proxyUsername
|
null
|
プロキシー認証用のユーザー名 |
proxyPassword
|
null
|
プロキシー認証のパスワード |
proxyDomain
|
null
|
プロキシードメイン名 |
proxyNtHost
|
null
|
プロキシー Nt ホスト名 |
| 名前 | デフォルト値 | 説明 |
authUsername
|
null
|
認証用のユーザー名 |
authPassword
|
null
|
認証のパスワード |
authDomain
|
null
|
認証のドメイン名 |
authHost
|
null
|
ホスト名の認証 |
proxyAuthHost
|
null
|
プロキシーのホスト名 |
proxyAuthPort
|
null
|
プロキシーポート番号 |
proxyAuthScheme
|
null
|
プロキシースキーム は、設定されていない場合は、エンドポイントからスキームをフォールバックし、使用します。 |
proxyAuthUsername
|
null
|
プロキシー認証用のユーザー名 |
proxyAuthPassword
|
null
|
プロキシー認証のパスワード |
proxyAuthDomain
|
null
|
プロキシードメイン名 |
proxyAuthNtHost
|
null
|
プロキシー Nt ホスト名 |
メッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | タイプ | 説明 |
|---|---|---|
Exchange.HTTP_URI
|
文字列
|
呼び出す URI。エンドポイントに設定された既存の URI を直接上書きします。この URI は、呼び出す HTTP サーバーの URI です。セキュリティーなどのエンドポイントオプションを設定できる Camel エンドポイント URI とは異なります。このヘッダーは、HTTP サーバーの UTI のみをサポートしません。 |
Exchange.HTTP_PATH
|
文字列
|
リクエスト URI のパス。ヘッダーは HTTP_URI でリクエスト URI を構築するために使用されます。 |
Exchange.HTTP_QUERY
|
文字列
|
URI パラメーター。エンドポイントで直接設定された既存の URI パラメーターを上書きします。 |
Exchange.HTTP_RESPONSE_CODE
|
int
|
外部サーバーからの HTTP 応答コード。OK の場合は 200 です。 |
Exchange.HTTP_RESPONSE_TEXT
|
文字列
|
外部サーバーからの HTTP 応答テキスト。 |
Exchange.HTTP_CHARACTER_ENCODING
|
文字列
|
文字エンコーディング。 |
Exchange.CONTENT_TYPE
|
文字列
|
HTTP コンテンツタイプ。は IN メッセージと OUT メッセージの両方で設定され、text/html などのコンテンツタイプを提供します。
|
Exchange.CONTENT_ENCODING
|
文字列
|
HTTP コンテンツエンコーディング。は IN メッセージと OUT メッセージの両方で設定され、gzip などのコンテンツエンコーディングを提供します。
|
メッセージボディー リンクのコピーリンクがクリップボードにコピーされました!
レスポンスコード リンクのコピーリンクがクリップボードにコピーされました!
- レスポンスコードは 100..299 の範囲にあり、Camel は応答の成功と見なします。
- 応答コードは 300..399 の範囲にあり、Camel はこれをリダイレクト応答とみなし、その情報とともに
HttpOperationFailedExceptionを出力します。 - 応答コードは 400+ で、Camel はこれを外部サーバーの障害と見なし、この情報とともに
HttpOperationFailedExceptionを出力します。throwExceptionOnFailureオプションthrowExceptionOnFailureをfalseに設定すると、失敗したレスポンスコードに対してHttpOperationFailedExceptionが出力されないようにすることができます。これにより、リモートサーバーから応答を取得できるようになります。デモには、以下の例があります。
HttpOperationFailedException リンクのコピーリンクがクリップボードにコピーされました!
- HTTP ステータスコード
- HTTP ステータス行 (ステータスコードのテキスト)
- サーバーがリダイレクトを返した場合は、場所をリダイレクトします
- 応答ボディー(
java.lang.String) (サーバーがボディーを応答として提供)
GET または POST を使用した呼び出し リンクのコピーリンクがクリップボードにコピーされました!
GET または POST HTTP メソッドを使用する必要があるかどうかを判断するために使用されます:1。ヘッダーで提供されるメソッドを使用します。2.クエリー文字列がヘッダーで提供される場合は GET。3.エンドポイントがクエリー文字列で設定されている場合の GET。4.送信するデータがある場合は POST します(null ではありません)。5.それ以外の場合は GET。
HttpServletRequest および HttpServletResponse にアクセスする方法 リンクのコピーリンクがクリップボードにコピーされました!
HttpServletRequest request = exchange.getIn().getBody(HttpServletRequest.class); HttpServletRequest response = exchange.getIn().getBody(HttpServletResponse.class);
HttpServletRequest request = exchange.getIn().getBody(HttpServletRequest.class);
HttpServletRequest response = exchange.getIn().getBody(HttpServletResponse.class);
呼び出す URI の設定 リンクのコピーリンクがクリップボードにコピーされました!
oldhost に呼び出します。
from("direct:start")
.to("http4://oldhost");
from("direct:start")
.to("http4://oldhost");
Exchange.HTTP_URI でヘッダーを追加することで、HTTP エンドポイント URI を上書きできます。
from("direct:start")
.setHeader(Exchange.HTTP_URI, constant("http://newhost"))
.to("http4://oldhost");
from("direct:start")
.setHeader(Exchange.HTTP_URI, constant("http://newhost"))
.to("http4://oldhost");
Exchange.HTTP_URI のメッセージヘッダーを無視します。
URI パラメーターの設定 リンクのコピーリンクがクリップボードにコピーされました!
Exchange.HTTP_QUERY を持つヘッダーとして設定できます。
from("direct:start")
.to("http4://oldhost?order=123&detail=short");
from("direct:start")
.to("http4://oldhost?order=123&detail=short");
from("direct:start")
.setHeader(Exchange.HTTP_QUERY, constant("order=123&detail=short"))
.to("http4://oldhost");
from("direct:start")
.setHeader(Exchange.HTTP_QUERY, constant("order=123&detail=short"))
.to("http4://oldhost");
http メソッド(GET/POST/PUT/DELETE/HEAD/OPTIONS/TRACE)を HTTP プロデューサーに設定する方法 リンクのコピーリンクがクリップボードにコピーされました!
from("direct:start")
.setHeader(Exchange.HTTP_METHOD, constant(org.apache.camel.component.http4.HttpMethods.POST))
.to("http4://www.google.com")
.to("mock:results");
from("direct:start")
.setHeader(Exchange.HTTP_METHOD, constant(org.apache.camel.component.http4.HttpMethods.POST))
.to("http4://www.google.com")
.to("mock:results");
.setHeader("CamelHttpMethod", constant("POST"))
.setHeader("CamelHttpMethod", constant("POST"))
クライアントタイムアウトの使用 - SO_TIMEOUT リンクのコピーリンクがクリップボードにコピーされました!
プロキシーの設定 リンクのコピーリンクがクリップボードにコピーされました!
from("direct:start")
.to("http4://oldhost?proxyAuthHost=www.myproxy.com&proxyAuthPort=80");
from("direct:start")
.to("http4://oldhost?proxyAuthHost=www.myproxy.com&proxyAuthPort=80");
proxyAuthUsername および proxyAuthPassword オプションを使用したプロキシー認証にも対応しています。
URI の外部でプロキシー設定の使用 リンクのコピーリンクがクリップボードにコピーされました!
context.getProperties().put("http.proxyHost", "172.168.18.9");
context.getProperties().put("http.proxyPort" "8080");
context.getProperties().put("http.proxyHost", "172.168.18.9");
context.getProperties().put("http.proxyPort" "8080");
http.proxyScheme プロパティーもあります。
charset の設定 リンクのコピーリンクがクリップボードにコピーされました!
POST を使用してデータを送信する場合は、Exchange プロパティーを使用して charset を設定できます。
exchange.setProperty(Exchange.CHARSET_NAME, "ISO-8859-1");
exchange.setProperty(Exchange.CHARSET_NAME, "ISO-8859-1");
スケジュールされたポーリングを使用したサンプル リンクのコピーリンクがクリップボードにコピーされました!
message.html に書き込みます。
from("timer://foo?fixedRate=true&delay=0&period=10000")
.to("http4://www.google.com")
.setHeader(FileComponent.HEADER_FILE_NAME, "message.html")
.to("file:target/google");
from("timer://foo?fixedRate=true&delay=0&period=10000")
.to("http4://www.google.com")
.setHeader(FileComponent.HEADER_FILE_NAME, "message.html")
.to("file:target/google");
エンドポイント URI からの URI パラメーター リンクのコピーリンクがクリップボードにコピーされました!
& amp; 文字をセパレーターとして使用して設定できます。この場合、Camel は複雑ではありません。
// we query for Camel at the Google page
template.sendBody("http4://www.google.com/search?q=Camel", null);
// we query for Camel at the Google page
template.sendBody("http4://www.google.com/search?q=Camel", null);
メッセージの URI パラメーター リンクのコピーリンクがクリップボードにコピーされました!
Map headers = new HashMap();
headers.put(Exchange.HTTP_QUERY, "q=Camel&lr=lang_en");
// we query for Camel and English language at Google
template.sendBody("http4://www.google.com/search", null, headers);
Map headers = new HashMap();
headers.put(Exchange.HTTP_QUERY, "q=Camel&lr=lang_en");
// we query for Camel and English language at Google
template.sendBody("http4://www.google.com/search", null, headers);
? を付け ず、通常 & amp; 文字でパラメーターを分離することができることに注意してください。
レスポンスコードの取得 リンクのコピーリンクがクリップボードにコピーされました!
Exchange.HTTP_RESPONSE_CODE で Out メッセージヘッダーの値を取得します。
Cookie の無効化 リンクのコピーリンクがクリップボードにコピーされました!
httpClient.cookiePolicy=ignoreCookiesを追加して HTTP Client が Cookie を無視するように設定します。
高度な使用方法 リンクのコピーリンクがクリップボードにコピーされました!
HttpComponent を使用する必要があります。ここで、さまざまなクラスを設定してカスタム動作を提供できます。
JSSE 設定ユーティリティーの使用 リンクのコピーリンクがクリップボードにコピーされました!
エンドポイントの Spring DSL ベースの設定 リンクのコピーリンクがクリップボードにコピーされました!
Apache HTTP クライアントを直接設定 リンクのコピーリンクがクリップボードにコピーされました!
org.apache.camel.component.http4.HttpsServerTestSupport unit test ベースクラスを確認してください。また、カスタムの org.apache.camel.component.http4.HttpClientConfigurer を実装して、完全な制御が必要な場合は、http クライアントでいくつかの設定を行うこともできます。
HttpClientConfigurer でこれを行うことができます。以下に例を示します。
HttpClientConfigurer を実装するクラスを作成し、上記の例ごとにキーストアまたはトラストストアを提供する https プロトコルを登録する必要があります。次に、Camel ルートビルダークラスから、以下のようにフックできます。
HttpComponent httpComponent = getContext().getComponent("http4", HttpComponent.class);
httpComponent.setHttpClientConfigurer(new MyHttpClientConfigurer());
HttpComponent httpComponent = getContext().getComponent("http4", HttpComponent.class);
httpComponent.setHttpClientConfigurer(new MyHttpClientConfigurer());
HttpClientConfigurer を指定できます。以下に例を示します。
HTTPS を使用した gotchas の認証 リンクのコピーリンクがクリップボードにコピーされました!
org.apache.http.protocol.HttpContext を指定して解決されました。
<bean id="myHttpContext" factory-bean="httpContextFactory" factory-method="getObject"/>
<bean id="myHttpContext" factory-bean="httpContextFactory" factory-method="getObject"/>
<to uri="https4://myhostname.com:443/myURL?httpContext=myHttpContext"/>
<to uri="https4://myhostname.com:443/myURL?httpContext=myHttpContext"/>
異なる SSLContextParameters の使用 リンクのコピーリンクがクリップボードにコピーされました!
org.apache.camel.util.jsse.SSLContextParameters の 1 つのインスタンスのみをサポートします。2 つ以上の異なるインスタンスを使用する必要がある場合は、以下のように複数の HTTP4 コンポーネントを設定する必要があります。この例は、それぞれ sslContextParameters プロパティーの独自のインスタンスを使用する 2 つのコンポーネントを示しています。
第72章 iBATIS リンクのコピーリンクがクリップボードにコピーされました!
iBATIS リンクのコピーリンクがクリップボードにコピーされました!
pom.xml に以下の依存関係を追加する必要があります。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
ibatis:statementName[?options]
ibatis:statementName[?options]
?option=value&option=value&.. の形式で追加できます。
SqlMapConfig.xml という名前が付けられたことが予想されます。Spring リソースの読み込みを使用するため、クラスパス、ファイル、または http を接頭辞として使用し、これらのスキームでリソースを読み込むことができます。Camel 2.2 では、setSqlMapConfig (String) メソッドを使用して iBatisComponent でこれを設定できます。
オプション リンクのコピーリンクがクリップボードにコピーされました!
| オプション | 型 | デフォルト | 説明 |
|---|---|---|---|
consumer.onConsume
|
文字列
|
null
|
消費後に実行するステートメント。たとえば、Apache Camel で消費および処理された後に行を更新するために使用できます。後ほどサンプル を参照してください。複数のステートメントはコンマで区切ることができます。 |
consumer.useIterator
|
boolean
|
true
|
true の場合、ポーリングが個別に処理されるときに返される各行。false の場合、データの リスト 全体が IN ボディーとして設定されます。
|
consumer.routeEmptyResultSet
|
boolean
|
false
|
Apache Camel 2.0: 空の結果セットをルーティングするかどうかを設定します。デフォルトでは、空の結果セットはルーティングされません。 |
statementType
|
StatementType
|
null
|
Apache Camel 1.6.1/2.0: 呼び出す iBatisis SqlMapClient メソッドを制御するために IbatisProducer に指定する必要があります。enum 値は QueryForObject、QueryForList、Insert、Update、Delete です。
|
maxMessagesPerPoll
|
int
|
0
|
Apache Camel 2.0: ポーリングごとに収集する最大メッセージを定義する整数。デフォルトでは最大値は設定されていません。たとえば制限を 1000 などに設定して、数千のファイルがあるサーバーの起動を回避できます。無効にするには、0 または負の値を設定します。 |
分離
|
文字列
|
TRANSACTION_REPEATABLE_READ
|
*Camel 2.9:* 文字列 は、のトランザクション分離レベルを定義します。使用できる値は TRANSACTION_NONE、TRANSACTION_READ_UNCOMMITTED、TRANSACTION_READ_COMMITTED、TRANSACTION_REPEATABLE_READ、TRANSACTION_SERIALIZABLE です。 |
分離
|
文字列
|
TRANSACTION_REPEATABLE_READ
|
*Camel 2.9:* 文字列 は、のトランザクション分離レベルを定義します。使用できる値は TRANSACTION_NONE、TRANSACTION_READ_UNCOMMITTED、TRANSACTION_READ_COMMITTED、TRANSACTION_REPEATABLE_READ、TRANSACTION_SERIALIZABLE です。 |
メッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| ヘッダー | タイプ | 説明 |
|---|---|---|
CamelIBatisStatementName
|
文字列
|
Apache Camel 2.0: 使用される statementName (例:insertAccount)。 |
CamelIBatisResult
|
オブジェクト
|
Apache Camel 1.6.2/2.0: いずれかの操作で iBatis から返される 応答。たとえば、INSERT は自動生成キーや行数などを返すことができます。
|
メッセージボディー リンクのコピーリンクがクリップボードにコピーされました!
SELECT ステートメントである場合にのみボディーとして設定されます。つまり、たとえば、Apache Camel は INSERT ステートメントではボディーを置き換えません。これにより、ルーティングを継続し、元のボディーを維持することができます。iBatis からの応答は、常にキー CamelIBatisResult を持つヘッダーに保存されます。
サンプル リンクのコピーリンクがクリップボードにコピーされました!
from("activemq:queue:newAccount").
to("ibatis:insertAccount?statementType=Insert");
from("activemq:queue:newAccount").
to("ibatis:insertAccount?statementType=Insert");
statementType を指定する必要があります。これは、Apache Camel に対して SqlMapClient 操作を呼び出すよう指示します。
StatementType を使用した IBatis の制御の強化 リンクのコピーリンクがクリップボードにコピーされました!
SELEECT、UPDATE、DELETE、または INSERT であるかを制御できます。これは Apache Camel 1.6.1/2.0 で実行できるようになりました。たとえば、IN ボディーに SELECT ステートメントへのパラメーターが含まれる iBatis エンドポイントにルーティングする場合は、以下を実行できます。
from("direct:start")
.to("ibatis:selectAccountById?statementType=QueryForObject")
.to("mock:result");
from("direct:start")
.to("ibatis:selectAccountById?statementType=QueryForObject")
.to("mock:result");
selectAccountById を呼び出し、IN 本文に 整数 タイプなどの取得するアカウント ID が含まれる必要があります。
QueryForList などの他の操作でも同じことができます。
from("direct:start")
.to("ibatis:selectAllAccounts?statementType=QueryForList")
.to("mock:result");
from("direct:start")
.to("ibatis:selectAllAccounts?statementType=QueryForList")
.to("mock:result");
UPDATE と同じです。ここで、Account オブジェクトを IN ボディーとして iBatis に送信できます。
from("direct:start")
.to("ibatis:updateAccount?statementType=Update")
.to("mock:result");
from("direct:start")
.to("ibatis:updateAccount?statementType=Update")
.to("mock:result");
スケジュールされたポーリングの例 リンクのコピーリンクがクリップボードにコピーされました!
from("timer://pollTheDatabase?delay=30000").to("ibatis:selectAllAccounts?statementType=QueryForList").to("activemq:queue:allAccounts");
from("timer://pollTheDatabase?delay=30000").to("ibatis:selectAllAccounts?statementType=QueryForList").to("activemq:queue:allAccounts");
<!-- Select with no parameters using the result map for Account class. -->
<select id="selectAllAccounts" resultMap="AccountResult">
select * from ACCOUNT
</select>
<!-- Select with no parameters using the result map for Account class. -->
<select id="selectAllAccounts" resultMap="AccountResult">
select * from ACCOUNT
</select>
onConsume の使用 リンクのコピーリンクがクリップボードにコピーされました!
UPDATE ステートメントである必要があることに注意してください。Apache Camel は、名前をコンマで区切る必要がある複数のステートメントの実行をサポートします。
from("ibatis:selectUnprocessedAccounts?consumer.onConsume=consumeAccount").to("mock:results");
from("ibatis:selectUnprocessedAccounts?consumer.onConsume=consumeAccount").to("mock:results");
<select id="selectUnprocessedAccounts" resultMap="AccountResult">
select * from ACCOUNT where PROCESSED = false
</select>
<select id="selectUnprocessedAccounts" resultMap="AccountResult">
select * from ACCOUNT where PROCESSED = false
</select>
<update id="consumeAccount" parameterClass="Account">
update ACCOUNT set PROCESSED = true where ACC_ID = #id#
</update>
<update id="consumeAccount" parameterClass="Account">
update ACCOUNT set PROCESSED = true where ACC_ID = #id#
</update>
第73章 IRC リンクのコピーリンクがクリップボードにコピーされました!
IRC コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
irc:nick@host[:port]/#room[?options]
irc:nick@host[:port]/#room[?options]
irc:nick@host[:port]?channels=#channel1,#channel2,#channel3[?options]
irc:nick@host[:port]?channels=#channel1,#channel2,#channel3[?options]
?option=value&option=value&.. の形式で追加できます。
オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 説明 | 例 | デフォルト値 |
|---|---|---|---|
channels
|
2.0 の新機能。参加する IRC チャネルのコンマ区切りリスト。 |
channels=#channel1,#channel2
|
null
|
ニックネーム
|
チャットで使用されるニックネーム。 |
irc:MyNick@irc.server.org#channel or irc:irc.server.org#channel?nickname=MyUser
|
null
|
username
|
IRC サーバーのユーザー名。 |
irc:MyUser@irc.server.org#channel or irc:irc.server.org#channel?username=MyUser
|
ニックネームと同じです。 |
password
|
IRC サーバーパスワード。 |
password=somepass
|
なし |
realname
|
IRC ユーザーの実際の名前。 |
realname=MyName
|
なし |
colors
|
サーバーが色コードをサポートするかどうか。 |
true, false
|
true
|
onReply
|
コマンドまたは情報メッセージへの一般的な応答を処理するかどうか。 |
true, false
|
false
|
onNick
|
ニックネーム変更イベントを処理します。 |
true, false
|
true
|
onQuit
|
ユーザーの終了イベントを処理します。 |
true, false
|
true
|
onJoin
|
ユーザーの参加イベントを処理します。 |
true, false
|
true
|
onKick
|
開始イベントを処理します。 |
true, false
|
true
|
onMode
|
モード変更イベントを処理します。 |
true, false
|
true
|
onPart
|
ユーザー部分イベントを処理します。 |
true, false
|
true
|
onTopic
|
トピック変更イベントを処理します。 |
true, false
|
true
|
onPrivmsg
|
メッセージイベントを処理します。 |
true, false
|
true
|
trustManager
|
2.0 の新機能として、SSL サーバーの証明書の検証に使用されるトラストマネージャーです。 |
trustManager=#referenceToTrustManagerBean
|
すべて の証明書を受け入れるデフォルトのトラストマネージャーが使用されます。 |
keys
|
Camel 2.2: IRC チャネルキーのコンマ区切りリスト。重要な点は、チャネルと同じ順序でリストされます。必要なキーのみで複数のチャネルに参加する場合は、そのチャネルに空の値を挿入するだけで済みます。 |
irc:MyNick@irc.server.org/#channel?keys=chankey
|
null
|
| sslContextParameters |
*Camel 2.9:* レジストリー内の org.apache.camel.util.jsse.SSLContextParameters オブジェクトへの 参照。 この参照は、コンポーネントレベルで設定済みの SSLContextParameters を上書きします。Security Guide および 「JSSE 設定ユーティリティーの使用」 の Configuring Transport Security for Camel Components を参照して ください。この設定は、trustManager オプションを上書きすることに注意してください。
|
\#mySslContextParameters |
null
|
JSSE 設定ユーティリティーの使用 リンクのコピーリンクがクリップボードにコピーされました!
エンドポイントのプログラムによる設定 リンクのコピーリンクがクリップボードにコピーされました!
エンドポイントの Spring DSL ベースの設定 リンクのコピーリンクがクリップボードにコピーされました!
レガシーの基本設定オプションの使用 リンクのコピーリンクがクリップボードにコピーされました!
ircs:host[:port]/#room?username=user&password=pass
ircs:host[:port]/#room?username=user&password=pass
trustManager パラメーターを使用します。
ircs:host[:port]/#room?username=user&password=pass&trustManager=#referenceToMyTrustManagerBean
ircs:host[:port]/#room?username=user&password=pass&trustManager=#referenceToMyTrustManagerBean
鍵の使用 リンクのコピーリンクがクリップボードにコピーされました!
irc:nick@irc.server.org?channels=#chan1,#chan2,#chan3&keys=chan1Key,,chan3key
irc:nick@irc.server.org?channels=#chan1,#chan2,#chan3&keys=chan1Key,,chan3key
第74章 jasypt リンクのコピーリンクがクリップボードにコピーされました!
jasypt コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
camel-jasypt をクラスパスでドロップすると、暗号化された値は Camel によって自動的に復号化されます。これにより、人間はユーザー名とパスワードなどの機密情報を簡単に特定できなくなります。
pom.xml に以下の依存関係を追加する必要があります。
Camel on EAP デプロイメント リンクのコピーリンクがクリップボードにコピーされました!
ツール リンクのコピーリンクがクリップボードにコピーされました!
tiger を暗号化するには、以下のパラメーターで実行します。apache camel kit で、lib フォルダーに移動し、以下の java cmd を実行します。<CAMEL_HOME> は、Camel ディストリビューションをダウンロードして展開します。
cd <CAMEL_HOME>/lib java -jar camel-jasypt-2.5.0.jar -c encrypt -p secret -i tiger
$ cd <CAMEL_HOME>/lib
$ java -jar camel-jasypt-2.5.0.jar -c encrypt -p secret -i tiger
Encrypted text: qaEEacuW7BUti8LcMgyjKw==
Encrypted text: qaEEacuW7BUti8LcMgyjKw==
qaEEacuW7BUti8LcMgyjKw== は、秘密 のマスターパスワードを知っている場合に tiger に復号化できます。ツールを再度実行すると、暗号化された値は別の結果を返します。ただし、値を復号すると、常に正しい元の値が返されます。
cd <CAMEL_HOME>/lib java -jar camel-jasypt-2.5.0.jar -c decrypt -p secret -i qaEEacuW7BUti8LcMgyjKw==
$ cd <CAMEL_HOME>/lib
$ java -jar camel-jasypt-2.5.0.jar -c decrypt -p secret -i qaEEacuW7BUti8LcMgyjKw==
Decrypted text: tiger
Decrypted text: tiger
ENC (value here)を囲むトークンがあることに注意してください。
refer to a mock endpoint name by that encrypted password
cool.result=mock:{{cool.password}}
here is a password which is encrypted
cool.password=ENC(bsW9uV37gQ0QHFu7KO03Ww==)
# refer to a mock endpoint name by that encrypted password
cool.result=mock:{{cool.password}}
# here is a password which is encrypted
cool.password=ENC(bsW9uV37gQ0QHFu7KO03Ww==)
Camel 2.5 および 2.6 のツールの依存関係 リンクのコピーリンクがクリップボードにコピーされました!
optional/ の camel-jasypt の MANIFEST.MF ファイルに登録されたクラスパスに以下の JAR が必要です。したがって、上記の java cmd が、オプション の ディレクトリーの Apache Distribution から必要な JAR を選択できる理由です。
jasypt-1.6.jar commons-lang-2.4.jar commons-codec-1.4.jar icu4j-4.0.1.jar
jasypt-1.6.jar commons-lang-2.4.jar commons-codec-1.4.jar icu4j-4.0.1.jar
icu4j-4.0.1.jar は、JDK 1.5 で実行する場合にのみ必要になります。
lib/optional ディレクトリーにコピーします。Apache Central Maven リポジトリー からダウンロードできます。
Camel 2.7 以降のツールの依存関係 リンクのコピーリンクがクリップボードにコピーされました!
URI オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | デフォルト値 | 型 | Description |
|---|---|---|---|
password
|
null
|
文字列
|
復号化に使用するマスターパスワードを指定します。このオプションは必須です。詳細は、こちらを参照してください。 |
algorithm
|
null
|
文字列
|
使用する任意のアルゴリズムの名前。 |
マスターパスワードの保護 リンクのコピーリンクがクリップボードにコピーされました!
パスワード オプションはこれを指示する接頭辞をサポートします。sysenv: 指定されたキーを使用して OS システム環境を検索することを意味します。sys: JVM システムプロパティーを検索することを意味します。
export CAMEL_ENCRYPTION_PASSWORD=secret
$ export CAMEL_ENCRYPTION_PASSWORD=secret
unset CAMEL_ENCRYPTION_PASSWORD
$ unset CAMEL_ENCRYPTION_PASSWORD
パスワード オプションは、password=sysenv:CAMEL_ENCRYPTION_PASSWORD のように定義することが関係します。
Java DSL を使用した例 リンクのコピーリンクがクリップボードにコピーされました!
Jasypt PropertiesParser インスタンスとして設定し、以下のように Properties コンポーネントに設定する必要があります。
myproperties.properties には、以下のような暗号化された値が含まれます。パスワード値が暗号化され、値に ENC (value here)を囲むトークンがあることに注意してください。
refer to a mock endpoint name by that encrypted password
cool.result=mock:{{cool.password}}
here is a password which is encrypted
cool.password=ENC(bsW9uV37gQ0QHFu7KO03Ww==)
# refer to a mock endpoint name by that encrypted password
cool.result=mock:{{cool.password}}
# here is a password which is encrypted
cool.password=ENC(bsW9uV37gQ0QHFu7KO03Ww==)
Spring XML の例 リンクのコピーリンクがクリップボードにコピーされました!
JasyptPropertiesParser を設定する必要があります。次に、Camel Properties コンポーネントはプロパティーパーサーとして jasypt を使用するように指示されます。つまり、Jasypt はプロパティーで検索された値を復号化する機会を持ちます。
camelContext> タグ内で インライン化することもできます。propertiesParserRef 属性を使用して Jasypt を参照する方法に注意してください。
関連項目 リンクのコピーリンクがクリップボードにコピーされました!
- ActiveMQ で暗号化されたパスワード: ActiveMQ はこの
camel-jasyptコンポーネントと同様の機能を持ちます。
第75章 JAXB リンクのコピーリンクがクリップボードにコピーされました!
JAXB コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
Camel on EAP デプロイメント リンクのコピーリンクがクリップボードにコピーされました!
第76章 JCache リンクのコピーリンクがクリップボードにコピーされました!
JCache コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
pom.xml に追加する必要があります。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
cache://cacheName[?options]
cache://cacheName[?options]
?option=value&option=#beanRef&...
オプション リンクのコピーリンクがクリップボードにコピーされました!
|
名前
|
デフォルト値
|
説明
|
|---|---|---|
cachingProvider
|
null
|
javax.cache.spi.CachingProvider の完全修飾クラス名。OSGI 環境で必須です。
|
|
cacheConfiguration
|
null
|
javax.cache.configuration.Configuration インスタンスへの参照
|
|
cacheConfigurationProperties
|
null
|
javax.cache.CacheManager を作成するための
javax.cache.spi.CachingProvider の java.util.Properties への参照。
|
|
configurationUri
|
null
|
の実装固有の URI
javax.cache.CacheManager
|
|
cacheLoaderFactory
|
null
|
javax.cache.configuration.Factory への参照 javax.cache.integration.CacheLoader
|
|
cacheWriterFactory
|
null
|
javax.cache.configuration.Factory への参照 javax.cache.integration.CacheWriter
|
|
expiryPolicyFactory
|
null
|
javax.cache.configuration.Factory への参照 javax.cache.expiry.ExpiryPolicy
|
|
readThrough
|
false
|
read-through モードが必要であるかどうかを示すフラグ
|
|
writeThrough
|
false
|
write-through モードが必要であるかどうかを示すフラグ
|
| storeByValue | true | キャッシュが store-by-value または store-by-reference であるかどうかを示すフラグ |
|
statisticsEnabled
|
fasle
|
統計収集が有効になっているかどうかを示すフラグ |
|
managementEnabled
|
false
|
管理が有効になっているかどうかを示すフラグ |
|
filteredEvents
|
null
|
フィルターするイベントタイプのコンマ区切りリスト。それらが一緒に指定されると eventFilters によって上書きされます。
|
|
eventFilters
|
null
|
javax.cache.event.CacheEntryEventFilter 参照のコンマ区切りリスト。一緒に指定された場合に filteredEvents を上書きします。
|
| oldValueRequired |
false
|
イベントに古い値が必要であるかどうかを示すフラグ。サポートされる値は CREATED、UPDATED、REMOVED、EXPIRED です。 |
| 同期 | false | イベントリスナーがイベントの原因となるスレッドをブロックするかどうかを示すフラグ |
| action | null | 適用するデフォルトのアクション。ヘッダーの値には優先度があります。 |
| createCacheIfNotExists | true | cacheName で識別されるキャッシュが存在しない場合に作成する必要があるかどうかを設定します。 |
ヘッダー変数 リンクのコピーリンクがクリップボードにコピーされました!
|
名前
|
タイプ
|
説明
|
|---|---|---|
|
CamelJCacheAction
|
java.lang.String
|
サポートされる値は PUT、PUTALL、PUTIFABSENT、GET、GETALL、GETANDREMOVE、GETANDREPLACE、GETANDPUT、REPLACE、REMOVE、REMOVEALL、INVOKE、CLEAR です。
|
|
CamelJCacheResult
|
java.lang.Object
|
アクションの結果、つまり PUT、REMOVE、REPLACE のブール値
|
|
CamelJCacheEventType
|
java.lang.String
|
イベントのタイプ
javax.cache.event.EventType
|
|
CamelJCacheKey
|
java.lang.Object
|
アクションを適用するキー
|
| CamelJCacheKeys | java.util.Set<java-lang.Object> | GETALL、REMOVEALL、INVOKE に使用されるアクションを適用するキーのセット |
| CamelJCacheOldValue |
java.lang.Object
|
コンシューマー側では、ヘッダー値にはキーに関連付けられた古い値が含まれます。プロデューサー側で、操作などの CAS を使用するには、ヘッダーに予想される古い値が含まれている必要があります。 |
| CamelJCacheEntryProcessor | javax.cache.processor.EntryProcessor |
INVOKE アクションに使用するエントリープロセッサー
|
| CamelJCacheEntryArgs |
java.util.collection<java.lang.Object>
|
に渡す追加の引数 javax.cache.processor.EntryProcessor
|
JCache ベースのべき等リポジトリーの例: リンクのコピーリンクがクリップボードにコピーされました!
JCache ベースの集約リポジトリーの例: リンクのコピーリンクがクリップボードにコピーされました!
第77章 jclouds リンクのコピーリンクがクリップボードにコピーされました!
jclouds コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
pom.xml に以下の依存関係を追加する必要があります。
コンポーネントの設定 リンクのコピーリンクがクリップボードにコピーされました!
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
jclouds:blobstore:[provider id][?options] jclouds:compute:[provider id][?options]
jclouds:blobstore:[provider id][?options]
jclouds:compute:[provider id][?options]
?option=value&option=value&.. の形式で追加できます。
blobstore URI オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | デフォルト値 | 説明 |
|---|---|---|
operation
|
PUT | *producer Only*.blobstore に送信される操作のタイプを指定します。許可される値は PUT、GET です。 |
container
|
null | blob コンテナーの名前。 |
blobName
|
null | Blob の名前。 |
jclouds:blobstore:aws-s3?operation=CamelJcloudsGet&container=mycontainer&blobName=someblob
jclouds:blobstore:aws-s3?operation=CamelJcloudsGet&container=mycontainer&blobName=someblob
blobstore のメッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| ヘッダー | 説明 |
|---|---|
CamelJcloudsOperation
|
Blob で実行される操作。有効なオプションは です。
|
CamelJcloudsContainer
|
blob コンテナーの名前。 |
CamelJcloudsBlobName
|
Blob の名前。 |
blobstore 使用例 リンクのコピーリンクがクリップボードにコピーされました!
例 1: Blob に配置 リンクのコピーリンクがクリップボードにコピーされました!
from("direct:start")
.to("jclouds:blobstore:aws-s3" +
"?operation=PUT" +
"&container=mycontainer" +
"&blobName=myblob");
from("direct:start")
.to("jclouds:blobstore:aws-s3" +
"?operation=PUT" +
"&container=mycontainer" +
"&blobName=myblob");
<route>
<from uri="direct:start"/>
<to uri="jclouds:blobstore:aws-s3?operation=PUT&container=mycontainer&blobName=myblob"/>
</route>
<route>
<from uri="direct:start"/>
<to uri="jclouds:blobstore:aws-s3?operation=PUT&container=mycontainer&blobName=myblob"/>
</route>
例 2: Blob の取得/読み取り リンクのコピーリンクがクリップボードにコピーされました!
from("direct:start")
.to("jclouds:blobstore:aws-s3" +
"?operation=GET" +
"&container=mycontainer" +
"&blobName=myblob");
from("direct:start")
.to("jclouds:blobstore:aws-s3" +
"?operation=GET" +
"&container=mycontainer" +
"&blobName=myblob");
<route>
<from uri="direct:start"/>
<to uri="jclouds:blobstore:aws-s3?operation=PUT&container=mycontainer&blobName=myblob"/>
</route>
<route>
<from uri="direct:start"/>
<to uri="jclouds:blobstore:aws-s3?operation=PUT&container=mycontainer&blobName=myblob"/>
</route>
例 3: Blob の使用 リンクのコピーリンクがクリップボードにコピーされました!
from("jclouds:blobstore:aws-s3" +
"?container=mycontainer")
.to("direct:next");
from("jclouds:blobstore:aws-s3" +
"?container=mycontainer")
.to("direct:next");
<route>
<from uri="jclouds:blobstore:aws-s3?operation=GET&container=mycontainer&blobName=myblob"/>
<to uri="direct:next"/>
</route>
<route>
<from uri="jclouds:blobstore:aws-s3?operation=GET&container=mycontainer&blobName=myblob"/>
<to uri="direct:next"/>
</route>
Compute サービスの URI オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | デフォルト値 | 説明 |
|---|---|---|
operation
|
CamelJcloudsPut | コンピュートサービスで実行される操作のタイプを指定します。許可される値は、CamelJcloudsCreateNode、CamelJcloudsRunScript、CamelJcloudsDestroyNode、CamelJcloudsListNodes、CamelJCloudsListImages、CamelJCloudsListHardware です。 |
imageId
|
null | *CamelJcloudsCreateNode 操作のみ* ノードの作成に使用される imageId。値は実際のクラウドプロバイダーによって異なります。 |
locationId
|
null | *CamelJcloudsCreateNode 操作のみ* ノードの作成に使用する場所。値は実際のクラウドプロバイダーによって異なります。 |
hardwareId
|
null | *CamelJcloudsCreateNode 操作のみ* ノードの作成に使用されるハードウェア。値は実際のクラウドプロバイダーによって異なります。 |
group
|
null | *CamelJcloudsCreateNode 操作のみ* 新規作成されたノードに割り当てられるグループ。値は実際のクラウドプロバイダーによって異なります。 |
nodeId
|
null | *CamelJcloudsRunScript & CamelJcloudsDestroyNode 操作のみ* スクリプトを実行するノードの ID、または破棄されるノードの ID。 |
user
|
null | *CamelJcloudsRunScript 操作のみ* スクリプトを実行するターゲットノードのユーザー。 |
jclouds:compute:aws-ec2?operation=CamelJcloudsCreateNode&imageId=AMI_XXXXX&locationId=eu-west-1&group=mygroup
jclouds:compute:aws-ec2?operation=CamelJcloudsCreateNode&imageId=AMI_XXXXX&locationId=eu-west-1&group=mygroup
コンピュートの使用例 リンクのコピーリンクがクリップボードにコピーされました!
例 1: 利用可能なイメージの一覧表示 リンクのコピーリンクがクリップボードにコピーされました!
from("jclouds:compute:aws-ec2" +
"&operation=CamelJCloudsListImages")
.to("direct:next");
from("jclouds:compute:aws-ec2" +
"&operation=CamelJCloudsListImages")
.to("direct:next");
<route>
<from uri="jclouds:compute:aws-ec2?operation=CamelJCloudsListImages"/>
<to uri="direct:next"/>
</route>
<route>
<from uri="jclouds:compute:aws-ec2?operation=CamelJCloudsListImages"/>
<to uri="direct:next"/>
</route>
例 2: 新規ノードを作成します。 リンクのコピーリンクがクリップボードにコピーされました!
<route>
<from uri="direct:start"/>
<to uri="jclouds:compute:aws-ec2?operation=CamelJcloudsCreateNode&imageId=AMI_XXXXX&locationId=XXXXX&group=myGroup"/>
</route>
<route>
<from uri="direct:start"/>
<to uri="jclouds:compute:aws-ec2?operation=CamelJcloudsCreateNode&imageId=AMI_XXXXX&locationId=XXXXX&group=myGroup"/>
</route>
例 3: 実行中のノードでシェルスクリプトを実行します。 リンクのコピーリンクがクリップボードにコピーされました!
from("direct:start").
to("jclouds:compute:aws-ec2" +
"?operation=CamelJcloudsRunScript" +
"?nodeId=10" +
"&user=ubuntu");
from("direct:start").
to("jclouds:compute:aws-ec2" +
"?operation=CamelJcloudsRunScript" +
"?nodeId=10" +
"&user=ubuntu");
nodeId を使用して指定されます。nodeId は、ノードの作成時に取得できます。これは、結果のメタデータの一部となるか、または CamelJcloudsListNodes 操作を実行して取得できます。
<route>
<from uri="direct:start"/>
<to uri="jclouds:compute:aws-ec2?operation=CamelJcloudsRunScript&?nodeId=10&user=ubuntu"/>
</route>
<route>
<from uri="direct:start"/>
<to uri="jclouds:compute:aws-ec2?operation=CamelJcloudsRunScript&?nodeId=10&user=ubuntu"/>
</route>
その他の参考資料 リンクのコピーリンクがクリップボードにコピーされました!
第78章 JCR リンクのコピーリンクがクリップボードにコピーされました!
JCR コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
jcr コンポーネントを使用すると、プロデューサーで JCR 準拠のコンテンツリポジトリー( Apache Jackrabbitなど)との間でノードを追加/読み取るか、コンシューマーに EventListener を登録できます。
pom.xml に以下の依存関係を追加する必要があります。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
jcr://user:password@repository/path/to/node
jcr://user:password@repository/path/to/node
使用方法 リンクのコピーリンクがクリップボードにコピーされました!
repository 要素は、Camel コンテキストレジストリーで JCR Repository オブジェクトを検索するために使用されます。
プロデューサー リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | デフォルト値 | 説明 |
|---|---|---|
CamelJcrOperation
|
CamelJcrInsert
|
使用する CamelJcrInsert または CamelJcrGetById 操作 |
CamelJcrNodeName
|
null
|
使用するノード名を決定するために使用されます。 |
CamelJcrNodeType
|
null
|
Camel 2.16: 新規ノードの追加時にプライマリーノードタイプを指定します。 |
- 操作が CamelJcrInsert: コンテンツリポジトリーに新しいノードが作成されると、IN メッセージのすべてのメッセージヘッダーが
javax.jcr.Valueインスタンスに変換され、新規ノードに追加され、ノードの UUID が OUT メッセージで返されます。 - 操作が
CamelJcrGetByIdの場合:メッセージボディーをノード識別子として使用して、新しいノードがリポジトリーから取得されます。
コンシューマー リンクのコピーリンクがクリップボードにコピーされました!
List<javax.jcr.observation.Event> を返します。
| 名前 | デフォルト値 | 説明 |
|---|---|---|
eventTypes
|
0
|
javax.jcr.observation.Event.NODE_ADDED、javax.jcr.observation.Event.NODE_REMOVED などのビットマスク値としてエンコードされた 1 つ以上のイベントタイプの組み合わせ。 |
deep
|
false
|
true の場合、関連付けられた親ノードが現在のパスまたはそのサブグラフ内にあるイベントを受け取ります。 |
UUID
|
null
|
関連する親ノードにコンマ区切りの uuid 一覧に識別子の 1 つがあるイベントのみが受信されます。 |
nodeTypeNames
|
null
|
関連付けられた親ノードにノードタイプ(またはノード種別のいずれかのサブタイプ)のいずれかがあるイベントのみが受信されます。 |
noLocal
|
false
|
noLocal が true の場合、リスナーが登録されたセッションによって生成されたイベントは無視されます。そうでない場合は、無視されません。
|
sessionLiveCheckInterval
|
60000
|
各セッションがライブチェックするまで待機する間隔(ミリ秒単位)。 |
sessionLiveCheckIntervalOnStart
|
3000
|
最初のセッションがライブチェックされるまで待機する間隔(ミリ秒単位)。 |
username
|
Camel 2.15: URI の authority セクションではなく、URI パラメーターとしてユーザー名を指定できます。 | |
password
|
Camel 2.15: URI の authority セクションではなく、URI パラメーターとしてパスワードを指定できます。 | |
workspaceName
|
null
|
Camel 2.16: デフォルトとは異なるワークスペースを指定できます。 |
例 リンクのコピーリンクがクリップボードにコピーされました!
/home/test ノードに node という名前のノードを作成します。1 つの追加プロパティーもノードに追加されます。my.contents.property には送信されるメッセージのボディーが含まれます。
from("direct:a").setHeader(JcrConstants.JCR_NODE_NAME, constant("node"))
.setHeader("my.contents.property", body())
.to("jcr://user:pass@repository/home/test");
from("direct:a").setHeader(JcrConstants.JCR_NODE_NAME, constant("node"))
.setHeader("my.contents.property", body())
.to("jcr://user:pass@repository/home/test");
<route>
<from uri="jcr://user:pass@repository/import-application/inbox?eventTypes=3&deep=true" />
<to uri="direct:execute-import-application" />
</route>
<route>
<from uri="jcr://user:pass@repository/import-application/inbox?eventTypes=3&deep=true" />
<to uri="direct:execute-import-application" />
</route>
第79章 JDBC リンクのコピーリンクがクリップボードにコピーされました!
JDBC コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
SELECT)および操作(INSERT、UPDATE など)がメッセージボディーに送信されます。このコンポーネントは、spring-jdbc を使用する SQL Component コンポーネントとは異なり、標準の JDBC API を使用します。
from () ステートメントで JDBC コンポーネントを使用することはできません。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
jdbc:dataSourceName[?options]
jdbc:dataSourceName[?options]
?option=value&option=value&.. の形式で追加できます。
オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | デフォルト値 | 説明 |
|---|---|---|
readSize
|
0
|
ポーリングクエリーで読み取り可能なデフォルトの最大行数。 |
statement.<xxx>
|
null
|
Apache Camel 2.1: クエリーを実行するために背後で使用される java.sql.Statement に追加のオプションを設定します。たとえば、statement.maxRows=10 を使用します。詳細なドキュメントは、java.sql.Statement javadoc のドキュメント を参照してください。
|
useJDBC4ColumnNameAndLabelSemantics
|
true
|
JDBC 4/3 列ラベル/名前セマンティクスを使用するかどうかを設定します。JDBC ドライバーでデータを選択する場合に、このオプションを使用して false にすることができます。これは、エイリアスを使用し て な名前)。
|
resetAutoCommit
|
true
|
Camel 2.9: true の場合、Camel は JDBC 接続の autoCommit を false に設定し、ステートメントを実行した後に変更をコミットし、最後に接続の autoCommit フラグをリセットします。JDBC 接続が autoCommit フラグのリセットをサポートしていない場合は、これを false に設定します。XA トランザクションと併用する場合は、トランザクションマネージャーがこの tx のコミットを担当するように、ほとんどの場合 false に設定する必要があります。
|
allowNamedParameters
|
true
|
Camel 2.12: クエリーで名前付きパラメーターの使用を許可するかどうか。 |
prepareStatementStrategy
|
Camel 2.12: プラグインがカスタムの org.apache.camel.component.jdbc.JdbcPrepareStatementStrategy を使用して、クエリーおよび準備済みステートメントの準備を制御できます。
|
|
useHeadersAsParameters
|
false
|
Camel 2.12: 名前付きパラメーターで prepareStatementStrategy を使用するには、このオプションを true に設定します。これにより、名前付きプレースホルダーでクエリーを定義し、クエリープレースホルダーの動的な値でヘッダーを使用できます。
|
outputType
|
SelectList
|
Camel 2.12.1: producer to SelectList as List of Map, or SelectOne as single Java object in the following way: a)クエリーに列が 1 つしかない場合は、その JDBC Column オブジェクトが返されます。SELECT COUNT (*) FROM PROJECT (SELECT COUNT (*) FROM PROJECT など)-Long オブジェクトを返します。b (クエリーに複数の列がある場合) その結果の Map を返します。c)outputClass が設定されている場合には、列名に一致するすべてのセッターを呼び出すことで、クエリー結果を Java Bean オブジェクトに変換します。クラスにインスタンスを作成するデフォルトのコンストラクターがあるとします。Camel 2.14 以降では、
SelectList もサポートされます。d)クエリーによって複数の行が発生した場合、一意でない結果例外が出力されます。
Camel 2.14.0: 新しい
StreamList 出力タイプ値。Iterator<Map<String, Object>> を使用してクエリーの結果をストリーミングします。Splitter EIP と併用できます。
|
outputClass
|
null
|
Camel 2.12.1: outputType=SelectOne の場合に変換として使用する完全なパッケージおよびクラス名を指定します。Camel 2.14 以降では、SelectList もサポートされます。
|
beanRowMapper
|
Camel 2.12.1: outputClass の使用時にカスタム org.apache.camel.component.jdbc.BeanRowMapper を使用するには、以下を行います。デフォルトの実装では、行名が低くなり、アンダースコアやダッシュをスキップします。たとえば、CUST_ID は 。
|
|
useGetBytesForBlob
|
false
|
Camel 2.16: BLOB 列を文字列データではなくバイトとして読み取る。これは、BLOB 列をバイトとして読み取る必要がある Oracle などの特定のデータベースで必要になる場合があります。 |
結果 リンクのコピーリンクがクリップボードにコピーされました!
ArrayList<HashMap<String, Object>> として返されます。List オブジェクトには行のリストが含まれ、Map オブジェクトには、String キーを持つ各行が列名として含まれます。
ResultSetMetaData を取得し、列名を Map のキーとして返すことができます。
メッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| ヘッダー | 説明 |
|---|---|
CamelJdbcRowCount
|
クエリーが SELECT の場合、行数はこの OUT ヘッダーで返されます。
|
CamelJdbcUpdateCount
|
クエリーが UPDATE の場合、更新数はこの OUT ヘッダーで返されます。
|
CamelGeneratedKeysRows
|
Camel 2.10: 生成された kets が含まれる行。 |
CamelGeneratedKeysRowCount
|
Camel 2.10: 生成されたキーが含まれるヘッダーの行数。 |
CamelJdbcColumnNames
|
Camel 2.11.1: ResultSet からの列名( java.util.Set 型)
|
CamelJdbcParametes
|
Camel 2.12: useHeadersAsParameters が有効な場合に使用されるヘッダーを持つ java.util.Map。
|
生成されるキー リンクのコピーリンクがクリップボードにコピーされました!
CamelRetrieveGeneratedKeys=true を設定します。次に、生成された鍵が上記の表に記載されているキーが含まれるヘッダーとして提供されます。
from("direct:insert")
.setHeader("CamelRetrieveGeneratedKeys", constant(true))
.setBody(constant("INSERT INTO projects (project) VALUES ('Camel')"))
.to("jdbc:myDataSource");
from("direct:insert")
.setHeader("CamelRetrieveGeneratedKeys", constant(true))
.setBody(constant("INSERT INTO projects (project) VALUES ('Camel')"))
.to("jdbc:myDataSource");
名前付きパラメーターの使用 リンクのコピーリンクがクリップボードにコピーされました!
from("direct:projects")
.setHeader("lic", constant("ASF"))
.setHeader("min", constant(123))
.setBody(constant("select * from projects where license = :?lic and id > :?min order by id"))
.to("jdbc:myDataSource?useHeadersAsParameters=true")
from("direct:projects")
.setHeader("lic", constant("ASF"))
.setHeader("min", constant(123))
.setBody(constant("select * from projects where license = :?lic and id > :?min order by id"))
.to("jdbc:myDataSource?useHeadersAsParameters=true")
java.util.Map に保存し、キー CamelJdbcParameters を使用してヘッダーにマッピングすることもできます。
サンプル リンクのコピーリンクがクリップボードにコピーされました!
testdb として Apache Camel レジストリーに登録します。
JndiRegistry reg = super.createRegistry();
reg.bind("testdb", db);
return reg;
JndiRegistry reg = super.createRegistry();
reg.bind("testdb", db);
return reg;
testdb データソースを参照する方法に注意してください。
// lets add simple route
public void configure() throws Exception {
from("direct:hello").to("jdbc:testdb?readSize=100");
}
// lets add simple route
public void configure() throws Exception {
from("direct:hello").to("jdbc:testdb?readSize=100");
}
DataSource を作成することもできます。
サンプル:データベースを毎分ポーリングする リンクのコピーリンクがクリップボードにコピーされました!
from("timer://foo?period=60000").setBody(constant("select * from customer")).to("jdbc:testdb").to("activemq:queue:customers");
from("timer://foo?period=60000").setBody(constant("select * from customer")).to("jdbc:testdb").to("activemq:queue:customers");
例:データソース間のデータの移動 リンクのコピーリンクがクリップボードにコピーされました!
その他の参考資料 リンクのコピーリンクがクリップボードにコピーされました!
第80章 Jetty リンクのコピーリンクがクリップボードにコピーされました!
Jetty コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
Exchange.HTTP_RESPONSE_CODE データを複数回アクセスする必要がある場合(たとえば、マルチキャストまたは再配信エラー処理)、Stream Caching を使用するか、メッセージボディーを複数回再読み取りできる String に変換する必要があります。
pom.xml に以下の依存関係を追加する必要があります。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
jetty:http://hostname[:port][/resourceUri][?options]
jetty:http://hostname[:port][/resourceUri][?options]
?option=value&option=value&.. の形式で追加できます。
オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | デフォルト値 | 説明 |
|---|---|---|
sessionSupport
|
false
|
Jetty のサーバー側でセッションマネージャーを有効にするかどうかを指定します。 |
httpClient.XXX
|
null
|
Jetty の HttpClient の設定。たとえば、httpClient.idleTimeout=30000 を設定すると、アイドルタイムアウトは 30 秒に設定されます。
|
httpClient
|
null
|
このエンドポイントによって作成されたすべてのプロデューサーに共有 org.eclipse.jetty.client.HttpClient を使用します。このオプションは、特別な状況でのみ使用してください。
|
httpClientMinThreads
|
null
|
Camel 2.11: プロデューサーのみ: HttpClient スレッドプールの最小スレッド数に値を設定します。この設定は、コンポーネントレベルに設定された設定を上書きします。最小サイズと最大サイズの両方を設定する必要があることに注意してください。設定しない場合は、Jetty のスレッドプールで使用される min 8 スレッドにデフォルト設定されます。
|
httpClientMaxThreads
|
null
|
Camel 2.11: プロデューサーのみ: HttpClient スレッドプールの最大スレッド数に値を設定します。この設定は、コンポーネントレベルに設定された設定を上書きします。最小サイズと最大サイズの両方を設定する必要があることに注意してください。設定しない場合は、Jetty のスレッドプールで使用される最大 16 スレッドにデフォルト設定されます。
|
httpBindingRef
|
null
|
レジストリーの org.apache.camel.component.http.HttpBinding への参照。HttpBinding を使用して、コンシューマーに応答を書き込む方法をカスタマイズできます。
|
jettyHttpBindingRef
|
null
|
Camel 2.6.0+: レジストリーの org.apache.camel.component.jetty.JettyHttpBinding への参照。JettyHttpBinding を使用すると、プロデューサーに対して応答の作成方法をカスタマイズできます。
|
matchOnUriPrefix
|
false
|
完全に一致するものが見つからない場合に、CamelServlet が URI 接頭辞と一致することでターゲットコンシューマーの検索を試みるかどうか。How do I let Jetty match wildcards を参照してください。
|
handlers
|
null
|
レジストリー(Spring ApplicationContextなど)の org.mortbay.jetty.Handler インスタンスのコンマ区切りの一覧を指定します。これらのハンドラーは Jetty サーブレットコンテキストに追加されます(セキュリティーを追加するためなど)。
|
chunked
|
true
|
Camel 2.2: このオプションが false の場合、Jetty サーブレットが HTTP ストリーミングを無効にし、応答に content-length ヘッダーを設定します。 |
enableJmx
|
false
|
Camel 2.3: このオプションが true の場合、このエンドポイントに対して Jetty JMX サポートが有効になります。 |
disableStreamCache
|
false
|
Camel 2.3: Jetty からの raw 入力ストリームがキャッシュされているかどうかを判断します(Camel はストリームをファイル、ストリームキャッシュ)キャッシュにストリームします。http://camel.apache.org/stream-caching.htmlデフォルトでは、Camel は Jetty 入力ストリームをキャッシュして複数回読み取りし、Camel がストリームからすべてのデータを取得できるようにします。ただし、ファイルや他の永続ストアに直接ストリーミングするなど、raw ストリームにアクセスする必要がある場合などにこのオプションを true に設定できます。DefaultHttpBinding は、要求入力ストリームをストリームキャッシュにコピーし、このオプションが false の場合、ストリームを複数回読み取るようにメッセージボディーに配置します。Jetty を使用してエンドポイントをブリッジ/プロキシーする場合は、メッセージペイロードを複数回読み取る必要がない場合は、このオプションを有効にしてパフォーマンスを向上することを検討してください。
|
throwExceptionOnFailure
|
true
|
リモートサーバーからの応答が失敗した場合に HttpOperationFailedException を出力することを無効にするオプション。これにより、HTTP ステータスコードに関するすべての応答を取得できます。
|
transferException
|
false
|
Camel 2.6: 有効で、エクスチェンジ がコンシューマー側で処理に失敗した場合、発生した例外が応答で application/x-java-serialized-object コンテンツタイプとしてシリアライズされた場合は、以下を行います。プロデューサー側では、例外がデシリアライズされ、HttpOperationFailedException ではなくそのまま出力されます。原因となった例外はシリアライズする必要があります。
|
bridgeEndpoint
|
false
|
> Camel 2.1: オプションが true の場合、HttpProducer は Exchange.HTTP_URI ヘッダーを無視し、リクエストにエンドポイントの URI を使用します。また、throwExceptionOnFailure を false に設定して、HttpProducer がすべての障害応答を返信するようにすることもできます。Camel 2.3: オプションが true の場合、content-encoding が gzip の場合、HttpProducer および CamelServlet は gzip 処理をスキップします。ブリッジ時に最適化するために disableStreamCache を true に設定することも検討してください。
|
enableMultipartFilter
|
true
|
Camel 2.5: Jetty org.eclipse.jetty.servlets.MultiPartFilter が有効かどうか。マルチパートリクエストもプロキシー/ブリッジされるように、エンドポイントをブリッジする場合にはこの値を false に設定する必要があります。
|
multipartFilterRef
|
null
|
Camel 2.6: カスタムの multipart フィルターの使用を許可します。注記: multipartFilterRef を設定すると、enableMultipartFilter の値が true に強制されます。
|
filterInit.xxx
|
null
|
Camel 2.17: フィルターの設定 InitParametersたとえば、filterInit.parameter=value を設定すると、フィルター init メソッドを呼び出す際に、パラメーターを使用することができます。
|
filtersRef
|
null
|
Camel 2.9: リストに格納され、レジストリーで検索できるカスタムフィルターを使用できます。 |
continuationTimeout
|
null
|
Camel 2.6: Jetty をコンシューマー(サーバー)として使用する場合にタイムアウトをミリ秒単位で設定できます。デフォルトでは Jetty は 30000 を使用します。<= 0 の値を使用すると有効期限 が切れることはありません。タイムアウトが発生すると、リクエストは期限切れになり、Jetty は http エラー 503 をクライアントに返します。このオプションは、非同期ルーティングエンジンで Jetty を使用する場合のみ使用されます。
|
useContinuation
|
true
|
Camel 2.6: Jetty サーバーの Jetty 継続を 使用するかどうか。 |
sslContextParametersRef
|
null
|
非推奨 : Camel 2.8: レジストリーの org.apache.camel.util.jsse.SSLContextParameters への参照。この参照は、コンポーネントレベルで設定済みの SSLContextParameters を上書きします。Security Guide および 「JSSE 設定ユーティリティーの使用」 の Configuring Transport Security for Camel Components を参照して ください。
|
sslContextParameters
|
null
|
Camel 2.17: レジストリーの org.apache.camel.util.jsse.SSLContextParameters への参照。この参照は、コンポーネントレベルで設定済みの SSLContextParameters を上書きします。Security Guide および 「JSSE 設定ユーティリティーの使用」 の Configuring Transport Security for Camel Components を参照して ください。
|
traceEnabled
|
false
|
この Jetty コンシューマーに対して HTTP TRACE を有効にするかどうかを指定します。デフォルトでは、TRACE はオフになっています。 |
optionsEnabled
|
false
|
Camel 2.17: この Jetty コンシューマーに対して HTTP OPTIONS を有効にするかどうかを指定します。デフォルトでは、OPTIONS はオフになっています。 |
headerFilterStrategy
|
null
|
Camel 2.11: レジストリー の org.apache.camel.spi.HeaderFilterStrategy のインスタンスへの 参照。これは、新しい create HttpJettyEndpoint にカスタム headerFilterStrategy を適用するために使用されます。
|
httpMethodRestrict
|
null
|
Camel 2.11: コンシューマーのみ:
GET/POST/PUT など、HttpMethod が一致する場合にのみ消費を許可するために使用されます。Camel 2.15 以降 では、複数のメソッドをコンマで区切って指定できます。
|
responseBufferSize
|
null
|
Camel 2.12: javax.servlet.ServletResponse でカスタムバッファーサイズを使用するには、以下を行います。
|
proxyHost
|
null
|
Camel 2.11: Jetty クライアントによって使用される http プロキシーホスト URL のみ。
|
proxyPort
|
null
|
Camel 2.11: Jetty クライアントによって使用される http プロキシーポートのみプロデューサー。
|
sendServerVersion
|
true
|
Camel 2.13: オプションが true の場合、jetty は要求を送信するクライアントに jetty バージョン情報のあるサーバーヘッダーを送信します。なお、他の camel-jetty エンドポイントが同じポートを共有していないことを確認してください。それ以外の場合は、このオプションが期待どおりに機能しない可能性があります。
|
sendDateHeader
|
false
|
Camel 2.14: オプションが true の場合、jetty サーバーはリクエストを送信するクライアントに日付ヘッダーを送信します。なお、他の camel-jetty エンドポイントが同じポートを共有していないことを確認してください。それ以外の場合は、このオプションが期待どおりに機能しない可能性があります。
|
enableCORS
|
false
|
Camel 2.15: オプションが
true の場合、Jetty サーバーは、すぐに使用できる CORS をサポートする CrossOriginFilter を設定します。
|
okStatusCodeRange
|
200-299
|
Camel 2.16: プロデューサーのみ。正常な応答と見なされるステータスコード。値は含まれます。範囲は、構文
from-to を使用して定義する必要があります。
|
メッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
http://myserver/myserver?orderid=123 を持つクライアントリクエストの場合、エクスチェンジには orderid という名前のヘッダー(値が 123)が含まれます。
使用方法 リンクのコピーリンクがクリップボードにコピーされました!
コンポーネントオプション リンクのコピーリンクがクリップボードにコピーされました!
JettyHttpComponent は、以下のオプションを提供します。
| 名前 | デフォルト値 | 説明 |
|---|---|---|
enableJmx
|
false
|
Camel 2.3: このオプションが true の場合、このエンドポイントに対して Jetty JMX サポートが有効になります。 |
sslKeyPassword
|
null
|
コンシューマーのみ: SSL 使用時のキーストアのパスワード。 |
sslPassword
|
null
|
コンシューマーのみ: SSL を使用する場合のパスワード。 |
sslKeystore
|
null
|
コンシューマーのみ: キーストアへのパス。 |
minThreads
|
null
|
Camel 2 .5 コンシューマーのみ: サーバースレッドプールの最小スレッド数に値を設定します。 |
maxThreads
|
null
|
Camel 2 .5 コンシューマーのみ: サーバースレッドプールの最大スレッド数に値を設定します。 |
threadPool
|
null
|
Camel 2 .5 コンシューマーのみ: サーバーにカスタムスレッドプールを使用します。 |
sslSocketConnectors
|
null
|
Camel 2.3 Consumer のみ: ポート番号固有の SSL コネクターごとに含まれるマップ。詳細は、SSL サポート のセクションを参照してください。 |
socketConnectors
|
null
|
Camel 2. 5 コンシューマーのみ: ポート番号固有の HTTP コネクターごとに含まれるマップ。sslSocketConnectors と同じ原則を使用するため、SSL サポート のセクションを参照してください。
|
sslSocketConnectorProperties
|
null
|
Camel 2. 5 コンシューマーのみ一般的な SSL コネクタープロパティーが含まれるマップ。 |
socketConnectorProperties
|
null
|
Camel 2. 5 コンシューマーのみ一般的な HTTP コネクタープロパティーが含まれるマップ。sslSocketConnectorProperties と同じ principle を使用します。
|
httpClient
|
null
|
非推奨: プロデューサーのみ:jetty プロデューサーでカスタム HttpClient を使用します。このオプションは Camel 2.11 以降から削除されます。代わりに、エンドポイントに オプションを設定できます。
|
httpClientMinThreads
|
null
|
プロデューサーのみ: HttpClient スレッドプールの最小スレッド数に値を設定します。最小サイズと最大サイズの両方を設定する必要があることに注意してください。
|
httpClientMaxThreads
|
null
|
プロデューサーのみ: HttpClient スレッドプールの最大スレッド数に値を設定します。最小サイズと最大サイズの両方を設定する必要があることに注意してください。
|
httpClientThreadPool
|
null
|
非推奨: プロデューサーのみ: クライアントにカスタムスレッドプールを使用します。このオプションは Camel 2.11 以降から削除されます。 |
sslContextParameters
|
null
|
Camel 2.8: コンポーネントレベルでカスタム SSL/TLS 設定オプションを設定するには、以下を実行します。詳細は、「JSSE 設定ユーティリティーの使用」 を参照してください。 |
requestBufferSize
|
null
|
Camel 2.11. 2: Jetty コネクターでリクエストバッファーサイズのカスタム値を設定できます。 |
requestHeaderSize
|
null
|
Camel 2.11. 2: Jetty コネクターでリクエストヘッダーサイズのカスタム値を設定します。 |
responseBufferSize
|
null
|
Camel 2.11. 2: Jetty コネクターで応答バッファーサイズのカスタム値を設定できます。 |
responseHeaderSize
|
null
|
Camel 2.11. 2: Jetty コネクターで応答ヘッダーサイズのカスタム値を設定します。 |
proxyHost
|
null
|
Camel 2.12.2/2.11.3 http プロキシーを使用します。
|
proxyPort
|
null
|
Camel 2.12.2/2.11.3: http プロキシーを使用するには、以下を実行します。
|
errorHandler
|
null
|
Camel 2.15: このオプションは、Jetty サーバーが使用する ErrorHandler を設定するために使用されます。
|
allowJavaSerializedObject
|
false
|
Camel 2.16.1/2.15.5: リクエストが
context-type=application/x-java-serialized-object を使用している場合に Java のシリアル化を許可するかどうか。これはデフォルトでオフになっています。警告: このオプションを有効にすると、Java はリクエストから受信したデータを Java にデシリアライズし、セキュリティーリスクとなる可能性があることに注意してください。
|
プロデューサーの例 リンクのコピーリンクがクリップボードにコピーされました!
from("direct:start").to("jetty://http://www.google.com");
from("direct:start").to("jetty://http://www.google.com");
<route>
<from uri="direct:start"/>
<to uri="jetty://http://www.google.com"/>
<route>
<route>
<from uri="direct:start"/>
<to uri="jetty://http://www.google.com"/>
<route>
コンシューマーの例 リンクのコピーリンクがクリップボードにコピーされました!
http://localhost:8080/myapp/myservice で HTTP サービスを公開するルートを定義します。
from("jetty:http://localhost:{{port}}/myapp/myservice").process(new MyBookService());
from("jetty:http://localhost:{{port}}/myapp/myservice").process(new MyBookService());
localhost を指定すると、Camel はローカルの TCP/IP ネットワークインターフェイスでのみエンドポイントを公開するため、操作するマシンからアクセスすることはできません。
0.0.0.0 アドレスを使用する必要があります。
MyBookService クラスに実装され、HTTP リクエストの内容にアクセスし、応答を返します。注記: コードがユニットテストの一部であるため、この例では assert 呼び出しが表示されます。
mock: one にルーティングし、他のすべてのリクエストを mock:other にルーティングするコンテンツベースのルートを示しています。
http://serverUri?one=hello を送信すると、Jetty コンポーネントは HTTP リクエストパラメーターをエクスチェンジの in.header にコピーします。次に、Simple 言語を使用して、このヘッダーを含むエクスチェンジを特定のエンドポイントへルーティングし、他のすべてのエクスチェンジを別のエンドポイントにルーティングすることができます。Simple\-\-- など、 El や OGNL\--we よりも強力な言語を使用している場合は、パラメーター値をテストし、ヘッダー値に基づいてルーティングを行うこともできます。
セッションサポート リンクのコピーリンクがクリップボードにコピーされました!
sessionSupport を使用すると、HttpSession オブジェクトを有効にし、エクスチェンジの処理中にセッションオブジェクトにアクセスできます。たとえば、以下のルートはセッションを有効にします。
<route>
<from uri="jetty:http://0.0.0.0/myapp/myservice/?sessionSupport=true"/>
<processRef ref="myCode"/>
<route>
<route>
<from uri="jetty:http://0.0.0.0/myapp/myservice/?sessionSupport=true"/>
<processRef ref="myCode"/>
<route>
<bean id="myCode"class="com.mycompany.MyCodeProcessor"/>
<bean id="myCode"class="com.mycompany.MyCodeProcessor"/>
HttpSession にアクセスできます。
public void process(Exchange exchange) throws Exception {
HttpSession session = exchange.getIn(HttpMessage.class).getRequest().getSession();
...
}
public void process(Exchange exchange) throws Exception {
HttpSession session = exchange.getIn(HttpMessage.class).getRequest().getSession();
...
}
JSSE 設定ユーティリティーの使用 リンクのコピーリンクがクリップボードにコピーされました!
エンドポイントの Spring DSL ベースの設定 リンクのコピーリンクがクリップボードにコピーされました!
Jetty の直接設定 リンクのコピーリンクがクリップボードにコピーされました!
https:// prefix--- で URI をフォーマットします。以下に例を示します。
<from uri="jetty:https://0.0.0.0/myapp/myservice/"/>
<from uri="jetty:https://0.0.0.0/myapp/myservice/"/>
jetty.ssl.keystoreは、Jetty サーバー自身の X.509 証明書をキー エントリー に含める Java キー ストアファイルの場所を指定します。キーエントリーは、X.509 証明書(実際には 公開鍵)と関連する秘密鍵を保存します。jetty.ssl.passwordキーストアファイルへのアクセスに必要なストアパスワード(これはキーストアコマンドの\-storepassオプションに指定されたパスワードと同じです)。jetty.ssl.keypasswordキーストアの証明書のキーエントリーにアクセスするために使用されるキーパスワード(これはキーストアコマンドの\-keypassオプションに指定されたパスワードと同じです)。
org.eclipse.jetty.ssl.keystoreは、キー エントリー に Jetty サーバー自体の X.509 証明書が含まれる Java キー ストアファイルの場所を指定します。キーエントリーは、X.509 証明書(実際には 公開鍵)と関連する秘密鍵を保存します。org.eclipse.jetty.ssl.passwordキーストアファイルへのアクセスに必要なストアパスワード(これはキーストアコマンドの\-storepassオプションに指定されたパスワードと同じです)。org.eclipse.jetty.ssl.keypasswordキーストアの証明書のキーエントリーにアクセスするために使用されるキーパスワード(これはキーストアコマンドの\-keypassオプションに指定されたパスワードと同じです)。
一般的な SSL プロパティーの設定 リンクのコピーリンクがクリップボードにコピーされました!
X509Certificate への参照を取得する方法 リンクのコピーリンクがクリップボードにコピーされました!
HttpServletRequest req = exchange.getIn().getBody(HttpServletRequest.class);
X509Certificate cert = (X509Certificate) req.getAttribute("javax.servlet.request.X509Certificate")
HttpServletRequest req = exchange.getIn().getBody(HttpServletRequest.class);
X509Certificate cert = (X509Certificate) req.getAttribute("javax.servlet.request.X509Certificate")
一般的な HTTP プロパティーの設定 リンクのコピーリンクがクリップボードにコピーされました!
Obtaining X-Forwarded-For header with HttpServletRequest.getRemoteAddr() リンクのコピーリンクがクリップボードにコピーされました!
mod_proxy で Jetty に転送された場合、元のクライアント IP アドレスは X-Forwarded-For ヘッダーに、HttpServletRequest.getRemoteAddr() は Apache プロキシーのアドレスを返します。
X-Forwarded-For から値を取得し、HttpServletRequest remoteAddr プロパティーに配置します。このプロパティーはエンドポイント設定から直接は利用できませんが、socketConnectors プロパティーを使用して簡単に追加できます。
HTTP ステータスコードを返すデフォルトの動作 リンクのコピーリンクがクリップボードにコピーされました!
org.apache.camel.component.http.DefaultHttpBinding クラスによって定義されます。
Exchange.HTTP_RESPONSE_CODE ヘッダーにコードを設定します。
Customizing HttpBinding リンクのコピーリンクがクリップボードにコピーされました!
org.apache.camel.component.http.DefaultHttpBinding を使用して応答の作成方法を処理します。必要に応じて、独自の HttpBinding クラスを実装するか、DefaultHttpBinding を拡張し、適切なメソッドを上書きすることで、この動作をカスタマイズできます。
DefaultHttpBinding をカスタマイズする方法を示しています。
<bean id="mybinding"class="com.mycompany.MyHttpBinding"/>
<bean id="mybinding"class="com.mycompany.MyHttpBinding"/>
<route><from uri="jetty:http://0.0.0.0:8080/myapp/myservice?httpBindingRef=mybinding"/><to uri="bean:doSomething"/></route>
<route><from uri="jetty:http://0.0.0.0:8080/myapp/myservice?httpBindingRef=mybinding"/><to uri="bean:doSomething"/></route>
Jetty ハンドラーおよびセキュリティー設定 リンクのコピーリンクがクリップボードにコピーされました!
ref 要素を <ref component-id="constraintMapping"/> として指定する必要があります。
from("jetty:http://0.0.0.0:9080/myservice?handlers=securityHandler")
from("jetty:http://0.0.0.0:9080/myservice?handlers=securityHandler")
ハンドラー オプションを Bean ID のコンマ区切りリストに設定します。
org.eclipse.jetty.security org.eclipse.jetty.util.security org.eclipse.jetty.security.authentication
org.eclipse.jetty.security
org.eclipse.jetty.util.security
org.eclipse.jetty.security.authentication
felix-maven-plugin プラグインを以下の Import-Package 要素で設定できます。
<Import-Package>
org.eclipse.jetty.security,
org.eclipse.jetty.util.security,
org.eclipse.jetty.security.authentication
</Import-Package>
<Import-Package>
org.eclipse.jetty.security,
org.eclipse.jetty.util.security,
org.eclipse.jetty.security.authentication
</Import-Package>
カスタム HTTP 500 リプライメッセージを返す方法 リンクのコピーリンクがクリップボードにコピーされました!
HttpBinding を使用してメッセージマッピングを制御できますが、多くの場合、Camel の Exception Clause を使用してカスタムリプライメッセージを構築する方が簡単です。たとえば、ここに示すとおり、Dude something wrong with HTTP error code 500 が返されます。
マルチパートフォームのサポート リンクのコピーリンクがクリップボードにコピーされました!
Jetty JMX サポート リンクのコピーリンクがクリップボードにコピーされました!
<from uri="jetty:https://0.0.0.0/myapp/myservice1/?enableJmx=true"/>
<from uri="jetty:https://0.0.0.0/myapp/myservice1/?enableJmx=true"/>
<from uri="jetty:https://0.0.0.0/myapp/myservice2/?enableJmx=false"/>
<from uri="jetty:https://0.0.0.0/myapp/myservice2/?enableJmx=false"/>
第81章 JGroups リンクのコピーリンクがクリップボードにコピーされました!
JGroups コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
pom.xml に以下の依存関係を追加する必要があります。
Camel on EAP デプロイメント リンクのコピーリンクがクリップボードにコピーされました!
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
jgroups:clusterName[?options]
jgroups:clusterName[?options]
オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | デフォルト値 | 説明 |
|---|---|---|
channelProperties
|
null
|
*Camel 2.10.0:* エンドポイントによって使用される JChannel の設定プロパティーを指定します。 |
使用方法 リンクのコピーリンクがクリップボードにコピーされました!
jgroups コンポーネントを使用すると、エンドポイントに関連付けられた JChannel によって受信されるメッセージを取得し、Camel ルートに転送します。JGroups コンシューマーは受信メッセージを 非同期的 に処理します。
// Capture messages from cluster named
// 'clusterName' and send them to Camel route.
from("jgroups:clusterName").to("seda:queue");
// Capture messages from cluster named
// 'clusterName' and send them to Camel route.
from("jgroups:clusterName").to("seda:queue");
jgroups コンポーネントを使用すると、Camel エクスチェンジのボディーがエンドポイントによって管理される JChannel インスタンスに転送されます。
// Send message to the cluster named 'clusterName'
from("direct:start").to("jgroups:clusterName");
// Send message to the cluster named 'clusterName'
from("direct:start").to("jgroups:clusterName");
第82章 jing リンクのコピーリンクがクリップボードにコピーされました!
Jing コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
jing:someLocalOrRemoteResource
jing:someLocalOrRemoteResource
jing を使用し、compactSyntax オプションを使用して RNG モードまたは RNC モードのいずれかを選択できます。RNG モードは RelaxNG XML 構文を使用し、RNC モードは RelaxNG Compact 構文を使用します。以下の例は、可能な URI 値を示しています。
| 例 | 説明 |
|---|---|
jing:foo/bar.rng
|
クラスパスの XML ファイル foo/bar.rng を参照します。
|
jing:http://foo.com/bar.rnc?compactSyntax=true
|
URL http://foo.com/bar.rnc から RelaxNG Compact Syntax ファイルを参照します。
|
?option=value&option=value&.. の形式で追加できます。
オプション リンクのコピーリンクがクリップボードにコピーされました!
| オプション | デフォルト | 説明 |
|---|---|---|
compactSyntax
|
false
|
RelaxNG compact 構文(RNC)を使用して検証するかどうか。
|
例 リンクのコピーリンクがクリップボードにコピーされました!
第83章 JIRA リンクのコピーリンクがクリップボードにコピーされました!
JIRA コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
- 信頼性/安定性の懸念
- ポーリングしているペイロードのタイプは通常大きくありません(上向き、ページングは API で利用可能です)。
- Webhook が失敗した場合にパブリックにアクセスできない一部のアプリケーションをサポートする必要があります。
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-jira</artifactId>
<version>${camel-version}</version>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-jira</artifactId>
<version>${camel-version}</version>
</dependency>
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
jira://endpoint[?options]
jira://endpoint[?options]
必須オプション: リンクのコピーリンクがクリップボードにコピーされました!
|
オプション
|
説明
|
|---|---|
| serverUrl | JIRA ホストサーバーの URL |
|
username
|
JIRA ユーザー名
|
|
password
|
JIRA password
|
コンシューマーエンドポイント: リンクのコピーリンクがクリップボードにコピーされました!
|
エンドポイント
|
コンテキスト
|
ボディタイプ
|
|---|---|---|
|
newIssue
|
ポーリング
|
com.atlassian.jira.rest.client.domain.BasicIssue
|
|
newComment
|
ポーリング
|
com.atlassian.jira.rest.client.domain.Comment
|
プロデューサーエンドポイント: リンクのコピーリンクがクリップボードにコピーされました!
|
エンドポイント
|
本文
| 必要なメッセージヘッダー |
|---|---|---|
|
pullRequestComment
|
文字列(説明を発行)
|
|
URI オプション: リンクのコピーリンクがクリップボードにコピーされました!
|
名前
|
デフォルト値
|
説明
|
|---|---|---|
|
delay
|
60
|
秒単位
|
| jql | コンシューマーエンドポイントによって使用されます。詳細は以下を参照してください。 |
JQL: リンクのコピーリンクがクリップボードにコピーされました!
jira://[endpoint]?[required options]&jql=project=[project key]
jira://[endpoint]?[required options]&jql=project=[project key]
jira://[endpoint]?[required options]&jql=RAW(project=[project key] AND status in (Open, \"Coding In Progress\") AND \"Number of comments\">0)"
jira://[endpoint]?[required options]&jql=RAW(project=[project key] AND status in (Open, \"Coding In Progress\") AND \"Number of comments\">0)"
第84章 JMS リンクのコピーリンクがクリップボードにコピーされました!
JMS Component リンクのコピーリンクがクリップボードにコピーされました!
JmsTemplate を使用し、消費するために MessageListenerContainer を使用します。
pom.xml に以下の依存関係を追加する必要があります。
Camel on EAP デプロイメント リンクのコピーリンクがクリップボードにコピーされました!
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
jms:[queue:|topic:]destinationName[?options]
jms:[queue:|topic:]destinationName[?options]
destinationName は JMS キューまたはトピック名です。デフォルトでは、destinationName はキュー名として解釈されます。たとえば、キューに接続するには、FOO.BAR を次のように使用します。
jms:FOO.BAR
jms:FOO.BAR
queue: 接頭辞を含めることができます。
jms:queue:FOO.BAR
jms:queue:FOO.BAR
topic: 接頭辞を含める 必要があり ます。たとえば、Stocks.Prices トピックに接続するには、以下を使用します。
jms:topic:Stocks.Prices
jms:topic:Stocks.Prices
?option=value&option=value&.. という形式を使用して、URI にクエリーオプションを追加します。
ActiveMQ の使用 リンクのコピーリンクがクリップボードにコピーされました!
JmsTemplate を再利用します。これは、J2EE 以外のコンテナーでの使用に理想的ではなく、パフォーマンスが低下 するのを防ぐために、通常 JMS プロバイダーでキャッシュを必要とします。
- ActiveMQ を効率的に使用するように最適化されている ActiveMQ コンポーネントを使用する
- ActiveMQ の
PoolingConnectionFactoryを使用します。
トランザクションおよびキャッシュレベル リンクのコピーリンクがクリップボードにコピーされました!
transacted=true)を使用している場合、キャッシュレベルのデフォルト設定はパフォーマンスに影響を与える可能性があります。XA トランザクションを使用している場合は、XA トランザクションが適切に機能しなくなる可能性があるため、キャッシュできません。
cacheLevelName=CACHE_CONSUMER の設定など、パフォーマンスの速度を上げるようにキャッシュを検討してください。
cacheLevelName のデフォルト設定は CACHE_CONSUMER です。cacheLevelName=CACHE_NONE を明示的に設定する必要があります。Camel 2.8 以降では、cacheLevelName のデフォルト設定は CACHE_AUTO です。このデフォルトは、モードを自動的に検出し、それに応じてキャッシュレベルを設定します。
- CACHE_CONSUMER = if transacted=false
- CACHE_NONE = if transacted=true
cacheLevelName=CACHE_CONSUMER の使用を検討してください。
永続サブスクリプション リンクのコピーリンクがクリップボードにコピーされました!
メッセージヘッダーのマッピング リンクのコピーリンクがクリップボードにコピーされました!
- ドットは
\_DOT\_に置き換えられ、Camel がメッセージを消費すると置換が逆になります。 - ハイフンは
\_HYPHEN\_に置き換えられ、Camel がメッセージを消費すると置換が逆になります。
オプション リンクのコピーリンクがクリップボードにコピーされました!
最も一般的に使用されるオプション リンクのコピーリンクがクリップボードにコピーされました!
| オプション | デフォルト値 | 説明 |
|---|---|---|
clientId
|
null
|
使用する JMS クライアント ID を設定します。この値は、指定されている場合は一意である必要があり、単一の JMS 接続インスタンスでのみ使用できることに注意してください。通常、これは永続トピックサブスクリプションにのみ必要です。代わりに 仮想トピックを使用することも できます。 |
concurrentConsumers
|
1
|
同時コンシューマーのデフォルトの数を指定します。Camel 2.10.3 以降では、JMS でリクエスト/リプライを行うときにこのオプションを使用することもできます。スレッドの動的なスケールアップ/ダウンを制御するには、maxMessagesPerTask オプションも参照してください。
|
replyToConcurrentConsumers
|
1
|
Camel 2.16: JMS 上でリクエスト/リプライを行う際の同時コンシューマーのデフォルトの数を指定します。 |
disableReplyTo
|
false
|
true の場合、プロデューサーは JMSReplyTo ヘッダーが送信され、InOnly の場合のように抑制されない例外を持つ InOnly エクスチェンジのように動作します。InOnly と同様に、プロデューサーは応答を待ちません。このフラグを持つコンシューマーは InOnly のように動作します。この機能は、InOut 要求を別のキューにブリッジするために使用できます。これにより、他のキューのルートが応答を直接元の JMSReplyTo に送信することができます。
|
durableSubscriptionName
|
null
|
永続トピックサブスクリプションを指定するための永続サブスクライバー名。clientId オプションも設定 する必要があり ます。
|
maxConcurrentConsumers
|
1
|
同時コンシューマーの最大数を指定します。Camel 2.10.3 以降では、JMS でリクエスト/リプライを行うときにこのオプションを使用することもできます。スレッドの動的なスケールアップ/ダウンを制御するには、maxMessagesPerTask オプションも参照してください。スレッドをスケールダウンするには、maxMessagesPerTask オプションを 0 より大きい整数に設定する必要があります。そうしないと、スレッドの数はシャットダウンまで maxConcurrentConsumers に残ります。
|
replyToMaxConcurrentConsumers
|
1
|
Camel 2.16: JMS 上でリクエスト/リプライを行う際の同時コンシューマーの最大数を指定します。スレッドの動的なスケールアップ/ダウンを制御するオプションも参照してください。maxMessagesPerTask
|
maxMessagesPerTask
|
-1
|
タスクごとのメッセージ数。\-1 は無制限です。同時コンシューマーの範囲(例:min < max)を使用する場合は、このオプションを使用して値を 100 に設定し、必要な作業が少ない場合にコンシューマーを縮小する方法を制御できます。
|
preserveMessageQos
|
false
|
JMS エンドポイントの QoS 設定の代わりに、メッセージで指定された QoS 設定を使用してメッセージを送信する場合は true に設定します。以下の 3 つのヘッダーは JMSPriority、JMSDeliveryMode、および JMSExpiration とみなされます。提供できるのはすべてまたは一部のみです。指定のない場合は、Camel はフォールバックしてエンドポイントからの値を使用します。そのため、このオプションを使用すると、ヘッダーは エンドポイントからの値を上書きします。これとは対照的に、explicitQosEnabled オプションは、エンドポイントに設定されたオプションのみを使用し、メッセージヘッダーからの値は使用しません。
|
replyTo
|
null
|
明示的な ReplyTo 宛先を提供し ます。これは、Message.getJMSReplyTo ()の受信値を上書きします。JMS 経由で リクエスト応答 を行う場合は、以下の JMS でさらに Request-reply で確認して詳細を確認し、replyToType オプションも 必ず 読んでください。
|
replyToOverride
|
null
|
Camel 2.15: JMS メッセージの明示的な ReplyTo 宛先を提供します。これは replyTo の設定を上書きします。メッセージをリモートキューへ転送し、ReplyTo 宛先からリプライメッセージを受信する場合に便利です。 |
replyToType
|
null
|
Camel 2.9: JMS 上でリクエスト/リプライを行うときに、replyTo キューに使用するストラテジーを明示的に指定できます。使用できる値は、一時的な、共有、または 排他的 です。デフォルトでは、Camel は一時キューを使用します。ただし、replyTo が設定されている場合は、デフォルトで Shared が使用されます。このオプションを使用すると、共有キューの代わりに排他的キューを使用できます。詳細は、以下を参照してください。特に、クラスター環境で実行されたかどうかに関する注意点と、Shared 応答キューのパフォーマンスは、alternative Temporary および Exclusive よりも低いという事実を参照してください。
|
requestTimeout
|
20000
|
プロデューサーのみ: InOut Exchange Pattern (ミリ秒単位)を使用する場合の応答を待機するタイムアウト。デフォルトは 40 秒です。Camel 2.13/2.12.3 以降では、ヘッダー CamelJmsRequestTimeout を追加してこのエンドポイントが設定されたタイムアウト値を上書きし、メッセージごとに個別のタイムアウト値を設定できます。詳細は、About time to live のセクションを参照してください。requestTimeoutCheckerInterval オプションも参照してください。
|
selector
|
null
|
ブローカー内のメッセージのフィルターに使用される SQL 92 述語である JMS セレクターを設定します。Camel 2.3.0 よりも前のバージョンでは、= などの特殊文字をエンコードしないといけない場合があります。Camel ConsumerTemplate ではこのオプションをサポートしません。 |
timeToLive
|
null
|
メッセージを送信する場合は、メッセージの存続期間(ミリ秒単位)を指定します。詳細は、About time to live のセクションを参照してください。 |
transacted
|
false
|
InOnly Exchange Pattern を使用したメッセージの送受信にトランザクションモードを使用するかどうかを指定します。 |
testConnectionOnStartup
|
false
|
Camel 2.1: 起動時に接続をテストするかどうかを指定します。これにより、Camel が起動すると、すべての JMS コンシューマーが JMS ブローカーに有効な接続を持つようになります。接続を付与できない場合、Camel は起動時に例外を出力します。これにより、Camel が失敗したコネクションで開始されなくなります。Camel 2.8 以降では、JMS プロデューサーもテストされています。 |
その他のすべてのオプション リンクのコピーリンクがクリップボードにコピーされました!
| オプション | デフォルト値 | 説明 |
|---|---|---|
acceptMessagesWhileStopping
|
false
|
停止中にコンシューマーがメッセージを受け入れるかどうかを指定します。キューに送信されたメッセージは、実行時に JMS ルートを開始および停止する場合、このオプションを有効にすることを検討してください。このオプションが false で、JMS ルートを停止すると、メッセージが拒否され、JMS ブローカーは再配信を試行する必要がありますが、再度拒否され、最終的にメッセージは JMS ブローカーのデッドレターキューに移動される可能性があります。これを回避するには、このオプションを有効にすることが推奨されます。
|
acknowledgementModeName
|
AUTO_ACKNOWLEDGE
|
SESSION_TRANSACTED、CLIENT_ACKNOWLEDGE、AUTO_ACKNOWLEDGE、DUPS_OK_ACKNOWLEDGEのいずれかである JMS の確認名
|
acknowledgementMode
|
\-1
|
整数として定義される JMS 確認モード。ベンダー固有の拡張機能を確認モードに設定できます。通常のモードでは、代わりに acknowledgementModeName を使用することが推奨されます。
|
allowNullBody
|
true
|
Camel 2.9.3/2.10.1: ボディーのないメッセージの送信を許可するかどうか。このオプションが false でメッセージボディーが null の場合、JMSException が出力されます。
|
alwaysCopyMessage
|
false
|
true の場合、送信のためにプロデューサーに渡されるときに、Camel は常にメッセージの JMS メッセージコピーを作成します。replyToDestinationSelectorName が設定されている場合など、一部の状況でメッセージのコピーが必要になる場合(誤って Camel は replyToDestinationSelectorName が設定されている場合、Camel は alwaysCopyMessage オプションを true に設定します)
|
asyncConsumer
|
false
|
Camel 2.9: JmsConsumer が エクスチェンジ を 非同期的 に処理するかどうか。有効にすると、JmsConsumer は JMS キューから次のメッセージを選択し、以前のメッセージは非同期で処理されます( Asynchronous Routing Engine)。つまり、メッセージは 100% ではなく、順番に処理できます。無効(デフォルト)の場合、JmsConsumer が JMS キューから次のメッセージを取得する前に、エクスチェンジ は完全に処理されます。トランザクションが有効になっている場合は、トランザクションを同期的に実行する必要があるため、asyncConsumer=true は非同期的に実行しません(Camel 3.0 は非同期トランザクションをサポートする可能性があるため)。
|
asyncStartListener
|
false
|
Camel 2.10: ルートの開始時に JmsConsumer メッセージリスナーを非同期に起動するかどうか。たとえば、JmsConsumer がリモート JMS ブローカーへの接続を取得できない場合、再試行中やフェイルオーバー中にブロックされる可能性があります。これにより、ルートの開始時に Camel がブロックされます。このオプションを true に設定すると、ルートの起動を許可します。一方、JmsConsumer は非同期モードで専用のスレッドを使用して JMS ブローカーに接続します。このオプションを使用する場合は、接続を確立できない場合は例外が WARN レベルでログに記録され、コンシューマーはメッセージを受信できず、ルートを再起動して再試行できます。
|
asyncStopListener
|
false
|
Camel 2.10: ルートを停止するときに JmsConsumer メッセージリスナーを非同期に停止するかどうか。
|
autoStartup
|
true
|
コンシューマーコンテナーを自動起動させるかどうかを指定します。 |
cacheLevelName
|
CACHE_AUTO (Camel >= 2.8.0) CACHE_CONSUMER (Camel <= 2.7.1)
|
基礎となる JMS リソースの名前でキャッシュレベルを設定します。使用できる値は、CACHE_AUTO、CACHE_CONNECTION、CACHE_CONSUMER、CACHE_NONE、および CACHE_SESSION です。Camel 2.8 以降のデフォルト設定は CACHE_AUTO です。Camel 2.7.1 以前では、デフォルトは CACHE_CONSUMER です。詳細は、Spring のドキュメント および トランザクションキャッシュレベル を 参照してください。
|
cacheLevel
|
基礎となる JMS リソースの ID でキャッシュレベルを設定します。詳細は、cacheLevelName オプションを参照してください。
|
|
consumerType
|
デフォルト
|
使用するコンシューマータイプ。Simple、Default、または Custom のいずれかです。コンシューマータイプは、使用する Spring JMS リスナーを決定します。デフォルト では org.springframework.jms.listener.DefaultMessageListenerContainer を使用します。Simple は org.springframework.jms.listener.SimpleMessageListenerContainer を使用します。Custom が指定されている場合、messageListenerContainerFactoryRef オプションで定義される MessageListenerContainerFactory は、使用する org.springframework.jms.listener.AbstractMessageListenerContainer を決定します(Camel 2.11 および 2.10.2 の新しいオプション)。このオプションは、Camel 2.7 および 2.8 で一時的に削除されました。ただし、Camel 2.9 以降は再び追加されました。
|
connectionFactory
|
null
|
指定がない場合は、listenerConnectionFactory および templateConnectionFactory に使用するデフォルトの JMS 接続ファクトリー。
|
defaultTaskExecutorType
|
(説明を参照) |
Camel 2.10.4: プロデューサーエンドポイントのコンシューマーエンドポイントと ReplyTo コンシューマーの両方に対して、DefaultMessageListenerContainer で使用するデフォルトの TaskExecutor タイプを指定します。使用できる値: SimpleAsync (Spring の SimpleAsyncTaskExecutorを使用)または ThreadPool (最適な値で Spring の ThreadPoolTaskExecutor を使用)- キャッシュされた threadpool-like を使用します。設定されていない場合、デフォルトで以前の動作に設定されます。これはコンシューマーエンドポイントにキャッシュされたスレッドプールを使用し、応答コンシューマーに SimpleAsync を使用します。ThreadPool の使用は、同時コンシューマーを動的に増減することで、Elastic 設定でスレッドゴミ箱を減らすことが推奨されます。
|
deliveryMode
|
null
|
Camel 2.12.2/2.13: 使用する配信モードを指定します。Possibles 値は、
javax.jms.DeliveryMode で定義される値になります。
|
deliveryPersistent
|
true
|
永続的な配信がデフォルトで使用されるかどうかを指定します。 |
destination
|
null
|
このエンドポイントで使用する JMS Destination オブジェクトを指定します。 |
destinationName
|
null
|
このエンドポイントで使用する JMS 宛先名を指定します。 |
destinationResolver
|
null
|
独自のリゾルバーを使用できるプラグ可能な org.springframework.jms.support.destination.DestinationResolver。JNDI レジストリーで実際の宛先を検索するなど。
|
disableTimeToLive
|
false
|
camel 2.8: このオプションを使用して、時間のライブを無効にします。たとえば、JMS でリクエスト/リプライを行う場合、Camel はデフォルトで requestTimeout 値を送信されるメッセージに対して存続する時間として使用します。この問題は、送信者と受信者のシステムでクロックを同期して同期する必要があることです。これは必ずしも簡単にアーカイブできるとは限りません。そのため、disableTimeToLive=true を使用して、送信されたメッセージに time to live 値を設定でき ません。その後、メッセージは受信側システムで期限切れになりません。詳細は、About time to live のセクションを参照してください。
|
eagerLoadingOfProperties
|
false
|
JMS プロパティーが必要ないため、メッセージ受信直後に JMS プロパティーの Eager 読み込みを有効にします。ただし、この機能は基礎となる JMS プロバイダーの問題や JMS プロパティーの使用の初期段階でキャッチすることがあります。この機能はテスト目的でも使用でき、JMS プロパティーが正しく認識および処理されるようにします。 |
exceptionListener
|
null
|
基礎となる JMS 例外を通知する JMS 例外リスナーを指定します。 |
errorHandler
|
null
|
>Camel 2.8.2、2.9: メッセージの処理中に検出されない例外が発生した場合に org.springframework.util.ErrorHandler を呼び出し ます。デフォルトでは、errorHandler が設定されていない場合、これらの例外は WARN レベルでログに記録されます。Camel 2.9.1 以降、以下の 2 つのオプションを使用して、ロギングレベルおよびスタックトレースをログに記録するかどうかを設定できます。これにより、カスタム errorHandler をコーディングする必要がなく、設定が非常に簡単になります。
|
errorHandlerLoggingLevel
|
WARN
|
Camel 2.9.1: キャッチされない例外をログに記録するために、デフォルトの errorHandler ロギングレベルを設定できます。
|
errorHandlerLogStackTrace
|
true
|
Camel 2.9.1: デフォルトの errorHandler で、スタックトレースをログに記録するかどうかを制御できます。
|
explicitQosEnabled
|
false
|
メッセージの送信時に deliveryMode、priority、または timeToLive のサービス品質を使用する場合を設定します。このオプションは Spring の JmsTemplate に基づいています。deliveryMode オプション、priority オプション、および timeToLive オプションが現在のエンドポイントに適用されます。これは、メッセージ粒度で動作し、Camel In メッセージヘッダーからのみ QoS プロパティーを読み取る preserveMessageQos オプションとは対照的です。
|
exposeListenerSession
|
true
|
メッセージを消費するときにリスナーセッションを公開するかどうかを指定します。 |
forceSendOriginalMessage
|
false
|
>Camel 2.7: mapJmsMessage=false を使用すると、ルート中にヘッダー(取得または設定)にアクセスすると、Camel は新しい JMS 宛先に送信する新しい JMS メッセージを作成します。このオプションを true に設定すると、Camel は受信された元の JMS メッセージを送信するようにします。
|
idleTaskExecutionLimit
|
1
|
実行内でメッセージを受信せずに、受信タスクのアイドル実行の制限を指定します。この制限に達すると、タスクはシャットダウンし、他の実行中のタスクまで受信したままになります(動的スケジューリングの場合は、maxConcurrentConsumers の設定を参照してください)。
|
idleConsumerLimit
|
1
|
Camel 2.8.2、2.9: 指定した時間にアイドル状態にできるコンシューマーの数の制限を指定します。 |
includeSentJMSMessageID
|
false
|
Camel 2.10.3: InOnly (例:fire および forget)を使用して JMS 宛先に送信する場合にのみ適用されます。このオプションを有効にすると、メッセージが JMS 宛先に送信されたときに JMS クライアントによって使用される実際の JMSMessageID で Camel Exchange を補完します。 |
includeAllJMSXProperties
|
false
|
Camel 2.11.2/2.12: JMS から Camel Message にマッピングする際にすべての JMSXxxx プロパティーを含めるかどうか。これを true に設定すると、JMSXAppID や JMSXUserID などのプロパティーが含まれます。注記: カスタムの headerFilterStrategy を使用している場合、このオプションは適用されません。
|
jmsMessageType
|
null
|
JMS メッセージの送信に特定の javax.jms.Message 実装の使用を強制できます。使用できる値は、バイト、マップ、オブジェクト、ストリーム、テキストです。デフォルトでは、Camel は In ボディータイプから使用する JMS メッセージタイプを決定します。このオプションを使用すると指定できます。
|
jmsKeyFormatStrategy
|
default
|
JMS 仕様に準拠できるように、JMS キーをエンコードおよびデコードするためのプラグ可能な戦略。Camel は、追加設定なしで、default と passthrough の 2 つの実装を提供します。デフォルト のストラテジーは、ドットとハイフン(. および \-)を安全にマーシャリングします。パススルー ストラテジーは、キーをそのまま残します。JMS ヘッダーキーに不正な文字が含まれているかどうかは問題にならない JMS ブローカーに使用できます。org.apache.camel.component.jms.JmsKeyFormatStrategy の独自の実装を提供し、\# 表記を使用して参照できます。
|
jmsOperations
|
null
|
org.springframework.jms.core.JmsOperations インターフェイスの独自の実装を使用できます。Camel はデフォルトで JmsTemplate を使用します。テスト目的に使用できますが、Spring API ドキュメントに記載されているあまり使用されません。
|
lazyCreateTransactionManager
|
true
|
true の場合、オプション transacted=true 時に transactionManager が注入されない場合、Camel は JmsTransactionManager を作成します。
|
listenerConnectionFactory
|
null
|
メッセージの消費に使用される JMS 接続ファクトリー。 |
mapJmsMessage
|
true
|
Camel が受信した JMS メッセージを javax.jms.TextMessage などの適切なペイロードタイプに自動的にマップするかどうかを指定 し ます。詳細は、マッピングの仕組みについて以下のセクションを参照してください。
|
maximumBrowseSize
|
\-1
|
Browse または JMX API を使用してエンドポイントを参照する際に、最もフェッチされたメッセージの数を制限します。 |
messageConverter
|
null
|
カスタムの Spring org.springframework.jms.support.converter.MessageConverter を使用して、javax.jms.Message のマッピング方法や、javax.jms.Message からのマッピング方法を制御することができます。
|
messageIdEnabled
|
true
|
送信時に、メッセージ ID を追加するかどうかを指定します。 |
messageListenerContainerFactoryRef
|
null
|
Camel 2.10.2: メッセージの消費に使用する org.springframework.jms.listener.AbstractMessageListenerContainer を決定するために使用される MessageListenerContainerFactory のレジストリー ID。これを設定すると、consumerType が自動的に Custom に設定されます。
|
messageTimestampEnabled
|
true
|
メッセージの送信時にタイムスタンプをデフォルトで有効にするかどうかを指定します。 |
password
|
null
|
コネクターファクトリーのパスワード。 |
priority
|
4
|
1 より大きい値は、送信時のメッセージの優先度を指定します(0 は最も低い優先度で、9 は最も高い値です)。このオプションを有効にするには、explicitQosEnabled オプションも有効にする 必要 があります。
|
pubSubNoLocal
|
false
|
独自の接続によってパブリッシュされたメッセージの配信を禁止するかどうかを指定します。 |
receiveTimeout
|
1000
|
メッセージの受信のタイムアウト(ミリ秒単位)。 |
recoveryInterval
|
5000
|
リカバリーの試行の間隔を指定します。つまり、接続が更新されるタイミング(ミリ秒単位)を指定します。デフォルトは 5000 ミリ秒(5 秒)です。 |
replyToSameDestinationAllowed
|
false
|
Camel 2.16: コンシューマーのみ:JMS コンシューマーが消費に使用するのと同じ宛先にリプライメッセージを送信できるかどうか。これにより、同じメッセージを消費して自身に送信することで、無限ループを防ぐことができます。 |
replyToCacheLevelName
|
CACHE_CONSUMER
|
camel 2.9.1: JMS 上でリクエスト/リプライを行うときに応答コンシューマーの名前でキャッシュレベルを設定します。このオプションは、(一時的ではなく)Fixed reply queue を使用する場合にのみ適用されます。Camel はデフォルトで を使用します。排他的または共有 w/ replyToSelectorName に CACHE_CONSUMER を使用します。replyToSelectorName なしで共有される CACHE_SESSION。IBM WebSphere などの一部の JMS ブローカーは、replyToCacheLevelName=CACHE_NONE を設定して機能させる必要がある場合があります。
|
replyToDestinationSelectorName
|
null
|
固定名を使用して JMS セレクターを設定し、共有キューの使用時に(つまり一時的な応答キューを使用していない場合)、他の者からのリプライをフィルターリングできます。 |
replyToDeliveryPersistent
|
true
|
応答に永続配信をデフォルトで使用するかどうかを指定します。 |
requestTimeoutCheckerInterval
|
1000
|
Camel 2.9.2: JMS でリクエスト/リプライを行うときに Camel がタイムアウトした エクスチェンジをチェックする頻度を設定します。デフォルトの Camel は 1 秒あたり 1 回チェックします。ただし、タイムアウトの発生時に迅速な反応が必要な場合は、この間隔を下げてより頻繁にチェックできます。タイムアウトは、requestTimeout オプションによって決定されます。 |
subscriptionDurable
|
false
|
@非推奨: durableSubscriptionName および clientId を指定するとデフォルトで有効になります。
|
taskExecutor
|
null
|
メッセージを消費するためにカスタムタスクエグゼキューターを指定できます。 |
taskExecutorSpring2
|
null
|
Camel 2.6: Camel で Spring 2.x を使用する場合に使用する。メッセージを消費するためにカスタムタスクエグゼキューターを指定できます。 |
templateConnectionFactory
|
null
|
メッセージの送信に使用される JMS 接続ファクトリー。 |
transactedInOut
|
false
|
@非推奨: InOut Exchange パターン を使用してメッセージを送信するためにトランザクションモードを使用するかどうかを指定し ます。プロデューサーエンドポイントにのみ適用されます。詳細は 、Transacted Consumption の有効化 を 参照してください。 |
transactionManager
|
null
|
使用する Spring トランザクションマネージャー。 |
transactionName
|
"JmsConsumer[destinationName]"
|
使用するトランザクションの名前。 |
transactionTimeout
|
null
|
トランザクションモードを使用する場合のトランザクションのタイムアウト値(秒単位)。 |
transferException
|
false
|
有効にすると、リクエスト 応答メッセージング(InOut)を使用し、エクスチェンジ がコンシューマー側で失敗した場合、原因となった 例外 は応答として javax.jms.ObjectMessage として送り返されます。クライアントが Camel の場合、返される 例外が再出力 されます。これにより、Camel JMS をルーティングのブリッジとして使用できます。たとえば、永続キューを使用して堅牢なルーティングを有効にすることができます。transferExchange も有効にされている場合、このオプションは優先されることに注意してください。キャッチされた例外はシリアライズ可能である必要があります。コンシューマー側の元の例外は、プロデューサーに返されるときに org.apache.camel.RuntimeCamel などの外部例外でラップできます。
|
transferFault
|
false
|
Camel 2.17: が有効で、リクエスト応答メッセージング(InOut)を使用し、エクスチェンジがコンシューマー側で SOAP 障害(例外ではない)で失敗した場合、org.apache.camel.Message.isFault() の fault フラグは、キー JmsConstants.JMS_TRANSFER_FAULT を持つ JMS ヘッダーとして応答として送り返されます。クライアントが Camel の場合、返される fault フラグが org.apache.camel.Message.setFault(boolean) に設定されます。CXF や Spring-WS などの SOAP ベースをサポートする Camel コンポーネントを使用する場合は、これを有効にできます。
|
transferExchange
|
false
|
ボディーとヘッダーだけでなく、ネットワーク上でエクスチェンジを転送することができます。以下のフィールドは転送されます:ボディー、Out body、Fault ボディー、In headers、Out ヘッダー、Fault ヘッダー、エクスチェンジプロパティー、エクスチェンジ例外。これには、オブジェクトがシリアライズ可能である必要があります。Camel はシリアライズできないオブジェクトを除外し、WARN レベルでログに記録します。このオプションはプロデューサーとコンシューマーの両方で有効に する必要があり ます。したがって、Camel はペイロードが通常のペイロードではなく Exchange であることを認識します。
|
username
|
null
|
コネクターファクトリーのユーザー名。 |
useMessageIDAsCorrelationID
|
false
|
JMSMessageID を常に InOut メッセージの JMSCorrelationID として使用するかどうかを指定します。
|
useVersion102
|
false
|
@廃止予定(Camel 2.5 以降から削除): 古い JMS API を使用するかどうかを指定します。 |
サンプル リンクのコピーリンクがクリップボードにコピーされました!
JMS からの受信 リンクのコピーリンクがクリップボードにコピーされました!
from("jms:queue:foo").
to("bean:myBusinessLogic");
from("jms:queue:foo").
to("bean:myBusinessLogic");
from("jms:topic:OrdersTopic").
filter().method("myBean", "isGoldCustomer").
to("jms:queue:BigSpendersQueue");
from("jms:topic:OrdersTopic").
filter().method("myBean", "isGoldCustomer").
to("jms:queue:BigSpendersQueue");
JMS に送信する リンクのコピーリンクがクリップボードにコピーされました!
BytesMessage ではなく TextMessage としてファイルの内容が必要な場合は、ボディーを String に変換する必要があります。
from("file://orders").
convertBodyTo(String.class).
to("jms:topic:OrdersTopic");
from("file://orders").
convertBodyTo(String.class).
to("jms:topic:OrdersTopic");
アノテーションの使用 リンクのコピーリンクがクリップボードにコピーされました!
Spring DSL の例 リンクのコピーリンクがクリップボードにコピーされました!
その他のサンプル リンクのコピーリンクがクリップボードにコピーされました!
JMS と Camel 間のメッセージマッピング リンクのコピーリンクがクリップボードにコピーされました!
javax.jms.Message と org.apache.camel.Message の間でメッセージを自動的にマッピングします。
| ボディタイプ | JMS Message | Comment |
|---|---|---|
文字列
|
javax.jms.TextMessage
|
|
org.w3c.dom.Node
|
javax.jms.TextMessage
|
DOM は String に変換されます。
|
マップ
|
javax.jms.MapMessage
|
|
java.io.Serializable
|
javax.jms.ObjectMessage
|
|
byte[]
|
javax.jms.BytesMessage
|
|
java.io.File
|
javax.jms.BytesMessage
|
|
java.io.Reader
|
javax.jms.BytesMessage
|
|
java.io.InputStream
|
javax.jms.BytesMessage
|
|
java.nio.ByteBuffer
|
javax.jms.BytesMessage
|
| JMS Message | ボディタイプ |
|---|---|
javax.jms.TextMessage
|
文字列
|
javax.jms.BytesMessage
|
byte[]
|
javax.jms.MapMessage
|
Map<String, Object>
|
javax.jms.ObjectMessage
|
オブジェクト
|
JMS メッセージの自動マッピングの無効化 リンクのコピーリンクがクリップボードにコピーされました!
mapJmsMessage オプションを使用して、上記の自動マッピングを無効にすることができます。無効にすると、Camel は受信した JMS メッセージをマップせず、ペイロードとして直接使用します。これにより、マッピングのオーバーヘッドを回避し、Camel が JMS メッセージを通過させることができます。たとえば、クラスパス上に ない クラスで javax.jms.ObjectMessage JMS メッセージをルーティングすることもできます。
カスタム MessageConverter の使用 リンクのコピーリンクがクリップボードにコピーされました!
messageConverter オプションを使用して、Spring org.springframework.jms.support.converter.MessageConverter クラスでマッピングを実行できます。
from("file://inbox/order").to("jms:queue:order?messageConverter=#myMessageConverter");
from("file://inbox/order").to("jms:queue:order?messageConverter=#myMessageConverter");
選択したマッピングストラテジーの制御 リンクのコピーリンクがクリップボードにコピーされました!
javax.jms.TextMessage として送信します。これは、JMS プロデューサーエンドポイントがテキストメッセージを使用するように強制したためです。
from("file://inbox/order").to("jms:queue:order?jmsMessageType=Text");
from("file://inbox/order").to("jms:queue:order?jmsMessageType=Text");
CamelJmsMessageType キーを設定して、各メッシングに使用するメッセージタイプを指定することもできます。以下に例を示します。
from("file://inbox/order").setHeader("CamelJmsMessageType", JmsMessageType.Text).to("jms:queue:order");
from("file://inbox/order").setHeader("CamelJmsMessageType", JmsMessageType.Text).to("jms:queue:order");
enum クラス org.apache.camel.jms.JmsMessageType で定義されます。
送信時のメッセージ形式 リンクのコピーリンクがクリップボードにコピーされました!
exchange.in.header の場合、ヘッダー キー に以下のルールが適用されます。
JMSまたはJMSXで始まるキーは予約されています。exchange.in.headersキーはリテラルで、すべて有効な Java 識別子である必要があります(キー名にドットを使用しないでください)。- Camel は、JMS メッセージを消費するときにドットとハイフンと逆順を置き換えます。
.は\_DOT\_に置き換え、Camel がメッセージを消費するときに逆の置換を行います。\-は\_HYPHEN\_に置き換え、Camel がメッセージを消費するときに逆の置換を行います。 - 鍵のフォーマットに独自のカスタムストラテジーを使用できるオプション
jmsKeyFormatStrategyも併せて参照してください。
exchange.in.header の場合、以下のルールがヘッダー 値 に適用されます。
- 値はプリミティブまたはカウンターオブジェクト(
Integer、Long、Characterなど)である必要があります。型、String、CharSequence、Date、BigDecimal、およびBigIntegerはすべて、そのtoString ()表現に変換されます。その他のタイプはすべて破棄されます。
org.apache.camel.component.jms.JmsBinding でログに記録されます。以下に例を示します。
2008-07-09 06:43:04,046 [main ] DEBUG JmsBinding
- Ignoring non primitive header: order of class: org.apache.camel.component.jms.issues.DummyOrder with value: DummyOrder{orderId=333, itemId=4444, quantity=2}
2008-07-09 06:43:04,046 [main ] DEBUG JmsBinding
- Ignoring non primitive header: order of class: org.apache.camel.component.jms.issues.DummyOrder with value: DummyOrder{orderId=333, itemId=4444, quantity=2}
受信時のメッセージ形式 リンクのコピーリンクがクリップボードにコピーされました!
エクスチェンジ に追加します。
| プロパティー | タイプ | 説明 |
|---|---|---|
org.apache.camel.jms.replyDestination
|
javax.jms.Destination
|
応答先。 |
| ヘッダー | タイプ | 説明 |
|---|---|---|
JMSCorrelationID
|
文字列
|
JMS 相関 ID。 |
JMSDeliveryMode
|
int
|
JMS 配信モード。 |
JMSDestination
|
javax.jms.Destination
|
JMS 宛先。 |
JMSExpiration
|
long
|
JMS の有効期限。 |
JMSMessageID
|
文字列
|
JMS 一意のメッセージ ID。 |
JMSPriority
|
int
|
JMS の優先度(最も低い優先度は 0、最も高い優先順位が 9) |
JMSRedelivered
|
boolean
|
は、JMS メッセージ再配信です。 |
JMSReplyTo
|
javax.jms.Destination
|
JMS 応答から宛先。 |
JMSTimestamp
|
long
|
JMS タイムスタンプ。 |
JMSType
|
文字列
|
JMS タイプ。 |
JMSXGroupID
|
文字列
|
JMS グループ ID。 |
Camel を使用したメッセージおよび JMSReplyTo の送受信 リンクのコピーリンクがクリップボードにコピーされました!
JMSProducer を使用してメッセージを送信する場合、以下の条件をチェックします。
- メッセージ交換パターン
JMSReplyToがエンドポイントまたはメッセージヘッダーに設定されているかどうか。- 次のオプションが JMS エンドポイントに設定されているかどうか:
disableReplyTo、procaitMessageQos、explicitQos。
JmsProducer リンクのコピーリンクがクリップボードにコピーされました!
JmsProducer は設定に応じて以下のように動作します。
| 交換パターン | その他のオプション | 説明 |
|---|---|---|
| InOut | \- |
Camel は応答を想定し、一時的な JMSReplyTo を設定し、メッセージの送信後に一時キューでリプライメッセージをリッスンするようになります。
|
| InOut |
JMSReplyTo が設定されている
|
Camel は応答を想定し、メッセージの送信後に、指定された JMSReplyTo キューでリプライメッセージをリッスンし始めます。
|
| InOnly | \- | Camel はメッセージを送信し、応答を想定し ません。 |
| InOnly |
JMSReplyTo が設定されている
|
デフォルトでは、Camel は JMSReplyTo 宛先を破棄し、メッセージを送信する前に JMSReplyTo ヘッダーをクリアします。Camel はメッセージを送信し、応答を想定し ません。Camel はこれを WARN レベルでログに記録します( Camel 2.6 以降から DEBUG レベルに変更します)。preserveMessageQuo=true を使用して、JMSReplyTo を保持するよう Camel に指示することができます。すべての状況では、JmsProducer は応答を期待し ない ため、メッセージの送信後に続行します。
|
JmsConsumer リンクのコピーリンクがクリップボードにコピーされました!
JmsConsumer は設定に応じて以下のように動作します。
| 交換パターン | その他のオプション | 説明 |
|---|---|---|
| InOut | \- |
Camel は応答を JMSReplyTo キューに送信します。
|
| InOnly | \- | パターンが InOnly であるため、Camel は応答を返しません。 |
| \- |
disableReplyTo=true
|
このオプションは応答を抑制します。 |
InOnly メッセージを JMS トピックに送信する場合に便利です。
from("activemq:queue:in")
.to("bean:validateOrder")
.to(ExchangePattern.InOnly, "activemq:topic:order")
.to("bean:handleOrder");
from("activemq:queue:in")
.to("bean:validateOrder")
.to(ExchangePattern.InOnly, "activemq:topic:order")
.to("bean:handleOrder");
エンドポイントを再利用し、実行時に計算された異なる宛先に送信する リンクのコピーリンクがクリップボードにコピーされました!
| ヘッダー | タイプ | 説明 |
|---|---|---|
CamelJmsDestination
|
javax.jms.Destination
|
宛先オブジェクト。 |
CamelJmsDestinationName
|
文字列
|
宛先名。 |
from("file://inbox")
.to("bean:computeDestination")
.to("activemq:queue:dummy");
from("file://inbox")
.to("bean:computeDestination")
.to("activemq:queue:dummy");
dummy はプレースホルダーです。JMS エンドポイント URL の一部として提供される必要がありますが、この例では無視されます。
computeDestination Bean で、以下のように CamelJmsDestinationName ヘッダーを設定して実際の宛先を指定します。
public void setJmsHeader(Exchange exchange) {
String id = ....
exchange.getIn().setHeader("CamelJmsDestinationName", "order:" + id");
}
public void setJmsHeader(Exchange exchange) {
String id = ....
exchange.getIn().setHeader("CamelJmsDestinationName", "order:" + id");
}
id の値が 2 であると仮定して、activemq:queue:order:2 にメッセージを送信します。
CamelJmsDestination Name ヘッダーの両方が設定されている場合、CamelJmsDestination が優先されます。JMS プロデューサーは、エクスチェンジから CamelJmsDestination ヘッダーと CamelJmsDestinationName ヘッダーの両方を削除し、ルート内の誤ってループを回避するために作成された JMS メッセージに伝播しないことに注意してください(メッセージが別の JMS エンドポイントに転送されるシナリオ)。
異なる JMS プロバイダーの設定 リンクのコピーリンクがクリップボードにコピーされました!
id 属性を 使用して一意の名前を指定できます。上記の例では、activemq コンポーネントを設定します。MQSeries、TibCo、BEA、Sonic などを設定するのも同様です。
activemq の場合は、URI 形式 activemq:[queue:|topic:]destinationName を使用して宛先を参照できます。他のすべての JMS プロバイダーに同じ方法を使用できます。
JNDI を使用した ConnectionFactory の検索 リンクのコピーリンクがクリップボードにコピーされました!
bean > メカニズムを使用するのではなく、JNDI を検索して JMS ConnectionFactory を見つける必要がある場合があります。これは、Spring のファクトリー Bean または新しい Spring XML namespace を使用して実行できます。以下に例を示します。
同時消費 リンクのコピーリンクがクリップボードにコピーされました!
concurrentConsumers オプションを設定して、JMS エンドポイントを提供するスレッドの数を指定できます。
from("jms:SomeQueue?concurrentConsumers=20").
bean(MyClass.class);
from("jms:SomeQueue?concurrentConsumers=20").
bean(MyClass.class);
JmsComponentで以下を行います。- エンドポイント URI または
JmsEndpointでsetConcurrentConsumers ()を直接呼び出す。
非同期コンシューマーを使用した同時消費 リンクのコピーリンクがクリップボードにコピーされました!
asyncConsumer=true を設定すると、コンシューマーが JMS キューから次のメッセージをピックアップし、以前のメッセージが非同期的に処理されます( Asynchronous Routing Engine)。詳細は、asyncConsumer のページ上部にある表を参照してください。
from("jms:SomeQueue?concurrentConsumers=20&asyncConsumer=true").
bean(MyClass.class);
from("jms:SomeQueue?concurrentConsumers=20&asyncConsumer=true").
bean(MyClass.class);
JMS でのリクエスト応答 リンクのコピーリンクがクリップボードにコピーされました!
InOut である必要があります。
| オプション | パフォーマンス | Cluster | 説明 |
|---|---|---|---|
Temporary
|
高速 | はい |
一時キューは応答キューとして使用され、Camel によって自動作成されます。これを使用するには、replyTo キュー名を指定し ません。また、任意で replyToType=Temporary を設定して、一時キューが使用されていることを示すことができます。
|
共有
|
Slow | はい |
共有永続キューが応答キューとして使用されます。キューは事前に作成する必要がありますが、一部のブローカーは Apache ActiveMQ などのオンザフライで作成できます。これを使用するには、replyTo キュー名を指定する必要があります。また、オプションで replyToType=Shared を設定して、共有キューが使用されていることを示すことができます。共有キューは、この Camel アプリケーションを同時に実行する複数のノードを持つクラスター環境で使用できます。すべては同じ共有応答キューを使用します。これは、JMS メッセージセレクターが想定されるリプライメッセージの関連付けに使用されるため可能です。ただし、これはパフォーマンスに影響します。JMS メッセージセレクターは遅くなるため、Temporary または Exclusive キューほど高速ではありません。パフォーマンスを向上させるために、これを微調整する方法は、以下を参照してください。
|
排他的
|
高速 | いいえ |
排他的な永続キューは応答キューとして使用されます。キューは事前に作成する必要がありますが、一部のブローカーは Apache ActiveMQ などのオンザフライで作成できます。これを使用するには、replyTo キュー名を指定する必要があります。また、replyTo キュー名 が 設定されている場合は、Shared がデフォルトで使用されるため、Camel に対して排他的キューを使用するように replyToType=Exclusive を設定する必要があります。排他的な応答キューを使用する場合、JMS メッセージセレクターは使用され ない ため、他のアプリケーションはこのキューを使用しないでください。排他的キューは、この Camel アプリケーションが同時に実行しているクラスター環境で使用することは できません。応答キューが要求メッセージを送信したのと同じノードに戻るかどうかを制御することができないため、共有キューが JMS メッセージセレクターを使用してこれを確実に行うためです。各排他的応答キューをノードごとに一意の名前で設定している場合 は、クラスター環境でこれを実行できます。そのため、リプライメッセージは指定されたノードのそのキューに戻り、リプライメッセージを待機します。
|
concurrentConsumers
|
高速 | はい |
Camel 2.10.3: 使用中の同時メッセージリスナーを使用してメッセージを同時に処理できるようにします。concurrentConsumers および maxConcurrentConsumers オプションを使用して範囲を指定できます。注記: Shared 応答キューを使用すると、同時リスナーでは適切に機能しない可能性があるため、このオプションを注意して使用してください。
|
maxConcurrentConsumers
|
高速 | はい |
Camel 2.10.3: 使用中の同時メッセージリスナーを使用してメッセージを同時に処理できるようにします。concurrentConsumers および maxConcurrentConsumers オプションを使用して範囲を指定できます。注記: Shared 応答キューを使用すると、同時リスナーでは適切に機能しない可能性があるため、このオプションを注意して使用してください。
|
JmsProducer は InOut を検出し、使用される応答宛先を持つ JMSReplyTo ヘッダーを提供します。デフォルトでは、Camel は一時キューを使用しますが、エンドポイントで replyTo オプションを使用して、固定された応答キューを指定できます(以下の未指定の応答キューについて参照)。
DefaultMessageListenerContainer です。ただし、同時コンシューマー 1 つに固定されています。つまり、返信を処理するスレッドが 1 つしかないため、応答が順番に処理されます。応答をより迅速に処理する場合は、同時実行を使用する必要があります。ただし、concurrentConsumer オプション は使用しません。以下のルートに示されるように、代わりに Camel DSL からの スレッド を使用する必要があります。
from(xxx)
.inOut().to("activemq:queue:foo")
.threads(5)
.to(yyy)
.to(zzz);
from(xxx)
.inOut().to("activemq:queue:foo")
.threads(5)
.to(yyy)
.to(zzz);
concurrentConsumers オプションを使用します。詳細は以下を参照してください。
concurrentConsumers および maxConcurrentConsumers オプションを使用して、リスナーが同時スレッドを使用するように設定できます。これにより、以下のように Camel でこの設定を簡単に設定できます。
from(xxx)
.inOut().to("activemq:queue:foo?concurrentConsumers=5")
.to(yyy)
.to(zzz);
from(xxx)
.inOut().to("activemq:queue:foo?concurrentConsumers=5")
.to(yyy)
.to(zzz);
JMS のリクエスト応答と排他的な固定応答キューの使用 リンクのコピーリンクがクリップボードにコピーされました!
JMSSelector を使用して想定するリプライメッセージのみを消費します。ただし、JMS selectos が遅くなるため、これを行う欠点があります。また、応答キューのコンシューマーは、新しい JMS セレクター ID での更新に時間がかかります。実際、receiveTimeout オプションがタイムアウトした場合にのみ更新されます。デフォルトは 1 秒です。そのため、理論的にはリプライメッセージの検出に約 1 秒かかる可能性があります。一方、固定応答キューが Camel 応答コンシューマーに排他的である場合は、JMS セレクターを使用しないようにすることができます。実際、一時キューを使用するほど高速です。そのため、Camel 2.9 以降では、以下の例のように応答キューが排他的であることを Camel に指示するために設定できる ReplyToType オプションが導入されました。
from(xxx)
.inOut().to("activemq:queue:foo?replyTo=bar&replyToType=Exclusive")
.to(yyy)
from(xxx)
.inOut().to("activemq:queue:foo?replyTo=bar&replyToType=Exclusive")
.to(yyy)
送信側と受信側のクロックの同期 リンクのコピーリンクがクリップボードにコピーされました!
存続期間 リンクのコピーリンクがクリップボードにコピーされました!
requestTimeout オプションのデフォルト 20 秒です。より高い/小さい値を設定することで、これを制御できます。ただし、ライブタイムは、送信する JMS メッセージに引き続き設定されます。では、がシステム間でクロックを同期する必要があります。設定されていない場合、ライブ値を設定する時間を無効にすることができます。これは、Camel 2.8 以降から disableTimeToLive オプションを使用して実行できるようになりました。そのため、このオプションを disableTimeToLive=true に設定すると、Camel は JMS メッセージの送信時に存続時間を設定し ません。ただし、 リクエストのタイムアウトはアクティブな状態です。たとえば、JMS でリクエスト/リプライをライブで行なっても、Camel は引き続きタイムアウトを 20 秒( requestTimeout オプション)使用します。当然ながら、このオプションを設定することもできます。そのため、requestTimeout と disableTimeToLive の 2 つのオプションにより、リクエスト/リプライを行うときに詳細な制御が可能になります。
from("direct:someWhere")
.to("jms:queue:foo?replyTo=bar&requestTimeout=30s")
.to("bean:processReply");
from("direct:someWhere")
.to("jms:queue:foo?replyTo=bar&requestTimeout=30s")
.to("bean:processReply");
requestTimeout を 30 秒に設定したエンドポイントがあります。そのため、Camel は、その応答メッセージがバーキューに戻るまで 30 秒待機します。リプライメッセージが受信されない場合、エクスチェンジ に org.apache.camel.ExchangeTimedOutException が設定され、Camel はメッセージのルーティングを続行します。これは例外によって失敗し、Camel のエラーハンドラーが反応します。
"CamelJmsRequestTimeout" のキー org.apache.camel.component.jms.JmsConstants#JMS_REQUEST_TIMEOUT でヘッダーを設定し、タイムアウト値を long 型に設定します。
whatIsTheTimeout メソッドを呼び出すなど、個別のメッセージごとにタイムアウト値を計算することができます。
from("direct:someWhere")
.setHeader("CamelJmsRequestTimeout", method(ServiceBean.class, "whatIsTheTimeout"))
.to("jms:queue:foo?replyTo=bar&requestTimeout=30s")
.to("bean:processReply");
from("direct:someWhere")
.setHeader("CamelJmsRequestTimeout", method(ServiceBean.class, "whatIsTheTimeout"))
.to("jms:queue:foo?replyTo=bar&requestTimeout=30s")
.to("bean:processReply");
timeToLive オプションを使用して値を設定できます。たとえば、5 秒を指定するには、timeToLive=5000 を設定します。disableTimeToLive オプションを使用して、InOnly メッセージングでも存続時間を強制的に無効にすることができます。requestTimeout オプションは、InOnly メッセージングには使用されません。
Transacted Consumption の有効化 リンクのコピーリンクがクリップボードにコピーされました!
transacted= trueTransactionManager= Transsaction Manager \- 通常はJmsTransactionManager
transacted= truelazyCreateTransactionManager= false
応答の遅れに JMSReplyTo を使用する リンクのコピーリンクがクリップボードにコピーされました!
ReplyTo を持つ ReplyTo javax.jms.Destination オブジェクトの値で Exchange プロパティーを設定します。この 宛先 は、以下のように取得できます。
Destination replyDestination = exchange.getIn().getHeader(JmsConstants.JMS_REPLY_DESTINATION, Destination.class);
Destination replyDestination = exchange.getIn().getHeader(JmsConstants.JMS_REPLY_DESTINATION, Destination.class);
// we need to pass in the JMS component, and in this sample we use ActiveMQ JmsEndpoint endpoint = JmsEndpoint.newInstance(replyDestination, activeMQComponent); // now we have the endpoint we can use regular Camel API to send a message to it template.sendBody(endpoint, "Here is the late reply.");
// we need to pass in the JMS component, and in this sample we use ActiveMQ
JmsEndpoint endpoint = JmsEndpoint.newInstance(replyDestination, activeMQComponent);
// now we have the endpoint we can use regular Camel API to send a message to it
template.sendBody(endpoint, "Here is the late reply.");
replyDestination オブジェクトを提供することです。その後、Camel はこのプロパティーを取得し、実際の宛先に使用します。ただし、エンドポイント URI にはダミーの宛先が含まれている必要があります。以下に例を示します。
リクエストタイムアウトの使用 リンクのコピーリンクがクリップボードにコピーされました!
requestBody method = InOutを使用)を Camel でさらに処理するために低速なキューに送り、返信応答を待ちます。http://camel.apache.org/request-reply.html
// send a in-out with a timeout for 5 sec
Object out = template.requestBody("activemq:queue:slow?requestTimeout=5000", "Hello World");
// send a in-out with a timeout for 5 sec
Object out = template.requestBody("activemq:queue:slow?requestTimeout=5000", "Hello World");
JMS をエクスチェンジを保存する Dead Letter Queue として使用 リンクのコピーリンクがクリップボードにコピーされました!
org.apache.camel.impl.DefaultExchangeHolder を保持する javax.jms.ObjectMessage として エクスチェンジ 全体をキューに保存するよう Camel に指示することができます。これにより、Dead Letter Queue から消費でき、キー Exchange.EXCEPTION_CAUGHT を使用してエクスチェンジプロパティーから例外を取得できます。以下のデモでは、以下のようになります。
// setup error handler to use JMS as queue and store the entire Exchange
errorHandler(deadLetterChannel("jms:queue:dead?transferExchange=true"));
// setup error handler to use JMS as queue and store the entire Exchange
errorHandler(deadLetterChannel("jms:queue:dead?transferExchange=true"));
JMS を Dead Letter Channel 保存エラーとしてのみ使用 リンクのコピーリンクがクリップボードにコピーされました!
// we sent it to a seda dead queue first
errorHandler(deadLetterChannel("seda:dead"));
// and on the seda dead queue we can do the custom transformation before its sent to the JMS queue
from("seda:dead").transform(exceptionMessage()).to("jms:queue:dead");
// we sent it to a seda dead queue first
errorHandler(deadLetterChannel("seda:dead"));
// and on the seda dead queue we can do the custom transformation before its sent to the JMS queue
from("seda:dead").transform(exceptionMessage()).to("jms:queue:dead");
InOnly メッセージの送信および JMSReplyTo ヘッダーの維持 リンクのコピーリンクがクリップボードにコピーされました!
preserveMessageQos=true を使用して、JMSReplyTo ヘッダーを保持するよう Camel に指示することに注意してください。
宛先での JMS プロバイダーオプションの設定 リンクのコピーリンクがクリップボードにコピーされました!
...
.setHeader("CamelJmsDestinationName", constant("queue:///MY_QUEUE?targetClient=1"))
.to("wmq:queue:MY_QUEUE?useMessageIDAsCorrelationID=true");
...
.setHeader("CamelJmsDestinationName", constant("queue:///MY_QUEUE?targetClient=1"))
.to("wmq:queue:MY_QUEUE?useMessageIDAsCorrelationID=true");
com.ibm.msg.client.jms.DetailedJMSException: JMSCC0005: 指定された値 'MY_QUEUE?targetClient=1' is not allowed for 'XMSC_DESTINATION_NAME'
関連項目 リンクのコピーリンクがクリップボードにコピーされました!
第85章 JMX リンクのコピーリンクがクリップボードにコピーされました!
JMX コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
Notification オブジェクトを直接渡すか、このプロジェクトで提供されるスキーマに従って XML にシリアライズすることをサポートします。これはコンシューマーのみのコンポーネントです。プロデューサーの作成を試みると、例外が発生します。
Camel on EAP デプロイメント リンクのコピーリンクがクリップボードにコピーされました!
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
jmx://platform?options
jmx://platform?options
jmx: スキーム接頭辞の後に以下のように指定できます。
jmx:service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi?options
jmx:service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi?options
?option=value&option=value&.. の形式を使用します。
URI オプション リンクのコピーリンクがクリップボードにコピーされました!
| プロパティー | 必須 | デフォルト | 説明 |
|---|---|---|---|
format
|
xml
|
メッセージのボディーの形式。xml または raw のいずれか。xml の場合、通知は XML にシリアライズされます。raw の場合、raw java オブジェクトはボディーとして設定されます。
|
|
password
|
リモート接続を確立するための認証情報。 | ||
objectDomain
|
はい | 接続している MBean のドメイン。 | |
objectName
|
接続している MBean の name キー。キーのリストのこのプロパティーのいずれかを指定する必要があります(ただし両方ではありません)。詳細は、「ObjectName コンストラクト」 を参照してください。 | ||
notificationFilter
|
NotificationFilter インターフェイスを実装する Bean への参照。#beanID 構文は、レジストリー内の Bean を参照するために使用されます。
|
||
handback
|
通知の受信時にリスナーに渡す値。この値は jmx.handback メッセージヘッダーに配置されます。
|
||
testConnectionOnStartup
|
true
|
*Camel 2.11* true の場合、起動時に JMX 接続を確立できない場合にコンシューマーは例外を出力します。false の場合、コンシューマーは接続が確立されるまで x 秒ごとに JMX 接続を確立しようとします。ここで、x は設定された reconnectDelay です。 | |
reconnectOnConnectionFailure
|
false
|
*Camel 2.11* true の場合、接続障害が発生したときにコンシューマーは JMX サーバーへの再接続を試みます。コンシューマーは接続が確立されるまで x 秒ごとに JMX 接続を再確立しようとします。x は設定された reconnectDelay に置き換えます。 | |
reconnectDelay
|
10
|
*Camel 2.11* 初期接続の作成を再試行する前、または失われた接続を再接続するまで待機する秒数。 |
ObjectName コンストラクト リンクのコピーリンクがクリップボードにコピーされました!
objectDomain プロパティーが必要です。さらに、URI には objectName または key で始まる 1 つ以上のプロパティーが含まれている必要があります。
Name プロパティーの Domain リンクのコピーリンクがクリップボードにコピーされました!
objectName プロパティーが指定されると、以下のコンストラクターを使用して MBean の ObjectName インスタンスを構築します。
ObjectName(String domain, String key, String value)
ObjectName(String domain, String key, String value)
key の値は name で、値は objectName プロパティーの値になります。
Hashtable のあるドメイン リンクのコピーリンクがクリップボードにコピーされました!
ObjectName(String domain, Hashtable<String,String> table)
ObjectName(String domain, Hashtable<String,String> table)
Hashtable は、key で始まるプロパティーを抽出することで構築されます。プロパティーには、Hashtable をビルドする前に、key 接頭辞が取り除かれます。これにより、URI に変数番号が含まれるプロパティーが含まれ、MBean を識別できるようになります。
例 リンクのコピーリンクがクリップボードにコピーされました!
from("jmx:platform?objectDomain=jmxExample&key.name=simpleBean").
to("log:jmxEvent");
from("jmx:platform?objectDomain=jmxExample&key.name=simpleBean").
to("log:jmxEvent");
完全な例 リンクのコピーリンクがクリップボードにコピーされました!
examples/camel-example-jmx ディレクトリーにあります。
Monitor Type Consumer リンクのコピーリンクがクリップボードにコピーされました!
例 リンクのコピーリンクがクリップボードにコピーされました!
from("jmx:platform?objectDomain=myDomain&objectName=simpleBean&" +
"monitorType=counter&observedAttribute=MonitorNumber&initThreshold=1&" +
"granularityPeriod=500").to("mock:sink");
from("jmx:platform?objectDomain=myDomain&objectName=simpleBean&" +
"monitorType=counter&observedAttribute=MonitorNumber&initThreshold=1&" +
"granularityPeriod=500").to("mock:sink");
MonitorNumber 属性を監視するローカルの mbean サーバーに置かれます。simpleBeanモニター Bean とオプションの追加タイプを以下に示します。新たにデプロイされたモニター Bean は、コンシューマーが停止すると自動的にアンデプロイされます。
モニタータイプの URI オプション リンクのコピーリンクがクリップボードにコピーされました!
| プロパティー | type | 適用先 | description |
|---|---|---|---|
monitorType
|
enum
|
all | カウンターの 1 つ(guage、string) |
observedAttribute
|
string
|
all | 観察される属性 |
granularityPeriod
|
long
|
all | 監視される属性の粒度(ミリ秒単位)。JMX によると、デフォルトは 10 秒です。 |
initThreshold
|
number
|
counter | 初期しきい値 |
offset
|
number
|
counter | オフセット値 |
modulus
|
number
|
counter | modulus 値 |
differenceMode
|
boolean
|
counter、gage | 違いを報告する必要がある場合は true、実際の値の場合は false |
notifyHigh
|
boolean
|
ゲージ | 高通知のオン/オフスイッチ |
notifyLow
|
boolean
|
ゲージ | 通知の低/オフスイッチ |
highThreshold
|
number
|
ゲージ | レポートが高い通知のしきい値 |
lowThreshold
|
number
|
ゲージ | 低い notificaton レポートのしきい値 |
notifyDiffer
|
boolean
|
string | 文字列が異なる場合に通知を発生させる場合は true |
notifyMatch
|
boolean
|
string | true: 文字列が一致するときに通知を実行する |
stringToCompare
|
string
|
string | 属性値と比較する文字列 |
第86章 Jolt リンクのコピーリンクがクリップボードにコピーされました!
JOLT コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
pom.xml に追加する必要があります。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
jolt:specName[?options]
jolt:specName[?options]
specName は、呼び出す仕様のクラスパスローカル URI、またはリモート仕様の完全な URL (例:file://folder/myfile.json)です。
?option=value&option=value&...
オプション リンクのコピーリンクがクリップボードにコピーされました!
|
オプション
|
デフォルト
|
説明
|
|---|---|---|
allowContextMapAll (producer)
|
false
|
コンテキストマップが前詳細へのアクセスを許可するかどうかを設定します。デフォルトでは、メッセージの本文とヘッダーにのみアクセスできます。このオプションは、現在の Exchange および CamelContext へのフルアクセスに対して有効にできます。これを行うと、CamelContext API の全機能へのアクセスが開かれるため、潜在的なセキュリティーリスクが発生します。
|
allowTemplateFromHeader (producer)
|
false
|
ヘッダーのリソーステンプレートの使用を許可するかどうか (デフォルトは false)。このオプションを有効にすると、セキュリティーの問題があります。たとえば、ヘッダーに信頼されていないコンテンツやユーザー派生コンテンツが含まれている場合、これは最終的にエンドアプリケーションの信頼性および完全性に影響を与える可能性があるため、このオプションは注意して使用してください。
|
contentCache
|
true
|
ロード時のリソースコンテンツのキャッシュ。注記:Camel 2.9 のキャッシュされたリソースコンテンツは、エンドポイントの
clearContentCache 操作を使用して JMX 経由でクリアできます。
|
outputType
|
Hydrated
|
変換の出力を、List または Maps、または JSON を含む String オブジェクトとして Hydrated に設定します。
|
inputType
|
Hydrated
|
変換の入力を List または Maps、または JSON を含む String オブジェクトとして Hydrated に設定します。
|
transformDsl
|
Chainr
|
提供された仕様の読み込みに使用する 変換 DSL。利用可能な値 Chainr、Shiftr、Defaultr、Removr、および Sortr。
|
動的仕様 リンクのコピーリンクがクリップボードにコピーされました!
|
ヘッダー
|
タイプ
|
説明
|
|---|---|---|
|
CamelJoltResourceUri
|
文字列
|
設定されたエンドポイントの代わりに使用する仕様リソースの URI。
|
サンプル リンクのコピーリンクがクリップボードにコピーされました!
from("activemq:My.Queue").
to("jolt:com/acme/MyResponse.json");
from("activemq:My.Queue").
to("jolt:com/acme/MyResponse.json");
from("activemq:My.Queue").
to("jolt:file://myfolder/MyResponse.json?contentCache=true").
to("activemq:Another.Queue");
from("activemq:My.Queue").
to("jolt:file://myfolder/MyResponse.json?contentCache=true").
to("activemq:Another.Queue");
from("direct:in").
setHeader("CamelJoltResourceUri").constant("path/to/my/spec.json").
to("jolt:dummy?allowTemplateFromHeader=true");
from("direct:in").
setHeader("CamelJoltResourceUri").constant("path/to/my/spec.json").
to("jolt:dummy?allowTemplateFromHeader=true");
allowTemplateFromHeader オプションを有効にすると、セキュリティーの問題があります。たとえば、ヘッダーに信頼できないコンテンツまたはユーザー派生コンテンツが含まれる場合、これは最終的に、エンドアプリケーションの確実性と整合性に及ぼす可能性があるため、このオプションを使用してください。
第87章 JPA リンクのコピーリンクがクリップボードにコピーされました!
JPA コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
Camel on EAP デプロイメント リンクのコピーリンクがクリップボードにコピーされました!
エンドポイントへの送信 リンクのコピーリンクがクリップボードにコピーされました!
entityType=java.util.ArrayList をプロデューサーエンドポイントに渡される設定として使用するようにしてください。
エンドポイントからの消費 リンクのコピーリンクがクリップボードにコピーされました!
consumeDelete=false を指定できます。これにより、エンティティーはポーリングごとに処理されます。
@PreConsumed を使用できます。これは、(ルーティングの前に)処理される前にエンティティー Bean で呼び出されます。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
jpa:entityClassName[?options]
jpa:entityClassName[?options]
?option=value&option=value&.. の形式で追加できます。
オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | デフォルト値 | 説明 |
|---|---|---|
entityType
|
entityClassName | URI から entityClassName を上書きします。 |
persistenceUnit
|
camel
|
デフォルトで使用される JPA 永続ユニット。 |
consumeDelete
|
true
|
JPA コンシューマーのみ: true の場合、エンティティーは消費後に削除されます。false の場合、エンティティーは削除されません。
|
consumeLockEntity
|
true
|
JPA consumer only: ポーリングによる結果の処理中に、各エンティティー Bean に排他ロックを設定するかどうかを指定します。 |
flushOnSend
|
true
|
JPA プロデューサーのみ: エンティティー Bean が永続化された後に EntityManager をフラッシュします。 |
maximumResults
|
-1
|
JPA コンシューマーのみ: クエリーで取得する結果の最大数を設定し ます。 |
transactionManager
|
null
|
このオプションはレジストリーベースであり、指定された transactionManager を正しく検索できるように # 表記が必要です(例: transactionManager=#myTransactionManager使用するトランザクションマネージャーを指定します。指定のない場合、Apache Camel はデフォルトで JpaTransactionManager を使用します。JTA トランザクションマネージャーの設定に使用できます(EJB コンテナーとの統合)。
|
consumer.delay
|
500
|
JPA コンシューマーのみ: 各ポーリング間の遅延(ミリ秒単位)。 |
consumer.initialDelay
|
1000
|
JPA コンシューマーのみ: ポーリングの開始前の Milliseconds。 |
consumer.useFixedDelay
|
false
|
JPA コンシューマーのみ: true に設定すると、ポーリング間の固定遅延が使用されます。それ以外の場合は、固定レートが使用されます。詳細は、JDK の ScheduledExecutorService を参照してください。
|
maxMessagesPerPoll
|
0
|
Apache Camel 2.0:JPA コンシューマーのみ: ポーリングごとに収集するメッセージの最大数を定義する整数値。デフォルトでは最大値は設定されていません。サーバーの起動時に多数のメッセージをポーリングしないようにするために使用できます。無効にするには 0 または負の値を設定します。 |
consumer.query
|
JPA コンシューマーのみ: データを消費するときにカスタムクエリーを使用します。 | |
consumer.namedQuery
|
JPA コンシューマーのみ: データを消費する場合に名前付きクエリーを使用するには、以下を実行します。 | |
consumer.nativeQuery
|
JPA コンシューマーのみ: データを消費するときにカスタムネイティブクエリーを使用するには、以下を実行します。 | |
consumer.parameters
|
Camel 2.12: JPA コンシューマーのみ: クエリーの構築に使用されるパラメーターマップ。パラメーターは Map のインスタンスで、キーは String で、値は Object です。これは一般的なタイプ java.util.Map<String, Object> であることが期待されます。ここで、キーは指定の JPA クエリーの名前付きパラメーターで、値は選択する対応する有効な値です。
|
|
consumer.resultClass
|
Camel 2.7: JPA consumer only: 返されたペイロードのタイプを定義します( entityManager.createNativeQuery (nativeQuery, resultClass) は entityManager.createNativeQuery (nativeQuery))。このオプションを指定しないと、オブジェクトアレイが返されます。データを消費するときにネイティブクエリーと併用する場合にのみ影響があります。
|
|
consumer.transacted
|
false
|
Camel 2.7.5/2.8.3/2.9: JPA コンシューマーのみ: トランザクションモードでコンシューマーを実行するかどうか。これにより、バッチ全体が処理されたときに、すべてのメッセージがコミットまたはロールバックされます。デフォルトの動作(false)は、以前に処理されたすべてのメッセージをコミットし、最後に失敗したメッセージのみをロールバックすることです。 |
consumer.lockModeType
|
WRITE
|
Camel 2.11.2/2.12: コンシューマーにロックモードを設定するには、以下を行います。使用できる値は enum javax.persistence.LockModeType で定義されます。Camel 2.13 以降、デフォルト値は PESSIMISTIC_WRITE に変更されてい ます。
|
consumer.SkipLockedEntity
|
false
|
Camel 2.13: ロック時に NOWAIT を使用し、エンティティーをサイレントにスキップするかどうかを設定します。
|
usePersist
|
false
|
Camel 2.5: JPA producer only: entityManager.merge (entity) の代わりに entityManager.persist (entity) を使用することを示します。注記: entityManager.persist (entity) は分離されたエンティティーに対して機能しません(EntityManager は INSERT クエリーの代わりに UPDATE を実行する必要があります)。
|
joinTransaction
|
true
|
Camel 2.12.3: camel-jpa は、Camel 2.12 以降からデフォルトでトランザクションに参加します。このオプションを使用してこれをオフにすることができます。たとえば、
LOCAL_RESOURCE を使用し、トランザクションが JPA プロバイダーでは機能しません。このオプションは、すべてのエンドポイントに設定する代わりに、JpaComponent でグローバルに設定することもできます。
|
usePassedInEntityManager
|
false
|
Camel 2.12.4/2.13.1: JPA producer only。
true の場合、Camel はコンポーネント/エンドポイントで設定されたエンティティーマネージャーではなく、ヘッダー JpaConstants.ENTITYMANAGER からの EntityManager を使用します。これにより、エンドユーザーは、使用するエンティティーマネージャーを制御できます。
|
sharedEntityManager
|
false
|
Camel 2.16: コンシューマー/プロデューサーに Spring の
SharedEntityManager を使用するかどうか。エンティティーマネージャーを共有し、トランザクションの組み合わせが適切ではないため、このオプションが true の場合は、joinTransaction=false を設定することが推奨されます。
|
メッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| ヘッダー | タイプ | 説明 |
|---|---|---|
CamelEntityManager
|
EntityManager
|
Camel 2.12: JPA consumer / Camel 2.12.2: JPA producer: JpaConsumer または JpaProducer によって使用される JPA EntityManager オブジェクト。 |
EntityManagerFactory の設定 リンクのコピーリンクがクリップボードにコピーされました!
EntityManagerFactory インスタンスを使用するように JPA コンポーネントを設定することを強く推奨します。これを行わないと、各 JpaEndpoint は独自の EntityManagerFactory インスタンスを自動作成します。たとえば、以下のように myEMFactory エンティティーマネージャーファクトリーを参照する JPA コンポーネントをインスタンス化できます。
<bean id="jpa" class="org.apache.camel.component.jpa.JpaComponent"> <property name="entityManagerFactory" ref="myEMFactory"/> </bean>
<bean id="jpa" class="org.apache.camel.component.jpa.JpaComponent">
<property name="entityManagerFactory" ref="myEMFactory"/>
</bean>
JpaComponent はレジストリーから EntityManagerFactory を自動的に検索します。つまり、上記のように JpaComponent でこれを設定する必要はありません。あいまいさがある場合にのみこれを実行する必要があります。この場合、Camel は WARN をログに記録します。
TransactionManager の設定 リンクのコピーリンクがクリップボードにコピーされました!
JpaComponent はレジストリーから TransactionManager を自動的に検索します。Camel が登録された TransactionManager インスタンスが見つからない場合は、TransactionTemplate を検索し、そこから TransactionManager の抽出を試みます。レジストリーで利用可能な TransactionTemplate がない場合、JpaEndpoint は TransactionManager の独自のインスタンスを自動作成します。
TransactionManager の複数のインスタンスが見つかった場合、Camel は WARN メッセージをログに記録します。このような場合は、以下のように myTransactionManager トランザクションマネージャーを参照する JPA コンポーネントをインスタンス化して明示的に設定する必要がある場合があります。
<bean id="jpa" class="org.apache.camel.component.jpa.JpaComponent"> <property name="entityManagerFactory" ref="myEMFactory"/> <property name="transactionManager" ref="myTransactionManager"/> </bean>
<bean id="jpa" class="org.apache.camel.component.jpa.JpaComponent">
<property name="entityManagerFactory" ref="myEMFactory"/>
<property name="transactionManager" ref="myTransactionManager"/>
</bean>
名前付きクエリーでのコンシューマーの使用 リンクのコピーリンクがクリップボードにコピーされました!
consumer.namedQuery URI クエリーオプションを使用できます。まず、JPA Entity クラスで名前付きクエリーを定義する必要があります。
@Entity
@NamedQuery(name = "step1", query = "select x from MultiSteps x where x.step = 1")
public class MultiSteps {
...
}
@Entity
@NamedQuery(name = "step1", query = "select x from MultiSteps x where x.step = 1")
public class MultiSteps {
...
}
from("jpa://org.apache.camel.examples.MultiSteps?consumer.namedQuery=step1")
.to("bean:myBusinessLogic");
from("jpa://org.apache.camel.examples.MultiSteps?consumer.namedQuery=step1")
.to("bean:myBusinessLogic");
クエリーでのコンシューマーの使用 リンクのコピーリンクがクリップボードにコピーされました!
consumer.query URI クエリーオプションを使用できます。クエリーオプションを定義するだけで済みます。
from("jpa://org.apache.camel.examples.MultiSteps?consumer.query=select o from org.apache.camel.examples.MultiSteps o where o.step = 1")
.to("bean:myBusinessLogic");
from("jpa://org.apache.camel.examples.MultiSteps?consumer.query=select o from org.apache.camel.examples.MultiSteps o where o.step = 1")
.to("bean:myBusinessLogic");
ネイティブクエリーでのコンシューマーの使用 リンクのコピーリンクがクリップボードにコピーされました!
consumer.nativeQuery URI クエリーオプションを使用できます。ネイティブクエリーオプションを定義するだけで済みます。
from("jpa://org.apache.camel.examples.MultiSteps?consumer.nativeQuery=select * from MultiSteps where step = 1")
.to("bean:myBusinessLogic");
from("jpa://org.apache.camel.examples.MultiSteps?consumer.nativeQuery=select * from MultiSteps where step = 1")
.to("bean:myBusinessLogic");
例 リンクのコピーリンクがクリップボードにコピーされました!
JPA ベースのべき等リポジトリーの使用 リンクのコピーリンクがクリップボードにコピーされました!
persistence-unit を設定する必要があります。
org.apache.camel.processor.idempotent.jpa.JpaMessageIdRepository によって使用される org.springframework.orm.jpa.JpaTemplate を設定する必要があります。
org.apache.camel.processor.idempotent.jpa.JpaMessageIdRepository を設定できます。
第88章 jsch リンクのコピーリンクがクリップボードにコピーされました!
jsch リンクのコピーリンクがクリップボードにコピーされました!
pom.xml に以下の依存関係を追加する必要があります。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
scp://host[:port]/destination[?options]
scp://host[:port]/destination[?options]
?option=value&option=value&.. の形式で追加できます。
Exchange.FILE_NAME )。
オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 説明 | 例 | デフォルト値 |
|---|---|---|---|
username
|
リモートファイルシステムへのログインに使用するユーザー名を指定します。 |
null
|
|
password
|
リモートファイルシステムへのログインに使用するパスワードを指定します。 |
null
|
|
knownHostsFile
|
scp エンドポイントがホストキーの検証を実行できるように known_hosts ファイルを設定します。
|
null
|
|
strictHostKeyChecking
|
厳密なホストキーチェックを使用するかどうかを設定します。使用できる値は no、yesです。
|
いいえ
|
|
chmod
|
保存されたファイルに chmod を設定できます。たとえば、chmod=664 です。
|
null
|
|
useUserKnownHostsFile
|
Camel 2.15: knownHostFile が明示的に設定されていない場合は、System.getProperty("user.home") + "/.ssh/known_hosts" からのホストファイルを使用します。
|
true
|
コンポーネントのオプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 説明 | デフォルト値 |
|---|---|---|
verboseLogging
|
Camel 2.15: JSCH は、追加設定なしで詳細なロギングです。したがって、デフォルトで DEBUG ロギングまでロギングを下げます。
|
true
|
制限事項 リンクのコピーリンクがクリップボードにコピーされました!
camel-jsch は Producer (つまり、ファイルを別のホストにコピーする)のみをサポートします。
第89章 JT400 リンクのコピーリンクがクリップボードにコピーされました!
JT/400 コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
jt400 コンポーネントを使用すると、データキューを使用して AS/400 システムでメッセージを交換できます。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
jt400://user:password@system/QSYS.LIB/LIBRARY.LIB/QUEUE.DTAQ[?options]
jt400://user:password@system/QSYS.LIB/LIBRARY.LIB/QUEUE.DTAQ[?options]
jt400://user:password@system/QSYS.LIB/LIBRARY.LIB/program.PGM[?options]
jt400://user:password@system/QSYS.LIB/LIBRARY.LIB/program.PGM[?options]
?option=value&option=value&.. の形式で追加できます。
URI オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | デフォルト値 | 説明 |
|---|---|---|
ccsid
|
Default system CCSID | AS/400 システムとの接続に使用する CCSID を指定します。 |
format
|
text
|
有効なオプションを送信するためのデータ形式を指定します。text ( Stringで表現)および バイナリー ( byte[]で表されます)です。
|
consumer.delay
|
500
|
各ポーリングの遅延(ミリ秒単位)。 |
consumer.initialDelay
|
1000
|
ポーリングが開始するまでの時間(ミリ秒単位)。 |
consumer.userFixedDelay
|
false
|
true: ポーリング間の固定遅延を使用します。そうでない場合は、固定レートが使用されます。詳細は、JDK の ScheduledExecutorService を参照してください。
|
guiAvailable
|
false
|
Camel 2.8: Camel を実行している環境で AS/400 プロンプトが有効かどうかを指定します。 |
キー付き
|
false
|
*Camel 2.10:* キー化されたデータキューまたはキー以外のデータキューを使用するかどうか。 |
searchKey
|
null
|
*Camel 2.10:* キーで主要なデータキューのキーを検索します。 |
searchType
|
EQ
|
*Camel 2.10:* EQ、NE、LT、LE、GT、または GE の値である検索タイプ。
|
connectionPool
|
AS400ConnectionPool インスタンス
|
*Camel 2.10:* レジストリーの com.ibm.as400.access.AS400ConnectionPool インスタンスへの参照。これは、AS/400 システムへの接続を取得するために使用されます。検索表記法('#' 文字)を使用する必要があります。 |
secured
|
false
|
Camel 2.16: AS/400 への SSL 接続を使用するかどうか。 |
| 名前 | デフォルト値 | 説明 |
|---|---|---|
outputFieldsIdx
|
出力パラメーターであるフィールド(プログラムパラメーター)を指定します。 | |
fieldsLength
|
フィールド(プログラムパラメーター)の長さを AS/400 プログラム定義で指定します。 | |
format
|
text
|
*Camel 2.10:* メッセージを送信するためのデータ形式を指定します: text ( 文字列で表される)および バイナリー ( byte[]で表されます)
|
guiAvailable
|
false
|
*Camel 2.8:* Camel を実行している環境で AS/400 プロンプトが有効かどうかを指定します。 |
connectionPool
|
AS400ConnectionPool インスタンス
|
*Camel 2.10:* レジストリーの com.ibm.as400.access.AS400ConnectionPool インスタンスへの参照。これは、AS/400 システムへの接続を取得するために使用されます。検索表記法('#' 文字)を使用する必要があります。 |
使用方法 リンクのコピーリンクがクリップボードにコピーされました!
エクスチェンジ が送信され、String または byte[] に分類されます。プロバイダーエンドポイントの場合、In メッセージボディーの内容は raw バイトまたはテキストとしてデータキューに配置されます。
接続プール リンクのコピーリンクがクリップボードにコピーされました!
リモートプログラム呼び出し(Camel 2.7) リンクのコピーリンクがクリップボードにコピーされました!
String 配列または byte[] 配列を返します(入力のみのパラメーターのみのパラメーターには、呼び出しの最初のデータと同じデータが含まれます)。このエンドポイントはプロバイダーエンドポイントを実装しません。
例 リンクのコピーリンクがクリップボードにコピーされました!
direct:george エンドポイントに送信されたエクスチェンジのデータは、LIVERPOOL という名前のシステムのライブラリー BEATLES のデータキュー PENNYLANE に配置されます。別のユーザーは同じデータキューに接続してデータキューから情報を受け取り、これを mock:ringo エンドポイントに転送します。
リモートプログラム呼び出しの例(Camel 2.7) リンクのコピーリンクがクリップボードにコピーされました!
キーデータキューへの書き込み リンクのコピーリンクがクリップボードにコピーされました!
from("jms:queue:input")
.to("jt400://username:password@system/lib.lib/MSGINDQ.DTAQ?keyed=true");
from("jms:queue:input")
.to("jt400://username:password@system/lib.lib/MSGINDQ.DTAQ?keyed=true");
キーデータキューからの読み取り リンクのコピーリンクがクリップボードにコピーされました!
from("jt400://username:password@system/lib.lib/MSGOUTDQ.DTAQ?keyed=true&searchKey=MYKEY&searchType=GE")
.to("jms:queue:output");
from("jt400://username:password@system/lib.lib/MSGOUTDQ.DTAQ?keyed=true&searchKey=MYKEY&searchType=GE")
.to("jms:queue:output");
第90章 Kafka リンクのコピーリンクがクリップボードにコピーされました!
Kafka コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
pom.xml に追加する必要があります。
<dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala-library</artifactId>
<version>2.10.4</version>
</dependency>
<dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala-library</artifactId>
<version>2.10.4</version>
</dependency>
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
kafka:server:port[?options]
kafka:server:port[?options]
オプション リンクのコピーリンクがクリップボードにコピーされました!
|
プロパティー
|
デフォルト
|
説明
|
|---|---|---|
zookeeperHost
|
|
使用する zookeeper ホスト
|
zookeeperPort
|
2181
|
使用する zookeeper ポート
|
zookeeperConnect
|
Camel 2.13.3/2.14.1: 使用している場合は、zookeeperHost/zookeeperPort は使用されません。 | |
topic
|
|
使用するトピック
|
groupId
|
||
partitioner
|
||
consumerStreams
|
10 | |
clientId
|
||
zookeeperSessionTimeoutMs
|
||
zookeeperConnectionTimeoutMs
|
||
zookeeperSyncTimeMs
|
||
consumersCount
|
1
|
Camel 2.15.0: Kafka サーバーに接続するコンシューマーの数。 |
batchSize
|
100
|
Camel 2.15.0: BatchingConsumerTask が 1 度処理する batchSize。
|
barrierAwaitTimeoutMs
|
10000
|
Camel 2.15.0: BatchingConsumerTask のエクスチェンジが batchSize を超える場合は、barrierAwaitTimeoutMs まで待機します。
|
bridgeEndpoint
|
false
|
Camel 2.16.0: bridgeEndpoint が true の場合、プロデューサーはメッセージのトピックヘッダー設定を無視します。
|
?option=value&option=value&...
プロデューサーオプション リンクのコピーリンクがクリップボードにコピーされました!
|
プロパティー
|
デフォルト
|
説明
|
|---|---|---|
producerType
|
sync
|
以下の値を使用できます。
|
compressionCodec
|
||
compressedTopics
|
||
messageSendMaxRetries
|
||
retryBackoffMs
|
||
topicMetadataRefreshIntervalMs
|
||
sendBufferBytes
|
||
requestRequiredAcks
|
||
requestTimeoutMs
|
||
queueBufferingMaxMs
|
||
queueBufferingMaxMessages
|
||
queueEnqueueTimeoutMs
|
||
batchNumMessages
|
||
serializerClass
|
||
keySerializerClass
|
コンシューマーオプション リンクのコピーリンクがクリップボードにコピーされました!
|
プロパティー
|
デフォルト
|
説明
|
|---|---|---|
consumerId
|
|
|
socketTimeoutMs
|
||
socketReceiveBufferBytes
|
||
fetchMessageMaxBytes
|
||
autoCommitEnable
|
||
autoCommitIntervalMs
|
||
queuedMaxMessages
|
||
rebalanceMaxRetries
|
||
fetchMinBytes
|
||
fetchWaitMaxMs
|
||
rebalanceBackoffMs
|
||
refreshLeaderBackoffMs
|
||
autoOffsetReset
|
||
consumerTimeoutMs
|
サンプル リンクのコピーリンクがクリップボードにコピーされました!
from("kafka:localhost:9092?topic=test&zookeeperHost=localhost&zookeeperPort=2181&groupId=group1").to("log:input");
from("kafka:localhost:9092?topic=test&zookeeperHost=localhost&zookeeperPort=2181&groupId=group1").to("log:input");
エンドポイント リンクのコピーリンクがクリップボードにコピーされました!
- createProducer () は、メッセージエクスチェンジをエンドポイントに送信するために Producer を作成します。
- createPollingConsumer () は、PollingConsumer経由でエンドポイントからメッセージエクスチェンジを消費するために Polling Consumer パターンを実装します。
関連項目 リンクのコピーリンクがクリップボードにコピーされました!
第91章 Kestrel リンクのコピーリンクがクリップボードにコピーされました!
Kestrel コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
kestrel://[addresslist/]queuename[?options]
kestrel://[addresslist/]queuename[?options]
host:port ペアが含まれる場合があります。たとえば、kserver01:22133 のキュー foo に接続するには、以下を使用します。
kestrel://kserver01:22133/foo
kestrel://kserver01:22133/foo
localhost:22133 が想定されます。つまり、以下のようになります。
kestrel://foo
kestrel://foo
host:port ペアからポートを省略すると、デフォルトのポート 22133 が想定されます。以下に例を示します。
kestrel://kserver01/foo
kestrel://kserver01/foo
kestrel://kserver01:22133,kserver02:22133,kserver03:22133/massive
kestrel://kserver01:22133,kserver02:22133,kserver03:22133/massive
kestrel://kserver03:22133/massive?concurrentConsumers=25&waitTimeMs=500
kestrel://kserver03:22133/massive?concurrentConsumers=25&waitTimeMs=500
オプション リンクのコピーリンクがクリップボードにコピーされました!
?parameters の部分でプロパティーを指定します。省略された ?parameters はデフォルトで KestrelComponent のベース KestrelelConfiguration で設定される内容に設定されます。以下のプロパティーは KestrelConfiguration や各エンドポイントに設定できます。
| オプション | デフォルト値 | 説明 |
|---|---|---|
concurrentConsumers
|
1
|
同時コンシューマースレッドの数を指定します。 |
waitTimeMs
|
100
|
/t=... を指定します。GET リクエストで Kestrel に渡される待機時間を指定します。
|
/t=... 指定子は GET 要求時にサーバーに渡され ません。キューが空の場合、GET 呼び出しは値なしで即座に返します。ポーリングフェーズで "tight looping" が発生しないように、このコンポーネントは、GET リクエストから何も返されない場合は常に Thread.sleep (100 )を実行します(何も返されない場合のみ)。waitTimeMs に 正の値以外の値を設定することを強く推奨 します。
Spring XML を使用した Kestrel コンポーネントの設定 リンクのコピーリンクがクリップボードにコピーされました!
localhost:22133、100ms の待機時間、および同時でないコンシューマー 1 つを使用します。
?properties が指定されていないエンドポイントに設定を提供する)を使用するには、以下のように KestrelConfiguration POJO を設定します。
使用例 リンクのコピーリンクがクリップボードにコピーされました!
例 1: 消費 リンクのコピーリンクがクリップボードにコピーされました!
from("kestrel://kserver02:22133/massive?concurrentConsumers=10&waitTimeMs=500")
.bean("myConsumer", "onMessage");
from("kestrel://kserver02:22133/massive?concurrentConsumers=10&waitTimeMs=500")
.bean("myConsumer", "onMessage");
例 2: 生成 リンクのコピーリンクがクリップボードにコピーされました!
例 3: Spring XML 設定 リンクのコピーリンクがクリップボードにコピーされました!
Dependencies リンクのコピーリンクがクリップボードにコピーされました!
Spymemcached2.5 (以上)
spymemcached リンクのコピーリンクがクリップボードにコピーされました!
spymemcached jar が 必要 です。以下は、pom.xml で使用できるスニペットです。
/t=... エクステンションが含まれる場合に spymemcached には既知の問題があります(例:エンドポイント URI で waitTimeMs オプションを使用している場合は、強く推奨されます)。
enableAssertions を false に設定する必要がある場合があります。詳細は、surefire:test を参照 してください。
第92章 Krati リンクのコピーリンクがクリップボードにコピーされました!
Krati コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
pom.xml に以下の依存関係を追加する必要があります。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
krati:[the path of the datastore][?options]
krati:[the path of the datastore][?options]
?option=value&option=value&.. の形式で追加できます。
Krati URI オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | デフォルト値 | 説明 |
|---|---|---|
operation
|
CamelKratiPut | プロデューサーのみデータストアに対して実行される操作のタイプを指定します。許可される値は CamelKratiPut、CamelKratiGet、CamelKratiDelete、および CamelKratiDeleteAll です。 |
initialCapacity
|
100 | ストアの inital capcity。 |
keySerializer
|
KratiDefaultSerializer | キーのシリアライズに使用されるシリアライザーシリアライザー。 |
valueSerializer
|
KratiDefaultSerializer | 値をシリアライズするために使用されるシリアライザーシリアライザー。 |
segmentFactory
|
ChannelSegmentFactory | 使用するセグメントファクトリー。許可されるインスタンスクラス:ChannelSegmentFactory、MemorySegmentFactory、MappedSegmentFactory および WriteBufferSegmentFactory。 |
hashFunction
|
FnvHashFunction | 使用するハッシュ関数。許可されるインスタンスクラス:FnvHashFunction,Fnv1Hash32,FnvHash64,Fnv1aHash32,Fnv1aHash64, JenkisHashFunction, MurmurHashFunctiom |
maxMessagesPerPoll
|
Camel 2.10.5/2.11.1: 1 回のポーリングで受信できるメッセージの最大数。これを使用して、大量のデータの読み取りを回避し、メモリーを過剰に消費することができます。 |
データストアのメッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| ヘッダー | 説明 |
|---|---|
CamelKratiOperation
|
データストアで実行される操作。有効なオプションは です。
|
CamelKratiKey
|
キー。 |
CamelKratiValue
|
値。 |
使用例 リンクのコピーリンクがクリップボードにコピーされました!
例 1: データストアへの配置。 リンクのコピーリンクがクリップボードにコピーされました!
from("direct:put").to("krati:target/test/producertest");
from("direct:put").to("krati:target/test/producertest");
<route>
<from uri="direct:put"/>
<to uri="krati:target/test/producerspringtest"/>
</route>
<route>
<from uri="direct:put"/>
<to uri="krati:target/test/producerspringtest"/>
</route>
例 2: データストアの取得/読み取り リンクのコピーリンクがクリップボードにコピーされました!
from("direct:get")
.setHeader(KratiConstants.KRATI_OPERATION, constant(KratiConstants.KRATI_OPERATION_GET))
.to("krati:target/test/producertest");
from("direct:get")
.setHeader(KratiConstants.KRATI_OPERATION, constant(KratiConstants.KRATI_OPERATION_GET))
.to("krati:target/test/producertest");
<route>
<from uri="direct:get"/>
<to uri="krati:target/test/producerspringtest?operation=CamelKratiGet"/>
</route>
<route>
<from uri="direct:get"/>
<to uri="krati:target/test/producerspringtest?operation=CamelKratiGet"/>
</route>
例 3: データストアの使用 リンクのコピーリンクがクリップボードにコピーされました!
from("krati:target/test/consumertest")
.to("direct:next");
from("krati:target/test/consumertest")
.to("direct:next");
<route>
<from uri="krati:target/test/consumerspringtest"/>
<to uri="mock:results"/>
</route>
<route>
<from uri="krati:target/test/consumerspringtest"/>
<to uri="mock:results"/>
</route>
Idempotent リポジトリー リンクのコピーリンクがクリップボードにコピーされました!
from("direct://in").idempotentConsumer(header("messageId"), new KratiIdempotentRepositroy("/tmp/idempotent").to("log://out");
from("direct://in").idempotentConsumer(header("messageId"), new KratiIdempotentRepositroy("/tmp/idempotent").to("log://out");
その他の参考資料 リンクのコピーリンクがクリップボードにコピーされました!
第93章 Kubernetes リンクのコピーリンクがクリップボードにコピーされました!
Kubernetes コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
pom.xml に追加する必要があります。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
kubernetes:masterUrl[?options]
kubernetes:masterUrl[?options]
?option=value&option=value&...
オプション リンクのコピーリンクがクリップボードにコピーされました!
|
名前
|
デフォルト値
|
説明
|
|---|---|---|
masterUrl
|
null
|
必須: Kubernetes マスター URL
|
category
|
必須: プロデューサー/コンシューマーのカテゴリー。可能な値:
namespaces, services, replicationControllers, pods, ----------|-----, NORMAL, --------|-----, NORMAL, --------|-----, NORMAL, persistentVolumes persistentVolumesClaims secrets resourcesQuota serviceAccounts nodes builds buildConfigs
|
|
username
|
|
Kubernetes クラスターにログインするためのユーザー名
|
password
|
|
Kubernetes クラスターにログインするためのパスワード
|
operation
|
|
プロデューサーのみ: プロデューサーが実行する操作。以下の値を使用できます。
listNamespaces, listNamespacesByLabels, getNamespace, createNamespace, deleteNamespace, listServices, listServicesByLabels, getService, createService, deleteService, listReplicationControllers, listReplicationControllersByLabels, getReplicationController, createReplicationController, deleteReplicationController, listPods, listPodsByLabels, getPod, createPod, deletePod, listPersistentVolumes, listPersistentVolumesByLabels, getPersistentVolume, listPersistentVolumesClaims, listPersistentVolumesClaimsByLabels, getPersistentVolumeClaim, createPersistentVolumeClaim, deletePersistentVolumeClaim, listSecrets, listSecretsByLabels, getSecret, createSecret, deleteSecret, listResourcesQuota, listResourcesQuotaByLabels, getResourceQuota, createResourceQuota, deleteResourceQuota, listServiceAccounts, listServiceAccountsByLabels, getServiceAccount, createServiceAccount, deleteServiceAccount, listNodes, listNodesByLabels, getNode, listBuilds, listBuildsByLabels, getBuild, listBuildConfigs, listBuildConfigsByLabels, getBuildConfig
|
apiVersion
|
|
使用する API バージョン
|
caCertFile
|
|
CA 証明書ファイルへのパス
|
caCertData
|
|
CA 証明書データへのパス
|
clientCertFile
|
|
クライアント証明書ファイルへのパス
|
clientCertData
|
|
クライアント証明書データへのパス
|
clientKeyAlgo
|
|
クライアントが使用する鍵アルゴリズム
|
clientKeyFile
|
|
クライアントキーファイルへのパス
|
clientKeyData
|
|
クライアントキーデータへのパス
|
clientKeyPassphrase
|
|
クライアント鍵のパスフレーズ
|
oauthToken
|
|
認証トークン
|
trustCerts
|
|
証明書がデフォルトで信頼されるかどうかを定義します。
|
namespaceName
|
|
コンシューマーのみ: コンシューマーが監視する namespace
|
poolSize
|
|
コンシューマーのみ: Kubernetes コンシューマーの Threadpool サイズ
|
Headers リンクのコピーリンクがクリップボードにコピーされました!
|
名前
|
タイプ
|
説明
|
|---|---|---|
|
CamelKubernetesOperation
|
String
|
Producer 操作
|
|
CamelKubernetesNamespaceName
|
文字列
|
namespace 名
|
|
CamelKubernetesNamespaceLabels
|
マップ
|
namespace ラベル
|
|
CamelKubernetesServiceLabels
|
マップ
|
サービスラベル
|
|
CamelKubernetesServiceName
|
文字列
|
サービス名
|
|
CamelKubernetesServiceSpec
|
io.fabric8.kubernetes.api.model.ServiceSpec
|
サービスの仕様
|
|
CamelKubernetesReplicationControllersLabels
|
マップ
|
レプリケーションコントローラーラベル
|
|
CamelKubernetesReplicationControllerName
|
文字列
|
レプリケーションコントローラー名
|
|
CamelKubernetesReplicationControllerSpec
|
io.fabric8.kubernetes.api.model.ReplicationControllerSpec
|
レプリケーションコントローラーの仕様
|
|
CamelKubernetesPodsLabels
|
マップ
|
Pod のラベル
|
|
CamelKubernetesPodName
|
文字列
|
Pod の名前
|
|
CamelKubernetesPodSpec
|
io.fabric8.kubernetes.api.model.PodSpec
|
Pod の仕様
|
|
CamelKubernetesPersistentVolumesLabels
|
マップ
|
永続ボリュームのラベル
|
|
CamelKubernetesPersistentVolumesName
|
文字列
|
永続ボリューム名
|
|
CamelKubernetesPersistentVolumesClaimsLabels
|
マップ
|
Persistent Volume Claim (永続ボリューム要求、PVC)ラベル
|
|
CamelKubernetesPersistentVolumesClaimsName
|
文字列
|
永続ボリューム要求 (PVC) の名前
|
|
CamelKubernetesPersistentVolumesClaimsSpec
|
io.fabric8.kubernetes.api.model.PersistentVolumeClaimSpec
|
Persistent Volume Claim (永続ボリューム要求、PVC)の仕様
|
|
CamelKubernetesSecretsLabels
|
マップ
|
シークレットラベル
|
|
CamelKubernetesSecretsName
|
文字列
|
Secret 名
|
|
CamelKubernetesSecret
|
io.fabric8.kubernetes.api.model.Secret
|
Secret オブジェクト
|
|
CamelKubernetesResourcesQuotaLabels
|
マップ
|
リソースクォータのラベル
|
|
CamelKubernetesResourcesQuotaName
|
文字列
|
リソースクォータ名
|
|
CamelKubernetesResourceQuotaSpec
|
io.fabric8.kubernetes.api.model.ResourceQuotaSpec
|
リソースクォータの仕様
|
|
CamelKubernetesServiceAccountsLabels
|
マップ
|
サービスアカウントラベル
|
|
CamelKubernetesServiceAccountName
|
文字列
|
サービスアカウント名
|
|
CamelKubernetesServiceAccount
|
io.fabric8.kubernetes.api.model.ServiceAccount
|
Service Account オブジェクト
|
|
CamelKubernetesNodesLabels
|
マップ
|
ノードラベル
|
|
CamelKubernetesNodeName
|
String
|
ノード名
|
|
CamelKubernetesBuildsLabels
|
Map
|
OpenShift ビルドラベル
|
|
CamelKubernetesBuildName
|
String
|
OpenShift ビルド名
|
|
CamelKubernetesBuildConfigsLabels
|
Map
|
OpenShift ビルド設定ラベル
|
|
CamelKubernetesBuildConfigName
|
文字列
|
OpenShift ビルド設定名
|
|
CamelKubernetesEventAction
|
io.fabric8.kubernetes.client.Watcher.Action
|
コンシューマーによって監視されるアクション
|
|
CamelKubernetesEventTimestamp
|
文字列
|
コンシューマーによって監視されるアクションのタイムスタンプ
|
第94章 Kura リンクのコピーリンクがクリップボードにコピーされました!
Kura コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
KuraRouter activator リンクのコピーリンクがクリップボードにコピーされました!
org.apache.camel.kura.KuraRouter クラスを含む OSGi バンドルを作成することです。
KuraRouter は org.osgi.framework.BundleActivator インターフェイスを実装しているため、Kura バンドルコンポーネントクラス start および stop のライフサイクルメソッドを登録する必要があります。
CamelContext を起動します。これは、KuraRouter を拡張するすべてのクラスに対して、専用の CamelContext インスタンスがあることを意味します。理想的には、OSGi バンドルごとに KuraRouter をデプロイすることが推奨されます。
KuraRouter のデプロイ リンクのコピーリンクがクリップボードにコピーされました!
Import-Package: org.osgi.framework;version="1.3.0", org.slf4j;version="1.6.4", org.apache.camel,org.apache.camel.impl,org.apache.camel.core.osgi,org.apache.camel.builder,org.apache.camel.model, org.apache.camel.component.kura
Import-Package: org.osgi.framework;version="1.3.0",
org.slf4j;version="1.6.4",
org.apache.camel,org.apache.camel.impl,org.apache.camel.core.osgi,org.apache.camel.builder,org.apache.camel.model,
org.apache.camel.component.kura
install file:///home/user/.m2/repository/org/apache/camel/camel-stream/2.15.0/camel-stream-2.15.0.jar start <camel-stream-bundle-id>
install file:///home/user/.m2/repository/org/apache/camel/camel-stream/2.15.0/camel-stream-2.15.0.jar
start <camel-stream-bundle-id>
install file:///home/user/.m2/repository/com/example/myrouter/1.0/myrouter-1.0.jar start <your-bundle-id>
install file:///home/user/.m2/repository/com/example/myrouter/1.0/myrouter-1.0.jar
start <your-bundle-id>
KuraRouter ユーティリティー リンクのコピーリンクがクリップボードにコピーされました!
SLF4J ロガー リンクのコピーリンクがクリップボードにコピーされました!
log は、指定の Kura ルーターに関連付けられた SLF4J ロガーインスタンスを返します。
BundleContext リンクのコピーリンクがクリップボードにコピーされました!
bundleContext は、指定の Kura ルーターに関連付けられたバンドルコンテキストを返します。
CamelContext リンクのコピーリンクがクリップボードにコピーされました!
camelContext は、指定の Kura ルーターに関連付けられた CamelContext です。
ProducerTemplate リンクのコピーリンクがクリップボードにコピーされました!
producerTemplate は、指定の Camel コンテキストに関連付けられた ProducerTemplate インスタンスです。
ConsumerTemplate リンクのコピーリンクがクリップボードにコピーされました!
consumerTemplate は、指定の Camel コンテキストに関連付けられた ConsumerTemplate インスタンスです。
OSGi サービスリゾルバー リンクのコピーリンクがクリップボードにコピーされました!
service(Class<T> serviceType))を使用して、OSGi バンドルコンテキストからタイプでサービスを簡単に取得できます。
null 値が返されます。サービスが利用できない場合にアプリケーションが失敗する場合は、代わりに requiredService(Class) メソッドを使用します。サービスが見つからない場合、requiredService は IllegalStateException を出力します。
KuraRouter アクティベーターコールバック リンクのコピーリンクがクリップボードにコピーされました!
CamelContext インスタンスを設定するには、KuraRouter クラスの beforeStart メソッドを上書きします。
ConfigurationAdmin からの XML ルートの読み込み リンクのコピーリンクがクリップボードにコピーされました!
KuraRouter が OSGi ConfigurationAdmin を使用して、kura.camel PID から kura.camel.BUNDLE-SYMBOLIC-NAME.route プロパティーを検索します。この方法では、デプロイされた KuraRouter ごとに Camel XML ルートファイルを定義できます。ルートを更新するには、適切な設定プロパティーを編集し、関連するバンドルを再起動するだけです。kura.camel.BUNDLE-SYMBOLIC-NAME.route プロパティーの内容は、Camel XML ルートファイルになります。以下に例を示します。
宣言型 OSGi サービスとして Kura ルーターをデプロイする リンクのコピーリンクがクリップボードにコピーされました!
KuraRouter で提供される activate および deactivate メソッドを使用できます。
<scr:component name="org.eclipse.kura.example.camel.MyKuraRouter" activate="activate" deactivate="deactivate" enabled="true" immediate="true"> <implementation class="org.eclipse.kura.example.camel.MyKuraRouter"/> </scr:component>
<scr:component name="org.eclipse.kura.example.camel.MyKuraRouter" activate="activate" deactivate="deactivate" enabled="true" immediate="true">
<implementation class="org.eclipse.kura.example.camel.MyKuraRouter"/>
</scr:component>
第95章 言語 リンクのコピーリンクがクリップボードにコピーされました!
言語 リンクのコピーリンクがクリップボードにコピーされました!
言語 エンドポイントにメッセージを送信することができます。
camel-core の追加設定なしで提供されるため、追加の JAR は必要ありません。Groovy や JavaScript 言語の使用など、選択の言語が義務付けられている場合にのみ、追加の Camel コンポーネントを含める必要があります。
language://languageName:resource:scheme:location][?options]
language://languageName:resource:scheme:location][?options]
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
language://languageName[:script][?options]
language://languageName[:script][?options]
URI オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | デフォルト値 | 型 | 説明 |
|---|---|---|---|
languageName
|
null
|
文字列
|
単純な、groovy、javascript など、使用する 言語 の名前。このオプションは必須です。
|
script
|
null
|
文字列
|
実行するスクリプト。 |
変換
|
true
|
boolean
|
スクリプトの結果を新しいメッセージボディーとして使用するかどうか。false に設定するとスクリプトが実行されますが、スクリプトの結果は破棄されます。
|
contentCache
|
true
|
boolean
|
Camel 2.9: リソースからロードされた場合にスクリプトをキャッシュするかどうか。注記: Camel 2.10.3 から、キャッシュされたスクリプトは clearContentCache 操作を使用して JMX 経由でランタイム時にリロードを強制できます。
|
cacheScript
|
false
|
boolean
|
Camel 2.13/2.12.2/2.11.3: コンパイルされたスクリプトをキャッシュするかどうか。このオプションを有効にすると、スクリプトはコンパイル/作成が 1 回のみ行われ、Camel メッセージの処理時に再利用されるため、パフォーマンスが向上します。ただし、これにより、以前の評価で残ったデータに対する副次的な影響が引き起こされ、同時実行の問題にも影響が及ぶ可能性があります。評価中のスクリプトがべき等である場合、このオプションはオンにすることができます。
|
binary
|
false
|
boolean
|
Camel 2.14.1: スクリプトがバイナリーコンテンツであるかどうか。これは、バイナリーファイルの読み込みなど、Constant 言語を使用してリソースを読み込むために使用されます。 |
メッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| ヘッダー | 説明 |
|---|---|
CamelLanguageScript
|
ヘッダーで提供される実行するスクリプト。エンドポイントに設定されたスクリプトよりも優先されます。 |
例 リンクのコピーリンクがクリップボードにコピーされました!
String script = URLEncoder.encode("Hello ${body}", "UTF-8");
from("direct:start").to("language:simple:" + script).to("mock:result");
String script = URLEncoder.encode("Hello ${body}", "UTF-8");
from("direct:start").to("language:simple:" + script).to("mock:result");
String script = URLEncoder.encode("${mandatoryBodyAs(String)}", "UTF-8");
from("direct:start").to("language:simple:" + script).to("mock:result");
String script = URLEncoder.encode("${mandatoryBodyAs(String)}", "UTF-8");
from("direct:start").to("language:simple:" + script).to("mock:result");
from("direct:start").to("language:groovy:request.body * 2").to("mock:result");
from("direct:start").to("language:groovy:request.body * 2").to("mock:result");
foo > タグからテキストを抽出します。
Object out = producer.requestBodyAndHeader("language:xpath", "<foo>Hello World</foo>", Exchange.LANGUAGE_SCRIPT, "/foo/text()");
assertEquals("Hello World", out);
Object out = producer.requestBodyAndHeader("language:xpath", "<foo>Hello World</foo>", Exchange.LANGUAGE_SCRIPT, "/foo/text()");
assertEquals("Hello World", out);
リソースからのスクリプトの読み込み リンクのコピーリンクがクリップボードにコピーされました!
Exchange.LANGUAGE_SCRIPT ヘッダーのいずれかでロードするスクリプトのリソース URI を指定できます。uri は、file:、classpath:、または http のいずれかのスキームで開始する必要があります。
from("direct:start")
// load the script from the classpath
.to("language:simple:classpath:org/apache/camel/component/language/mysimplescript.txt")
.to("mock:result");
from("direct:start")
// load the script from the classpath
.to("language:simple:classpath:org/apache/camel/component/language/mysimplescript.txt")
.to("mock:result");
contentCache オプションを無効にして、評価ごとにスクリプトを読み込むことができます。たとえば、ディスク上のファイル myscript.txt が変更された場合は、更新されたスクリプトが使用されます。
from("direct:start")
// the script will be loaded on each message, as we disabled cache
.to("language:simple:file:target/script/myscript.txt?contentCache=false")
.to("mock:result");
from("direct:start")
// the script will be loaded on each message, as we disabled cache
.to("language:simple:file:target/script/myscript.txt?contentCache=false")
.to("mock:result");
: と接頭辞を付けると、Camel の他の 言語 と同様のリソース を参照できます。
from("direct:start")
// load the script from the classpath
.to("language:simple:resource:classpath:org/apache/camel/component/language/mysimplescript.txt")
.to("mock:result");
from("direct:start")
// load the script from the classpath
.to("language:simple:resource:classpath:org/apache/camel/component/language/mysimplescript.txt")
.to("mock:result");
- Routing SlipRouting Slip
- Dynamic RouterDynamic Router
第96章 LDAP リンクのコピーリンクがクリップボードにコピーされました!
LDAP コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
javax.naming パッケージ)を使用してサーバーにアクセスします。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
ldap:ldapServerBean[?options]
ldap:ldapServerBean[?options]
ldap URI はルートの開始時に from に表示されることができません。
?option=value&option=value&.. の形式で追加できます。
オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | デフォルト値 | 説明 |
|---|---|---|
base
|
ou=system
|
検索用のベース DN。 |
scope
|
subtree
|
ベース DN から始まるエントリーのツリーを詳しく検索する方法を指定します。値は、オブジェクト、1 次、または サブツリー にすることができます。
|
pageSize
|
ページングは使用されません。 |
LDAP モジュールはページングを使用してすべての結果を取得します(ほとんどの LDAP サーバーは 1 つのクエリーで複数のエントリーを取得しようとすると例外を出力します)。これを使用できるようにするには、LdapContext ( DirContextのサブクラス)を ldapServerBean として渡す必要があります(そうでない場合は例外が発生します)。
|
returnedAttributes
|
LDAP サーバー(すべてまたはなし)に依存します。 | 結果の各エントリーに設定する必要がある属性のコンマ区切りリスト |
結果 リンクのコピーリンクがクリップボードにコピーされました!
ArrayList<javax.naming.directory.SearchResult > オブジェクトとして Out ボディーで返されます。
DirContext リンクのコピーリンクがクリップボードにコピーされました!
ldap:ldapserver は、ldapserver という ID を持つ Spring Bean を参照します。ldapserver Bean は以下のように定義できます。
DirContext を宣言します。
DirContext オブジェクトは、コントラクトによる同時実行をサポートする必要は ありません。そのため、ディレクトリーコンテキストは Bean 定義で設定 scope="prototype" で宣言されるか、コンテキストが同時実行をサポートすることが重要です。Spring フレームワークでは、プロトタイプ スコープオブジェクトは検索時に毎回インスタンス化されます。
サンプル リンクのコピーリンクがクリップボードにコピーされました!
(cn=*)
(cn=*)
認証情報を使用したバインディング リンクのコピーリンクがクリップボードにコピーされました!
SSL の設定 リンクのコピーリンクがクリップボードにコピーされました!
InitialDirContext Bean でカスタムソケットファクトリーを作成し、参照することのみが必要になります。
CustomSocketFactory クラスは以下のように実装されます。
第97章 LevelDB リンクのコピーリンクがクリップボードにコピーされました!
LevelDB リンクのコピーリンクがクリップボードにコピーされました!
camel-leveldb)コンポーネントは、Red Hat Enterprise Linux 以外のすべてのオペレーティングシステムで 非推奨 になりました。今後、Camel LevelDB コンポーネントは Red Hat Enterprise Linux でのみサポートされます。
- LevelDBAggregationRepository
LevelDBAggregationRepository の使用 リンクのコピーリンクがクリップボードにコピーされました!
LevelDBAggregationRepository は AggregationRepository で、オンザフライで集約されたメッセージを永続化します。これにより、デフォルトのアグリゲーターはメモリーの AggregationRepository のみを使用するので、メッセージを失わないようにします。
| オプション | タイプ | 説明 |
|---|---|---|
repositoryName
|
文字列 |
必須リポジトリー名。複数のリポジトリーに共有 LevelDBFile を使用できます。
|
persistentFileName
|
文字列 | 永続ストレージのファイル名。起動時にファイルが存在しない場合は、新しいファイルが作成されます。 |
levelDBFile
|
LevelDBFile |
既存の設定された org.apache.camel.component.leveldb.LevelDBFile インスタンスを使用します。
|
sync
|
boolean | Camel 2.12: LevelDBFile が書き込み時に同期されるかどうか。デフォルトは false です。書き込み時に同期することで、すべての書き込みがディスクにスプールされるのを待つため、更新は失われません。非同期書き込みと同期 書き込みの詳細は、LevelDB ドキュメント を参照してください。 |
returnOldExchange
|
boolean |
get 操作が存在する場合は、get 操作によって古い既存のエクスチェンジが返されるかどうか。デフォルトでは、集計時に古いエクスチェンジを必要としないため、このオプションは false で最適化されます。
|
useRecovery
|
boolean |
リカバリーが有効になっているかどうか。このオプションは、デフォルトで true です。有効にすると、Camel Aggregator は失敗した集約されたエクスチェンジを自動的にリカバリーし、再送信を行います。
|
recoveryInterval
|
long | recovery が有効になっている場合、バックグラウンドタスクは x 度ごとに実行され、失敗したエクスチェンジをスキャンしてリカバリーし、再送信します。デフォルトでは、この間隔は 5000 ミリ秒です。 |
maximumRedeliveries
|
int |
リカバリーされたエクスチェンジの再配信試行の最大数を制限できます。有効にすると、すべての再配信試行に失敗すると、エクスチェンジはデッドレターチャネルに移動します。デフォルトでは、このオプションは無効です。このオプションを使用する場合は、deadLetterUri オプションも指定する必要があります。
|
deadLetterUri
|
文字列 |
Dead Letter Channel のエンドポイント URI。使い切られるリカバリーされたエクスチェンジが移動されます。このオプションを使用する場合は、maximumRedeliveries オプションも指定する必要があります。
|
repositoryName オプションを指定する必要があります。次に、persistentFileName または levelDBFile のいずれかを指定する必要があります。
永続化時に保持される内容 リンクのコピーリンクがクリップボードにコピーされました!
LevelDBAggregationRepository は、Serializable と互換性のあるメッセージボディーデータタイプのみを保持します。メッセージヘッダーはプリミティブ、文字列、数字または同様のものである必要があります。データ型がそのようなタイプの場合はドロップされ、WARN がログに記録されます。また、メッセージ本文とメッセージ ヘッダーのみを保持 し ます。Exchange プロパティーは永続化され ません。
復元 リンクのコピーリンクがクリップボードにコピーされました!
LevelDBAggregationRepository は、デフォルトで失敗したエクスチェンジ を復元し ます。これは、永続ストアで失敗した エクスチェンジをスキャンするバックグラウンドタスクを持つことで行われます。checkInterval オプションを使用して、このタスクの実行頻度を設定できます。リカバリーはトランザクションとして機能し、Camel が失敗したエクスチェンジのリカバリーおよび再配信を試み ます。リカバリー さ れたエクスチェンジは永続ストアから復元され、再送信されて再度送信されます。
| ヘッダー | タイプ | 説明 |
|---|---|---|
Exchange.REDELIVERED
|
ブール値 | エクスチェンジ が再配信されていることを示すために が true に設定されます。 |
Exchange.REDELIVERY_COUNTER
|
整数 | 1 から始まる再配信の試行。 |
AggregationRepository で confirm メソッドが呼び出されたときに発生します。つまり、同じ エクスチェンジ が再び失敗すると、成功するまで再試行されます。
maximumRedeliveries オプションを使用して、特定のリカバリーエクスチェンジの再配信試行の最大数を制限でき ます。maximumRedeliveries に達したときに エクスチェンジ を送信する場所を Camel が認識できるように deadLetterUri オプションも設定する必要があります。
Java DSL での LevelDBAggregationRepository の使用 リンクのコピーリンクがクリップボードにコピーされました!
target/data/leveldb.dat ファイルで集約されたメッセージを永続化します。
Spring XML での LevelDBAggregationRepository の使用 リンクのコピーリンクがクリップボードにコピーされました!
Dependencies リンクのコピーリンクがクリップボードにコピーされました!
<dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-leveldb</artifactId> <version>2.17.0.redhat-630xxx</version> </dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-leveldb</artifactId>
<version>2.17.0.redhat-630xxx</version>
</dependency>
第98章 LinkedIn リンクのコピーリンクがクリップボードにコピーされました!
LinkedIn コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
camel-linkedin を使用するには、https://www.linkedin.com/secure/developer で LinkedIn に新しいアプリケーションを作成する必要があります。LinkedIn アプリケーションのクライアント ID およびシークレットにより、現在のユーザーを必要とする LinkedIn REST API へのアクセスが許可されます。ユーザーアクセストークンは、エンドユーザーのコンポーネントによって生成および管理されます。また、Camel アプリケーションは org.apache.camel.component.linkedin.api.OAuthSecureStorage の実装を登録し、org.apache.camel.component.linkedin.apiOAuthToken OAuth トークンを提供することもできます。
camel-linkedin コンポーネントを設定するには、Security Guide の Configuring Transport Security for Camel Components の章を参照してください。
pom.xml に追加する必要があります。
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-linkedin</artifactId>
<version>${camel-version}</version>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-linkedin</artifactId>
<version>${camel-version}</version>
</dependency>
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
linkedin://endpoint-prefix/endpoint?[options]
linkedin://endpoint-prefix/endpoint?[options]
endpoint-prefix は以下のいずれかになります。
commentscompaniesgroupsjobspeoplepostssearch
LinkedInComponent リンクのコピーリンクがクリップボードにコピーされました!
| オプション | タイプ | 説明 |
|---|---|---|
clientId
|
String
|
LinkedIn アプリケーションクライアント ID |
clientSecret
|
String
|
LinkedIn アプリケーションクライアントシークレット |
httpParams
|
java.util.Map
|
プロキシーホストおよびポートなどのカスタム HTTP パラメーター。AllClientPNamesからの定数を使用します。 |
lazyAuth
|
boolean
|
Lazy OAuth を有効または無効にするフラグ。デフォルトは true です。有効にすると、OAuth トークンの取得または生成は最初の REST 呼び出しまで実行されません。 |
redirectUri
|
String
|
アプリケーションのリダイレクト URI は、機能するリダイレクトサーバーを用意しなくても、コンポーネントはこのページにリダイレクトされません。テストには https://localhost を使用できます。 |
scopes
|
org.apache.camel.component.linkedin.api.OAuthScope[]
|
https://developer.linkedin.com/documents/authentication#grantingで指定される LinkedIn スコープの一覧 |
secureStorage
|
org.apache.camel.component.linkedin.api.OAuthSecureStorage
|
OAuth トークンを提供するコールバックインターフェイス、またはコンポーネントによって生成されたトークンを保存するコールバックインターフェイス。コールバックは最初の呼び出しで null を返し、作成されたトークンを saveToken ()コールバックに保存します。コールバックが初めて null を返す場合は、userPassword を指定する必要があります。 |
userName
|
String
|
LinkedIn ユーザーアカウント名を指定する必要があります。提供する必要があります |
userPassword
|
String
|
LinkedIn アカウントのパスワード |
プロデューサーエンドポイント: リンクのコピーリンクがクリップボードにコピーされました!
エンドポイント接頭辞のコメント リンクのコピーリンクがクリップボードにコピーされました!
linkedin://comments/endpoint?[options]
linkedin://comments/endpoint?[options]
| エンドポイント | 短縮形エイリアス | オプション | 結果ボディーのタイプ |
|---|---|---|---|
getComment
|
comment
|
comment_id, fields
|
org.apache.camel.component.linkedin.api.model.Comment
|
removeComment
|
comment
|
comment_id
|
コメントの URI オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | タイプ |
|---|---|
comment_id
|
String
|
fields
|
String
|
エンドポイント接頭辞企業 リンクのコピーリンクがクリップボードにコピーされました!
linkedin://companies/endpoint?[options]
linkedin://companies/endpoint?[options]
| エンドポイント | 短縮形エイリアス | オプション | 結果ボディーのタイプ |
|---|---|---|---|
addCompanyUpdateComment
|
companyUpdateComment
|
company_id, update_key, updatecomment
|
|
addCompanyUpdateCommentAsCompany
|
companyUpdateCommentAsCompany
|
company_id, update_key, updatecomment
|
|
addShare
|
share
|
company_id, share
|
|
getCompanies
|
companies
|
email_domain, fields, is_company_admin
|
org.apache.camel.component.linkedin.api.model.Companies
|
getCompanyById
|
companyById
|
company_id, fields
|
org.apache.camel.component.linkedin.api.model.Company
|
getCompanyByName
|
companyByName
|
fields, universal_name
|
org.apache.camel.component.linkedin.api.model.Company
|
getCompanyUpdateComments
|
companyUpdateComments
|
company_id, fields, secure_urls, update_key
|
org.apache.camel.component.linkedin.api.model.Comments
|
getCompanyUpdateLikes
|
companyUpdateLikes
|
company_id, fields, secure_urls, update_key
|
org.apache.camel.component.linkedin.api.model.Likes
|
getCompanyUpdates
|
companyUpdates
|
company_id, count, event_type, fields, start
|
org.apache.camel.component.linkedin.api.model.Updates
|
getHistoricalFollowStatistics
|
historicalFollowStatistics
|
company_id, end_timestamp, start_timestamp, time_granularity
|
org.apache.camel.component.linkedin.api.model.HistoricalFollowStatistics
|
getHistoricalStatusUpdateStatistics
|
historicalStatusUpdateStatistics
|
company_id, end_timestamp, start_timestamp, time_granularity, update_key
|
org.apache.camel.component.linkedin.api.model.HistoricalStatusUpdateStatistics
|
getNumberOfFollowers
|
numberOfFollowers
|
companySizes, company_id, geos, industries, jobFunc, seniorities
|
org.apache.camel.component.linkedin.api.model.NumFollowers
|
getStatistics
|
statistics
|
company_id
|
org.apache.camel.component.linkedin.api.model.CompanyStatistics
|
isShareEnabled
|
company_id
|
org.apache.camel.component.linkedin.api.model.IsCompanyShareEnabled
|
|
isViewerShareEnabled
|
company_id
|
org.apache.camel.component.linkedin.api.model.IsCompanyShareEnabled
|
|
likeCompanyUpdate
|
company_id, isliked, update_key
|
企業の URI オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | タイプ |
|---|---|
companySizes
|
java.util.List
|
company_id
|
Long
|
count
|
Long
|
email_domain
|
String
|
end_timestamp
|
Long
|
event_type
|
org.apache.camel.component.linkedin.api.Eventtype
|
fields
|
String
|
geos
|
java.util.List
|
industries
|
java.util.List
|
is_company_admin
|
Boolean
|
isliked
|
org.apache.camel.component.linkedin.api.model.IsLiked
|
jobFunc
|
java.util.List
|
secure_urls
|
Boolean
|
seniorities
|
java.util.List
|
share
|
org.apache.camel.component.linkedin.api.model.Share
|
start
|
Long
|
start_timestamp
|
Long
|
time_granularity
|
org.apache.camel.component.linkedin.api.Timegranularity
|
universal_name
|
String
|
update_key
|
String
|
updatecomment
|
org.apache.camel.component.linkedin.api.model.UpdateComment
|
エンドポイント接頭辞グループ リンクのコピーリンクがクリップボードにコピーされました!
linkedin://groups/endpoint?[options]
linkedin://groups/endpoint?[options]
| エンドポイント | 短縮形エイリアス | オプション | 結果ボディーのタイプ |
|---|---|---|---|
addPost
|
post
|
group_id, post
|
|
getGroup
|
group
|
group_id
|
org.apache.camel.component.linkedin.api.model.Group
|
グループの URI オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | タイプ |
|---|---|
group_id
|
Long
|
post
|
org.apache.camel.component.linkedin.api.model.Post
|
エンドポイント接頭辞ジョブ リンクのコピーリンクがクリップボードにコピーされました!
linkedin://jobs/endpoint?[options]
linkedin://jobs/endpoint?[options]
| エンドポイント | 短縮形エイリアス | オプション | 結果ボディーのタイプ |
|---|---|---|---|
addJob
|
job
|
job
|
|
editJob
|
job, partner_job_id
|
||
getJob
|
job
|
fields, job_id
|
org.apache.camel.component.linkedin.api.model.Job
|
removeJob
|
job
|
partner_job_id
|
ジョブの URI オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | タイプ |
|---|---|
fields
|
String
|
job
|
org.apache.camel.component.linkedin.api.model.Job
|
job_id
|
Long
|
partner_job_id
|
Long
|
エンドポイント接頭辞 people リンクのコピーリンクがクリップボードにコピーされました!
linkedin://people/endpoint?[options]
linkedin://people/endpoint?[options]
| エンドポイント | 短縮形エイリアス | オプション | 結果ボディーのタイプ |
|---|---|---|---|
addActivity
|
activity
|
activity
|
|
addGroupMembership
|
groupMembership
|
groupmembership
|
|
addInvite
|
invite
|
mailboxitem
|
|
addJobBookmark
|
jobBookmark
|
jobbookmark
|
|
addUpdateComment
|
updateComment
|
update_key, updatecomment
|
|
followCompany
|
company
|
||
getConnections
|
connections
|
fields, secure_urls
|
org.apache.camel.component.linkedin.api.model.Connections
|
getConnectionsById
|
connectionsById
|
fields, person_id, secure_urls
|
org.apache.camel.component.linkedin.api.model.Connections
|
getConnectionsByUrl
|
connectionsByUrl
|
fields, public_profile_url, secure_urls
|
org.apache.camel.component.linkedin.api.model.Connections
|
getFollowedCompanies
|
followedCompanies
|
fields
|
org.apache.camel.component.linkedin.api.model.Companies
|
getGroupMembershipSettings
|
groupMembershipSettings
|
count, fields, group_id, start
|
org.apache.camel.component.linkedin.api.model.GroupMemberships
|
getGroupMemberships
|
groupMemberships
|
count, fields, membership_state, start
|
org.apache.camel.component.linkedin.api.model.GroupMemberships
|
getJobBookmarks
|
jobBookmarks
|
org.apache.camel.component.linkedin.api.model.JobBookmarks
|
|
getNetworkStats
|
networkStats
|
org.apache.camel.component.linkedin.api.model.NetworkStats
|
|
getNetworkUpdates
|
networkUpdates
|
after, before, count, fields, scope, secure_urls, show_hidden_members, start, type
|
org.apache.camel.component.linkedin.api.model.Updates
|
getNetworkUpdatesById
|
networkUpdatesById
|
after, before, count, fields, person_id, scope, secure_urls, show_hidden_members, start, type
|
org.apache.camel.component.linkedin.api.model.Updates
|
getPerson
|
person
|
fields, secure_urls
|
org.apache.camel.component.linkedin.api.model.Person
|
getPersonById
|
personById
|
fields, person_id, secure_urls
|
org.apache.camel.component.linkedin.api.model.Person
|
getPersonByUrl
|
personByUrl
|
fields, public_profile_url, secure_urls
|
org.apache.camel.component.linkedin.api.model.Person
|
getPosts
|
posts
|
category, count, fields, group_id, modified_since, order, role, start
|
org.apache.camel.component.linkedin.api.model.Posts
|
getSuggestedCompanies
|
suggestedCompanies
|
fields
|
org.apache.camel.component.linkedin.api.model.Companies
|
getSuggestedGroupPosts
|
suggestedGroupPosts
|
category, count, fields, group_id, modified_since, order, role, start
|
org.apache.camel.component.linkedin.api.model.Posts
|
getSuggestedGroups
|
suggestedGroups
|
fields
|
org.apache.camel.component.linkedin.api.model.Groups
|
getSuggestedJobs
|
suggestedJobs
|
fields
|
org.apache.camel.component.linkedin.api.model.JobSuggestions
|
getUpdateComments
|
updateComments
|
fields, secure_urls, update_key
|
org.apache.camel.component.linkedin.api.model.Comments
|
getUpdateLikes
|
updateLikes
|
fields, secure_urls, update_key
|
org.apache.camel.component.linkedin.api.model.Likes
|
likeUpdate
|
isliked, update_key
|
||
removeGroupMembership
|
groupMembership
|
group_id
|
|
removeGroupSuggestion
|
groupSuggestion
|
group_id
|
|
removeJobBookmark
|
jobBookmark
|
job_id
|
|
share
|
share
|
org.apache.camel.component.linkedin.api.model.Update
|
|
stopFollowingCompany
|
company_id
|
||
updateGroupMembership
|
group_id, groupmembership
|
ユーザーの URI オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | タイプ |
|---|---|
activity
|
org.apache.camel.component.linkedin.api.model.Activity
|
after
|
Long
|
before
|
Long
|
category
|
org.apache.camel.component.linkedin.api.Category
|
company
|
org.apache.camel.component.linkedin.api.model.Company
|
company_id
|
Long
|
count
|
Long
|
fields
|
String
|
group_id
|
Long
|
groupmembership
|
org.apache.camel.component.linkedin.api.model.GroupMembership
|
isliked
|
org.apache.camel.component.linkedin.api.model.IsLiked
|
job_id
|
Long
|
jobbookmark
|
org.apache.camel.component.linkedin.api.model.JobBookmark
|
mailboxitem
|
org.apache.camel.component.linkedin.api.model.MailboxItem
|
membership_state
|
org.apache.camel.component.linkedin.api.model.MembershipState
|
modified_since
|
Long
|
order
|
org.apache.camel.component.linkedin.api.Order
|
person_id
|
String
|
public_profile_url
|
String
|
role
|
org.apache.camel.component.linkedin.api.Role
|
scope
|
String
|
secure_urls
|
Boolean
|
share
|
org.apache.camel.component.linkedin.api.model.Share
|
show_hidden_members
|
Boolean
|
start
|
Long
|
type
|
org.apache.camel.component.linkedin.api.Type
|
update_key
|
String
|
updatecomment
|
org.apache.camel.component.linkedin.api.model.UpdateComment
|
エンドポイント接頭辞 POST リンクのコピーリンクがクリップボードにコピーされました!
linkedin://posts/endpoint?[options]
linkedin://posts/endpoint?[options]
| エンドポイント | 短縮形エイリアス | オプション | 結果ボディーのタイプ |
|---|---|---|---|
addComment
|
comment
|
comment, post_id
|
|
flagCategory
|
post_id, postcategorycode
|
||
followPost
|
isfollowing, post_id
|
||
getPost
|
post
|
count, fields, post_id, start
|
org.apache.camel.component.linkedin.api.model.Post
|
getPostComments
|
postComments
|
count, fields, post_id, start
|
org.apache.camel.component.linkedin.api.model.Comments
|
likePost
|
isliked, post_id
|
||
removePost
|
post
|
post_id
|
投稿の URI オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | タイプ |
|---|---|
comment
|
org.apache.camel.component.linkedin.api.model.Comment
|
count
|
Long
|
fields
|
String
|
isfollowing
|
org.apache.camel.component.linkedin.api.model.IsFollowing
|
isliked
|
org.apache.camel.component.linkedin.api.model.IsLiked
|
post_id
|
String
|
postcategorycode
|
org.apache.camel.component.linkedin.api.model.PostCategoryCode
|
start
|
Long
|
エンドポイント接頭辞検索 リンクのコピーリンクがクリップボードにコピーされました!
linkedin://search/endpoint?[options]
linkedin://search/endpoint?[options]
| エンドポイント | 短縮形エイリアス | オプション | 結果ボディーのタイプ |
|---|---|---|---|
searchCompanies
|
companies
|
count, facet, facets, fields, hq_only, keywords, sort, start
|
org.apache.camel.component.linkedin.api.model.CompanySearch
|
searchJobs
|
jobs
|
company_name, count, country_code, distance, facet, facets, fields, job_title, keywords, postal_code, sort, start
|
org.apache.camel.component.linkedin.api.model.JobSearch
|
searchPeople
|
people
|
company_name, count, country_code, current_company, current_school, current_title, distance, facet, facets, fields, first_name, keywords, last_name, postal_code, school_name, sort, start, title
|
org.apache.camel.component.linkedin.api.model.PeopleSearch
|
検索の URI オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | タイプ |
|---|---|
company_name
|
String
|
count
|
Long
|
country_code
|
String
|
current_company
|
String
|
current_school
|
String
|
current_title
|
String
|
distance
|
org.apache.camel.component.linkedin.api.model.Distance
|
facet
|
String
|
facets
|
String
|
fields
|
String
|
first_name
|
String
|
hq_only
|
String
|
job_title
|
String
|
keywords
|
String
|
last_name
|
String
|
postal_code
|
String
|
school_name
|
String
|
sort
|
String
|
start
|
Long
|
title
|
String
|
コンシューマーエンドポイント リンクのコピーリンクがクリップボードにコピーされました!
メッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
メッセージボディー リンクのコピーリンクがクリップボードにコピーされました!
ユースケース リンクのコピーリンクがクリップボードにコピーされました!
from("direct:foo")
.to("linkedin://people/person");
from("direct:foo")
.to("linkedin://people/person");
from("linkedin://people/connections?consumer.timeUnit=SECONDS&consumer.delay=30")
.to("bean:foo");
from("linkedin://people/connections?consumer.timeUnit=SECONDS&consumer.delay=30")
.to("bean:foo");
from("direct:foo")
.setHeader("CamelLinkedIn.person_id", header("personId"))
.to("linkedin://people/connectionsById")
.to("bean://bar");
from("direct:foo")
.setHeader("CamelLinkedIn.person_id", header("personId"))
.to("linkedin://people/connectionsById")
.to("bean://bar");
第99章 リスト リンクのコピーリンクがクリップボードにコピーされました!
コンポーネントの一覧表示 リンクのコピーリンクがクリップボードにコピーされました!
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
list:someName
list:someName
例 リンクのコピーリンクがクリップボードにコピーされました!
from("activemq:order.in").to("list:orderReceived").to("bean:processOrder");
from("activemq:order.in").to("list:orderReceived").to("bean:processOrder");
第100章 Log リンクのコピーリンクがクリップボードにコピーされました!
ログコンポーネント リンクのコピーリンクがクリップボードにコピーされました!
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
log:loggingCategory[?options]
log:loggingCategory[?options]
?option=value&option=value&.. の形式で追加できます。
org.slf4j.Logger の単一インスタンスがある場合、loggingCategory はロガーインスタンスの作成に使用されなくなりました。代わりに、登録されたインスタンスが使用されます。また、?logger=#myLogger URI パラメーターを使用して特定の Logger インスタンスを参照することもできます。最終的には、登録済みおよび URI logger パラメーターがない場合、loggingCategory を使用してロガーインスタンスが作成されます。
レベル を指定します。
log:org.apache.camel.example?level=DEBUG
log:org.apache.camel.example?level=DEBUG
Throughput ロガーも含まれています。これは、groupSize オプションが指定されているたびに使用されます。
ログイン がありますが、目的が異なります。これは、軽量ログおよびヒューマンログを対象としています。詳細は、LogEIP を参照してください。
オプション リンクのコピーリンクがクリップボードにコピーされました!
| オプション | デフォルト | タイプ | Description |
|---|---|---|---|
level
|
INFO
|
文字列
|
使用するロギングレベル。使用できる値は、ERROR、WARN、INFO、DEBUG、TRACE、OFFです。
|
marker
|
null
|
文字列
|
Camel 2.9: 使用 するオプションのマーカー 名。 |
groupSize
|
null
|
整数
|
スループットロギングのグループサイズを指定する整数。 |
groupInterval
|
null
|
整数
|
指定した場合、この時間間隔(ミリ秒単位)でメッセージ統計をグループ化します。 |
groupDelay
|
0
|
整数
|
統計の初期遅延を設定します(ミリ秒単位)。 |
groupActiveOnly
|
true
|
boolean
|
true の場合、新しいメッセージが時間間隔で受信されない場合に統計を非表示にします。false の場合は、メッセージトラフィックに関係なく統計を表示します。 |
logger
|
ロガー
|
Camel 2.12.4/2.13.1: 使用するレジストリーから org.slf4j.Logger へのオプションの参照。
|
フォーマット リンクのコピーリンクがクリップボードにコピーされました!
LogFormatter を使用してログ出力をフォーマットします。LogFormatter には以下のオプションが含まれます。
| オプション | デフォルト | 説明 |
|---|---|---|
showAll
|
false
|
すべてのオプションをオンにするクイックオプション(マルチライン、maxChars を使用する場合は手動で設定する必要があります)。 |
showExchangeId
|
false
|
一意のエクスチェンジ ID を表示します。 |
showExchangePattern
|
true
|
は、Message Exchange Pattern (略して MEP)を示しています。 |
showProperties
|
false
|
エクスチェンジプロパティーを表示します。 |
showHeaders
|
false
|
In メッセージヘッダーを表示します。 |
skipBodyLineSeparator
|
true
|
Camel 2.12.2: メッセージボディーをログに記録するときに行セパレーターをスキップするかどうか。これにより、はメッセージボディーを 1 行でログに記録できます。このオプションを
false に設定すると、本文から行区切り文字が保持され、ボディー は としてログに記録され ます。
|
showBodyType
|
true
|
In body Java タイプを表示します。 |
showBody
|
true
|
In ボディーを表示します。 |
showOut
|
false
|
エクスチェンジに Out メッセージがある場合は、Out メッセージが表示されます。 |
showException
|
false
|
Apache Camel 2.0: エクスチェンジに例外がある場合は、例外メッセージを表示します(スタックトレースなし)。 |
showCaughtException
|
false
|
Apache Camel 2.0: エクスチェンジにキャッチされた例外がある場合は、例外メッセージを表示します(スタックトレースなし)。キャッチされた例外はエクスチェンジのプロパティーとして保存され、たとえば doCatch は例外をキャッチできます。Try Catch Finally を参照してください。
|
showStackTrace
|
false
|
Apache Camel 2.0: エクスチェンジに例外がある場合にスタックトレースを表示します。showAll、showException、または showCaughtException のいずれかが有効な場合にのみ有効です。
|
showFiles
|
false
|
Camel 2.9: Camel がファイルの本文を表示するかどうか(java.io.File など)。 |
showFuture
|
false
|
Camel で java.util.concurrent.Future ボディーを表示するかどうか。有効な場合、Camel は Future タスクが実行されるまで待機できる可能性があります。デフォルトでは待機しません。
|
showStreams
|
false
|
Camel 2.8: Camel がストリーム本文を表示するかどうか(java.io.InputStream など)。このオプションを有効にすると、このロガーによってストリームがすでに読み込まれているため、後でメッセージボディーにアクセスできないことがあります。これを修正するには、Stream Caching を使用する必要があります。 |
複数行
|
false
|
true の場合、各情報が新しい行に記録されます。
|
maxChars
|
1 行に記録される文字数を制限します。デフォルト値は、Camel 2.9 以降の 10000 です。
|
camelContext.getProperties().put(Exchange.LOG_DEBUG_BODY_STREAMS, true);
camelContext.getProperties().put(Exchange.LOG_DEBUG_BODY_STREAMS, true);
通常のロガーの例 リンクのコピーリンクがクリップボードにコピーされました!
DEBUG レベルで受信注文をログに記録します。
from("activemq:orders").to("log:com.mycompany.order?level=DEBUG").to("bean:processOrder");
from("activemq:orders").to("log:com.mycompany.order?level=DEBUG").to("bean:processOrder");
<route>
<from uri="activemq:orders"/>
<to uri="log:com.mycompany.order?level=DEBUG"/>
<to uri="bean:processOrder"/>
</route>
<route>
<from uri="activemq:orders"/>
<to uri="log:com.mycompany.order?level=DEBUG"/>
<to uri="bean:processOrder"/>
</route>
フォーマッターサンプルを持つ通常のロガー リンクのコピーリンクがクリップボードにコピーされました!
INFO レベルで受信注文をログに記録します。
from("activemq:orders").
to("log:com.mycompany.order?showAll=true&multiline=true").to("bean:processOrder");
from("activemq:orders").
to("log:com.mycompany.order?showAll=true&multiline=true").to("bean:processOrder");
groupSize サンプルを使用したスループットロガー リンクのコピーリンクがクリップボードにコピーされました!
DEBUG レベルで受信注文のスループットをログに記録します。
from("activemq:orders").
to("log:com.mycompany.order?level=DEBUG&groupSize=10").to("bean:processOrder");
from("activemq:orders").
to("log:com.mycompany.order?level=DEBUG&groupSize=10").to("bean:processOrder");
groupInterval サンプルを使用したスループットロガー リンクのコピーリンクがクリップボードにコピーされました!
from("activemq:orders")
.to("log:com.mycompany.order?level=DEBUG&groupInterval=10000&groupDelay=60000&groupActiveOnly=false")
.to("bean:processOrder");
from("activemq:orders")
.to("log:com.mycompany.order?level=DEBUG&groupInterval=10000&groupDelay=60000&groupActiveOnly=false")
.to("bean:processOrder");
"Received: 1000 new messages, with total 2000 so far. Last group took: 10000 millis which is: 100 messages per second. average: 100"
"Received: 1000 new messages, with total 2000 so far. Last group took: 10000 millis which is: 100 messages per second. average: 100"
ロギング出力の完全なカスタマイズ リンクのコピーリンクがクリップボードにコピーされました!
Exchange[Id:ID-machine-local-50656-1234567901234-1-2, ExchangePattern:InOut,
Properties:{CamelToEndpoint=log://org.apache.camel.component.log.TEST?showAll=true,
CamelCreatedTimestamp=Thu Mar 28 00:00:00 WET 2013},
Headers:{breadcrumbId=ID-machine-local-50656-1234567901234-1-1}, BodyType:String, Body:Hello World, Out: null]
Exchange[Id:ID-machine-local-50656-1234567901234-1-2, ExchangePattern:InOut,
Properties:{CamelToEndpoint=log://org.apache.camel.component.log.TEST?showAll=true,
CamelCreatedTimestamp=Thu Mar 28 00:00:00 WET 2013},
Headers:{breadcrumbId=ID-machine-local-50656-1234567901234-1-1}, BodyType:String, Body:Hello World, Out: null]
- ... 出力されたヘッダーとプロパティーをフィルターリングすると、知見と詳細度のバランスが取れます。
- ... 最も読み取り可能と見なされるものに合わせてログメッセージを調整します。
- ...Splunk などのログマイニングシステムによるダイジェストのためにログメッセージを調整します。
- ... 特定のボディータイプの出力が異なります。
- ... etc.
ExchangeFormatter インターフェイスを実装するクラスを作成できます。完全なエクスチェンジにアクセスできる format (Exchange) メソッド内で、必要な正確な情報を選択して抽出し、カスタム方式でフォーマットして返すことができます。戻り値は最終的なログメッセージになります。
ExchangeFormatter を選択できます。
<bean name="log" class="org.apache.camel.component.log.LogComponent"> <property name="exchangeFormatter" ref="myCustomFormatter" /> </bean>
<bean name="log" class="org.apache.camel.component.log.LogComponent">
<property name="exchangeFormatter" ref="myCustomFormatter" />
</bean>
logFormatter という名前で登録します。Log コンポーネントは、自動的に取得できるほどインテリジェントなものです。
<bean name="logFormatter" class="com.xyz.MyCustomExchangeFormatter" />
<bean name="logFormatter" class="com.xyz.MyCustomExchangeFormatter" />
Exchange フォーマッター は Camel コンテキスト内のすべてのログエンドポイントに適用されます。異なるエンドポイントに異なる ExchangeFormatters が必要な場合は、必要に応じて LogComponent をインスタンス化し、関連する Bean 名をエンドポイント接頭辞として使用します。
<bean name="logFormatter" class="com.xyz.MyCustomExchangeFormatter" scope="prototype"/>
<bean name="logFormatter" class="com.xyz.MyCustomExchangeFormatter" scope="prototype"/>
<to uri="log:foo?param1=foo&aram2=100"/> ... <to uri="log:bar?param1=bar&aram2=200"/>
<to uri="log:foo?param1=foo&aram2=100"/>
...
<to uri="log:bar?param1=bar&aram2=200"/>
OSGi でのログコンポーネントの使用 リンクのコピーリンクがクリップボードにコピーされました!
org.slf4j.LoggerFactory.getLogger() メソッドを呼び出すバンドルを検索し、バンドルをロガーインスタンスに関連付けます。カスタム org.sfl4j.Logger インスタンスを指定しない場合、Log コンポーネントによって作成されたロガーは camel-core バンドルに関連付けられます。
org.slf4j.Logger の単一インスタンスを登録するか、または logger URI パラメーターを使用して参照します。
第101章 Lucene リンクのコピーリンクがクリップボードにコピーされました!
Lucene (Indexer および Search)コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
- ペイロードが Lucene エンドポイントに送信される際にドキュメントの検索可能なインデックスを構築します。
- Apache Camel でのインデックス検索の実行を容易にする
Camel on EAP デプロイメント リンクのコピーリンクがクリップボードにコピーされました!
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
lucene:searcherName:insert[?options] lucene:searcherName:query[?options]
lucene:searcherName:insert[?options]
lucene:searcherName:query[?options]
?option=value&option=value&.. の形式で追加できます。
オプションの挿入 リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | デフォルト値 | 説明 |
|---|---|---|
アナライザー
|
StandardAnalyzer
|
Analyzer は、テキストを分析する TokenStreams をビルドします。そのため、テキストからインデックス用語を抽出するポリシーを表します。analyzer の値は、抽象クラス org.apache.lucene.analysis.Analyzer を拡張する任意のクラスにすることができます。Lucene は、追加設定なしで豊富なアナライザーのセットも提供します。 |
indexDir
|
./indexDirectory
|
指定されたアナライザーによるドキュメントの分析時にインデックスファイルが作成されるファイルシステムディレクトリー |
srcDir
|
null
|
プロデューサー起動時にインデックスに分析および追加するために使用されるファイルを含むオプションのディレクトリーです。 |
クエリーオプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | デフォルト値 | 説明 |
|---|---|---|
アナライザー
|
StandardAnalyzer
|
Analyzer は、テキストを分析する TokenStreams をビルドします。そのため、テキストからインデックス用語を抽出するポリシーを表します。analyzer の値は、抽象クラス org.apache.lucene.analysis.Analyzer を拡張する任意のクラスにすることができます。Lucene は、追加設定なしで豊富なアナライザーのセットも提供します。 |
indexDir
|
./indexDirectory
|
指定されたアナライザーによるドキュメントの分析時にインデックスファイルが作成されるファイルシステムディレクトリー |
maxHits
|
10
|
検索操作の結果セットを制限する整数値 |
メッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| ヘッダー | 説明 |
|---|---|
QUERY
|
インデックスで実行される Lucene クエリー。クエリーにはワイルドカードとフレーズが含まれる場合があります。 |
RETURN_LUCENE_DOCS
|
Camel 2.15: ヒット情報を返すときに実際の Lucene ドキュメントを含めるには、このヘッダーを true に設定します。 |
Lucene プロデューサー リンクのコピーリンクがクリップボードにコピーされました!
- insert - 挿入プロデューサーは、受信エクスチェンジのボディーを分析し、それをトークン(content)に関連付けることで、検索可能なインデックスを構築します。
- query: クエリープロデューサーは、事前に作成されたインデックスで検索を実行します。クエリーは、検索可能なインデックスを使用してスコアおよび関連性ベースの検索を実行します。受信エクスチェンジを介してクエリーを送信すると、QUERY というヘッダープロパティー名が含まれます。ヘッダープロパティー QUERY の値は Lucene クエリーです。Lucene クエリーを作成する方法は、 http://lucene.apache.org/java/3_0_0/queryparsersyntax.html を参照してください。
Lucene プロセッサー リンクのコピーリンクがクリップボードにコピーされました!
例 1: Lucene インデックスの作成 リンクのコピーリンクがクリップボードにコピーされました!
例 2: Camel Context の JNDI レジストリーへのプロパティーのロード リンクのコピーリンクがクリップボードにコピーされました!
例 2: クエリープロデューサーを使用した検索の実行 リンクのコピーリンクがクリップボードにコピーされました!
例 3: クエリープロセッサーを使用した検索の実行 リンクのコピーリンクがクリップボードにコピーされました!
第102章 mail リンクのコピーリンクがクリップボードにコピーされました!
メールコンポーネント リンクのコピーリンクがクリップボードにコピーされました!
pom.xml に以下の依存関係を追加する必要があります。
.jar (v1.6)にバグがあることが発見されました。Content-Type を正しく特定できません。したがって、.jpeg ファイルをメールに添付し、ポーリングすると、Content-Type は image/jpeg ではなく text/plain として解決されます。このため、org.apache.camel.component.ContentTypeResolver SPI インターフェイスが追加され、独自の実装を提供でき、ファイル名に基づいて正しい Mime タイプを返すことでこのバグを修正できるようになりました。そのため、ファイル名が jpeg/jpg で終わる場合は、image/jpeg を返すことができます。
MailComponent インスタンスまたは MailEndpoint インスタンスでカスタムリゾルバーを設定できます。
Camel on EAP デプロイメント リンクのコピーリンクがクリップボードにコピーされました!
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
smtp://[username@]host[:port][?options] pop3://[username@]host[:port][?options] imap://[username@]host[:port][?options]
smtp://[username@]host[:port][?options]
pop3://[username@]host[:port][?options]
imap://[username@]host[:port][?options]
s を追加して、セキュアなプロトコルを有効にできます。
smtps://[username@]host[:port][?options] pop3s://[username@]host[:port][?options] imaps://[username@]host[:port][?options]
smtps://[username@]host[:port][?options]
pop3s://[username@]host[:port][?options]
imaps://[username@]host[:port][?options]
?option=value&option=value&.. の形式で追加できます。
サンプルエンドポイント リンクのコピーリンクがクリップボードにコピーされました!
smtp://[username@]host[:port][?password=somepwd]
smtp://[username@]host[:port][?password=somepwd]
smtp://host[:port]?password=somepwd&username=someuser
smtp://host[:port]?password=somepwd&username=someuser
smtp://mycompany.mailserver:30?password=tiger&username=scott
smtp://mycompany.mailserver:30?password=tiger&username=scott
デフォルトのポート リンクのコピーリンクがクリップボードにコピーされました!
| Protocol | デフォルトのポート番号 |
|---|---|
SMTP
|
25
|
SMTPS
|
465
|
POP3
|
110
|
POP3S
|
995
|
IMAP
|
143
|
IMAPS
|
993
|
オプション リンクのコピーリンクがクリップボードにコピーされました!
| プロパティー | デフォルト | 説明 |
|---|---|---|
host
|
接続するホスト名または IP アドレス。 | |
port
|
「デフォルトのポート」を参照してください。 | 接続先の TCP ポート番号。 |
username
|
メールサーバーのユーザー名。 | |
password
|
null
|
メールサーバーのパスワード。 |
ignoreUriScheme
|
false
|
false の場合、Camel はスキームを使用してトランスポートプロトコル(POP、IMAP、SMTP など)を決定します。
|
contentType
|
text/plain
|
メールメッセージのコンテンツタイプ。HTML メールには text/html を使用します。
|
folderName
|
INBOX
|
ポーリングするフォルダー。 |
destination
|
username@host
|
@非推奨: 代わりに to オプションを使用してください。TO 受信者(電子メールの受信側)。
|
上記を以下のように変更します。
|
username@host
|
TO 受信者(メールの受信側)。複数のメールアドレスはコンマで区切ります。& などの特殊文字を含む電子メールアドレスは、RAW() 関数で囲む必要があります。これは、URI エンコーディングをバイパスするために使用できます。
|
replyTo
|
alias@host
|
Camel 2.8.4 以降、2.9.1\+ では、Reply-To 受信者(応答メールの受信側)です。複数のメールアドレスはコンマで区切ります。 |
CC
|
null
|
CC の受信者(メールの受信側)。複数のメールアドレスはコンマで区切ります。 |
BCC
|
null
|
BCC 受信者(メールの受信側)。複数のメールアドレスはコンマで区切ります。 |
from
|
camel@localhost
|
FROM メールアドレス。 |
subject
|
Camel 2.3 の時点で、送信されるメッセージの Subject。注記:ヘッダーにサブジェクトを設定することは、このオプションよりも優先されます。 | |
peek
|
true
|
Camel 2.11.3/2.12.2: コンシューマーのみ。メールメッセージを処理する前に、
javax.mail.Message に peeked のマークを付けます。これは、IMAPMessage メッセージタイプにのみ適用されます。peek を使用すると、メールはメールサーバーで SEEN とマークされません。これにより、Camel でエラー処理がある場合にメールメッセージをロールバックできます。
|
delete
|
false
|
処理後にメッセージを削除します。これには、メールメッセージに DELETED フラグを設定します。false の場合、SEEN フラグが代わりに設定されます。Camel 2.10 以降では、ヘッダーにキー delete を設定して、メールを削除するかどうかを決定します。
|
Unseen
|
true
|
コンシューマーエンドポイントを設定して、未確認メッセージ(新しいメッセージ)またはすべてのメッセージのみを処理することができます。Camel は常に削除されたメッセージを省略することに注意してください。true のデフォルトオプションは、未確認のメッセージだけに絞り込みます。POP3 は SEEN フラグをサポートしないため、このオプションは POP3 ではサポートされていません。代わりに IMAP を使用してください。重要: searchTerm オプションも使用する場合、このオプションは使用され ません。代わりに、searchTerm の使用時の未確認を無効にし、searchTerm.unseen=false を用語として追加します。
|
copyTo
|
null
|
Camel 2.10: コンシューマーのみ。メールメッセージの処理後、指定した名前のメールフォルダーにコピーできます。この設定値を上書きするには、キー copyTo のヘッダーを使用します。これにより、実行時に設定されたフォルダー名にメッセージをコピーできます。
|
fetchSize
|
\-1
|
ポーリング中に消費するメッセージの最大数を設定します。メールボックスフォルダーに多くのメッセージが含まれる場合、これを使用してメールサーバーの過負荷を回避することができます。デフォルト値の \-1 はフェッチサイズがなく、すべてのメッセージが消費されることを意味します。値を 0 に設定すると、Camel はメッセージをまったく消費しません。
|
alternativeBodyHeader
|
CamelMailAlternativeBody
|
代替メールボディーが含まれる IN メッセージヘッダーへのキーを指定します。たとえば、テキスト/html 形式でメールを送信し、HTML 以外のメールクライアント用に代替メール本文を提供する場合は、別のメール本文をヘッダーとして設定します。
|
debugMode
|
false
|
基礎となるメールフレームワークでデバッグモードを有効にします。SUN Mail フレームワークは、デフォルトでデバッグメッセージを System.out に記録します。
|
connectionTimeout
|
30000
|
接続のタイムアウト(ミリ秒単位)。デフォルトは 30 秒です。 |
consumer.initialDelay
|
1000
|
ポーリングが開始するまでの時間(ミリ秒単位)。 |
consumer.delay
|
60000
|
Camel は、メールサーバーのオーバーロードを防ぐために、デフォルトで 1 分ごとにメールボックスをポーリングします。 |
consumer.useFixedDelay
|
false
|
true に設定すると、ポーリング間の固定遅延が使用されます。それ以外の場合には、固定レートが使用されます。詳細は、JDK の ScheduledExecutorService を参照してください。
|
disconnect
|
false
|
camel 2.8.3/2.9: ポーリング後にコンシューマーが切断されるかどうか。これを有効にすると、Camel がポーリングごとに強制的に接続します。 |
closeFolder
|
true
|
Camel 2.10.4: ポーリング後にコンシューマーがフォルダーを閉じるかどうか。このオプションを false に設定して disconnect=false も持つと、コンシューマーはポーリング間でフォルダーを開いたままにします。
|
mail.XXX
|
null
|
追加の java メールプロパティー を設定します。たとえば、POP3 を使用する際に特別なプロパティーを設定する場合は、mail.pop3.forgettopheaders=true などの URI にオプションを直接提供できるようになりました。たとえば、mail .pop3.forgettopheaders=true&mail.mime.encodefilename=true などの複数のオプションを設定できます。
|
mapMailMessage
|
true
|
camel 2.8: Camel が受信したメールメッセージを Camel ボディー/ヘッダーにマップするかどうかを指定します。true に設定すると、メールメッセージのボディーは Camel IN メッセージのボディーにマッピングされ、メールヘッダーは IN ヘッダーにマッピングされます。このオプションを false に設定すると、IN メッセージには生の javax.mail.Message が含まれます。exchange.getIn ().getBody (javax.mail.Message.class) を呼び出すことで、この未加工メッセージを取得できます。
|
maxMessagesPerPoll
|
0
|
ポーリングごとに収集するメッセージの最大数を指定します。デフォルトでは最大値は設定されていません。たとえば、1000 などの制限を設定して、サーバーの起動時に数千のファイルがダウンロードされないようにすることができます。このオプションを無効にするには、0 または負の値を設定します。 |
javaMailSender
|
null
|
カスタムメール実装を使用するために、プラグ可能な org.apache.camel.component.mail.JavaMailSender インスタンスを指定します。
|
ignoreUnsupportedCharset
|
false
|
Camel がメールの送信時にローカル JVM でサポートされていない charset を無視するようにするオプション。charset がサポートされていない場合は、charset=XXX ( XXX はサポート対象外の charset を表します)が コンテンツタイプ から削除され、代わりにプラットフォームのデフォルトに依存します。
|
sslContextParameters
|
null
|
Camel 2.10: Registry の org.apache.camel.util.jsse.SSLContextParameters オブジェクトへの参照。 この参照は、コンポーネントレベルで設定済みの SSLContextParameters を上書きします。Security Guide および Using the JSSE Configuration Utility の Configuring Transport Security for Camel Components の章 を参照してください。
|
searchTerm
|
null
|
Camel 2.11: javax.mail.search.SearchTerm を参照します。これにより、特定の日付の後に送信されるサブジェクト、ボディー、from などの検索条件に基づいてメールをフィルターリングできます。例については、以下を参照してください。
|
searchTerm.xxx
|
null
|
Camel 2.11: org.apache.camel.component.mail.SimpleSearchTerm クラスで定義される制限数の用語をサポートするエンドポイント URI から直接検索用語を設定します。例については、以下を参照してください。
|
sortTerm
|
null
|
Camel 2.15: IMAP が検索したメールをソートするために使用する sortTerms を設定します。最初にレジストリーで
com.sun.mail.imap.sortTerm の配列を定義し、この URI オプションで参照するには #name が必要になる場合があります。
Camel 2.16: Camel が内部で変換する URI でソート用語のコンマ区切りリストを指定することもできます。たとえば、日付で降順をソートするには、
sortTerm=reverse,date を使用します。com.sun.mail.imap.SortTerm で定義されているソート用語のいずれかを使用できます。
|
postProcessAction
|
null
|
Camel 2.15: 通常の処理が終了した後にメールボックスで後処理タスクを実行する場合は、org.apache.camel.component.mail. MailBoxPostProcessAction を参照してください。
|
skipFailedMessage
|
false
|
Camel 2.15: メールコンシューマーが指定のメールメッセージを取得できない場合、このオプションを使用するとメッセージをスキップして次のメールメッセージを取得できます。デフォルトの動作では、コンシューマーは例外を出力し、バッチからのメールは Camel によってルーティングできません。 |
handleFailedMessage
|
false
|
Camel 2.15: メールコンシューマーが指定のメールメッセージを取得できない場合、このオプションを使用すると、コンシューマーのエラーハンドラーによって原因となった例外を処理できるようになります。コンシューマーでブリッジエラーハンドラーを有効にすると、Camel ルーティングエラーハンドラーは代わりに例外を処理できます。デフォルトの動作では、コンシューマーは例外を出力し、バッチからのメールは Camel によってルーティングできません。 |
dummyTrustManager
|
false
|
Camel 2.17: すべての証明書を信頼するためにダミーのセキュリティー設定を使用するには、以下を実行します。実稼働ではなく、開発モードにのみ使用してください。 |
idempotentRepository
|
null
|
Camel 2.17: プラグ可能なリポジトリー org.apache.camel.spi.IdempotentRepository。同じメールボックスからのクラスター消費を許可し、コンシューマーの処理にメールメッセージが有効かどうかを調整します。 |
idempotentRepositoryRemoveOnCommit
|
true
|
Camel 2.17: idempotent リポジトリーを使用する場合、メールメッセージが正常に処理され、コミットされると、メッセージ ID がべき等リポジトリー(デフォルト)から削除されるか、リポジトリーに保存されます。デフォルトでは、メッセージ ID は一意であり、リポジトリーに格納される値がないことが想定されます。これは、メールメッセージが再度消費されるのを防ぐために表示/移動または削除としてマークされるためです。そのため、メッセージ ID がべき等リポジトリーに保存されるため、値はほとんどありません。ただし、このオプションを使用すると、任意の理由でメッセージ ID を保存できます。 |
mailUidGenerator
|
Camel 2.17: カスタムロジックを使用してメールメッセージの UUID を生成できるようにするプラグ可能な MailUidGenerator。
|
SSL サポート リンクのコピーリンクがクリップボードにコピーされました!
SSLContextParameters オブジェクトを提供することもできます。Security Guide の Configuring Transport Security for Camel Components の章を参照してください。
JSSE 設定ユーティリティーの使用 リンクのコピーリンクがクリップボードにコピーされました!
エンドポイントのプログラムによる設定 リンクのコピーリンクがクリップボードにコピーされました!
エンドポイントの Spring DSL ベースの設定 リンクのコピーリンクがクリップボードにコピーされました!
JavaMail の直接設定 リンクのコピーリンクがクリップボードにコピーされました!
SSLNOTES.txt を参照してください)。
メールメッセージの内容 リンクのコピーリンクがクリップボードにコピーされました!
String.class に変換されます。
from("direct:a").setHeader("subject", constant(subject)).to("smtp://james2@localhost");
from("direct:a").setHeader("subject", constant(subject)).to("smtp://james2@localhost");
を 使用できます。
CamelMailMessageId キーを持つ MimeMessage のメッセージ ID を取得できるはずです。
ヘッダーが事前設定された受信者よりも優先されます。 リンクのコピーリンクがクリップボードにコピーされました!
davsclaus@apache.org に送信されます。これは、事前設定された受信者 info@mycompany.com よりも優先されます。エンドポイント URI の CC および BCC 設定も無視され、これらの受信者はメールを受信しません。ヘッダーと事前設定された設定の選択は all または nothing です。mail コンポーネントはヘッダーのみから受信者を取得する か、事前設定された設定から排他的に取得します。ヘッダーと事前設定された設定を混在させることはできません。
Map<String, Object> headers = new HashMap<String, Object>();
headers.put("to", "davsclaus@apache.org");
template.sendBodyAndHeaders("smtp://admin@localhost?to=info@mycompany.com", "Hello World", headers);
Map<String, Object> headers = new HashMap<String, Object>();
headers.put("to", "davsclaus@apache.org");
template.sendBodyAndHeaders("smtp://admin@localhost?to=info@mycompany.com", "Hello World", headers);
複数の受信者で設定が容易になります。 リンクのコピーリンクがクリップボードにコピーされました!
Map<String, Object> headers = new HashMap<String, Object>();
headers.put("to", "davsclaus@apache.org ; jstrachan@apache.org ; ningjiang@apache.org");
Map<String, Object> headers = new HashMap<String, Object>();
headers.put("to", "davsclaus@apache.org ; jstrachan@apache.org ; ningjiang@apache.org");
; を区切り文字として使用します。
送信者名と電子メールの設定 リンクのコピーリンクがクリップボードにコピーされました!
email> の形式で指定して、受信者の名前とメールアドレスの両方を含めることができます。
Map headers = new HashMap();
map.put("To", "Claus Ibsen <davsclaus@apache.org>");
map.put("From", "James Strachan <jstrachan@apache.org>");
map.put("Subject", "Camel is cool");
Map headers = new HashMap();
map.put("To", "Claus Ibsen <davsclaus@apache.org>");
map.put("From", "James Strachan <jstrachan@apache.org>");
map.put("Subject", "Camel is cool");
SUN JavaMail リンクのコピーリンクがクリップボードにコピーされました!
- 一般的に MAIL フラグについて
サンプル リンクのコピーリンクがクリップボードにコピーされました!
mymailserver.com の 管理者 アカウントです。
from("jms://queue:subscription").to("smtp://admin@mymailserver.com?password=secret");
from("jms://queue:subscription").to("smtp://admin@mymailserver.com?password=secret");
consumer.delay を 60000 ミリ秒 = 60 秒として設定するのに特別なコンシューマーオプションを使用していることに注意してください。
from("imap://admin@mymailserver.com
password=secret&unseen=true&consumer.delay=60000")
.to("seda://mails");
from("imap://admin@mymailserver.com
password=secret&unseen=true&consumer.delay=60000")
.to("seda://mails");
添付ファイルを使用したメールの送信サンプル リンクのコピーリンクがクリップボードにコピーされました!
SSL の例 リンクのコピーリンクがクリップボードにコピーされました!
from("imaps://imap.gmail.com?username=YOUR_USERNAME@gmail.com&password=YOUR_PASSWORD"
+ "&delete=false&unseen=true&consumer.delay=60000").to("log:newmail");
from("imaps://imap.gmail.com?username=YOUR_USERNAME@gmail.com&password=YOUR_PASSWORD"
+ "&delete=false&unseen=true&consumer.delay=60000").to("log:newmail");
newmail ロガーカテゴリーに記録します。DEBUG ロギングを有効にしてサンプルを実行すると、ログの進捗をモニターできます。
2008-05-08 06:32:09,640 DEBUG MailConsumer - Connecting to MailStore imaps//imap.gmail.com:993 (SSL enabled), folder=INBOX 2008-05-08 06:32:11,203 DEBUG MailConsumer - Polling mailfolder: imaps//imap.gmail.com:993 (SSL enabled), folder=INBOX 2008-05-08 06:32:11,640 DEBUG MailConsumer - Fetching 1 messages. Total 1 messages. 2008-05-08 06:32:12,171 DEBUG MailConsumer - Processing message: messageNumber=[332], from=[James Bond <007@mi5.co.uk>], to=YOUR_USERNAME@gmail.com], subject=[... 2008-05-08 06:32:12,187 INFO newmail - Exchange[MailMessage: messageNumber=[332], from=[James Bond <007@mi5.co.uk>], to=YOUR_USERNAME@gmail.com], subject=[...
2008-05-08 06:32:09,640 DEBUG MailConsumer - Connecting to MailStore imaps//imap.gmail.com:993 (SSL enabled), folder=INBOX
2008-05-08 06:32:11,203 DEBUG MailConsumer - Polling mailfolder: imaps//imap.gmail.com:993 (SSL enabled), folder=INBOX
2008-05-08 06:32:11,640 DEBUG MailConsumer - Fetching 1 messages. Total 1 messages.
2008-05-08 06:32:12,171 DEBUG MailConsumer - Processing message: messageNumber=[332], from=[James Bond <007@mi5.co.uk>], to=YOUR_USERNAME@gmail.com], subject=[...
2008-05-08 06:32:12,187 INFO newmail - Exchange[MailMessage: messageNumber=[332], from=[James Bond <007@mi5.co.uk>], to=YOUR_USERNAME@gmail.com], subject=[...
添付サンプルでメールの消費 リンクのコピーリンクがクリップボードにコピーされました!
from("imaps://imap.gmail.com?username=YOUR_USERNAME@gmail.com&password=YOUR_PASSWORD"
+ "&delete=false&unseen=true&consumer.delay=60000").process(new MyMailProcessor());
from("imaps://imap.gmail.com?username=YOUR_USERNAME@gmail.com&password=YOUR_PASSWORD"
+ "&delete=false&unseen=true&consumer.delay=60000").process(new MyMailProcessor());
javax.activation.DataHandler を取得して標準 API を使用して添付を処理できるようにすることができます。
添付ファイルを使用したメールメッセージを分割する方法 リンクのコピーリンクがクリップボードにコピーされました!
camel-mail コンポーネントで Camel 2.10 以降は追加設定なしで提供されます。コードはクラス org.apache.camel.component.mail.SplitAttachmentsExpression にあり、ソースコードは ここにあります。
<split> <method beanType="org.apache.camel.component.mail.SplitAttachmentsExpression"/> <to uri="mock:split"/> </split>
<split>
<method beanType="org.apache.camel.component.mail.SplitAttachmentsExpression"/>
<to uri="mock:split"/>
</split>
byte[] として分割してメッセージボディーとして保存することもできます。これは、ブール値 true で式を作成して行います。以下に例を示します。
SplitAttachmentsExpression split = SplitAttachmentsExpression(true);
SplitAttachmentsExpression split = SplitAttachmentsExpression(true);
カスタム SearchTerm の使用 リンクのコピーリンクがクリップボードにコピーされました!
MailEndpoint で searchTerm を設定すると、不要なメールをフィルターリングできます。
<route> <from uri="imaps://mymailseerver?username=foo&password=secret&searchTerm.subjectOrBody=Camel"/> <to uri="bean:myBean"/> </route>
<route>
<from uri="imaps://mymailseerver?username=foo&password=secret&searchTerm.subjectOrBody=Camel"/>
<to uri="bean:myBean"/>
</route>
"searchTerm.subjectOrBody" をパラメーターキーとして使用して、メールの件名またはボディーで検索して、Camel という単語を含めることに注意してください。org.apache.camel.component.mail.SimpleSearchTerm クラスには、設定可能な数多くのオプションがあります。
<route> <from uri="imaps://mymailseerver?username=foo&password=secret&searchTerm.fromSentDate=now-24h"/> <to uri="bean:myBean"/> </route>
<route>
<from uri="imaps://mymailseerver?username=foo&password=secret&searchTerm.fromSentDate=now-24h"/>
<to uri="bean:myBean"/>
</route>
<route> <from uri="imaps://mymailseerver?username=foo&password=secret&searchTerm.subject=Camel&searchTerm.fromSentDate=now-24h"/> <to uri="bean:myBean"/> </route>
<route>
<from uri="imaps://mymailseerver?username=foo&password=secret&searchTerm.subject=Camel&searchTerm.fromSentDate=now-24h"/>
<to uri="bean:myBean"/>
</route>
| オプション | デフォルト | 説明 |
|---|---|---|
unseen
|
true
|
未確認のメールのみで制限するかどうか。 |
subjectOrBody
|
null
|
単語を含む対象またはボディーで制限します。 |
subject
|
null
|
サブジェクトには という単語が含まれている必要があります。 |
body
|
null
|
本文には という単語が含まれている必要があります。 |
from
|
null
|
メールは、指定した電子メールパターンから取得する必要があります。 |
to
|
null
|
メールは特定のメールパターンにする必要があります。 |
fromSentDate
|
null
|
メールは、指定した日付または等しい(GE)後に送信する必要があります。日付パターンは yyyy-MM-dd HH:mm:SS です。たとえば、2012-01- 01 00:00:00 を 2012 年以降の年から使用します。現在のタイムスタンプ にはnow を使用できます。now 構文はオプションのオフセットをサポートします。これは、数値で + または - のいずれかとして指定できます。たとえば、過去 24 時間の場合は、now - 24h を使用するか、スペース now-24h なしで使用できます。Camel は時間、分、秒の省略形をサポートすることに注意してください。
|
toSentDate
|
null
|
メールは、指定した日付の前または等しい(BE)に送信する必要があります。日付パターンは yyyy-MM-dd HH:mm:SS です。たとえば、2012-01- 01 00:00:00 を 2012 年前に使用します。現在のタイムスタンプ にはnow を使用できます。now 構文はオプションのオフセットをサポートします。これは、数値で + または - のいずれかとして指定できます。たとえば、過去 24 時間の場合は、now - 24h を使用するか、スペース now-24h なしで使用できます。Camel は時間、分、秒の省略形をサポートすることに注意してください。
|
SimpleSearchTerm は POJO から簡単に設定できるように設計されています。そのため、XML で <bean> スタイルを使用して設定することもできます。
<bean id="mySearchTerm" class="org.apache.camel.component.mail.SimpleSearchTerm"> <property name="subject" value="Order"/> <property name="to" value="acme-order@acme.com"/> <property name="fromSentDate" value="now"/> </bean>
<bean id="mySearchTerm" class="org.apache.camel.component.mail.SimpleSearchTerm">
<property name="subject" value="Order"/>
<property name="to" value="acme-order@acme.com"/>
<property name="fromSentDate" value="now"/>
</bean>
<route> <from uri="imaps://mymailseerver?username=foo&password=secret&searchTerm=#mySearchTerm"/> <to uri="bean:myBean"/> </route>
<route>
<from uri="imaps://mymailseerver?username=foo&password=secret&searchTerm=#mySearchTerm"/>
<to uri="bean:myBean"/>
</route>
org.apache.camel.component.mail. SearchTermBuilder クラスを使用して複合 SearchTerm を構築するビルダークラスがあります。これにより、次のような複雑な用語を作成できます。
第103章 マスターコンポーネント リンクのコピーリンクがクリップボードにコピーされました!
概要
Dependencies リンクのコピーリンクがクリップボードにコピーされました!
fabric-camel 機能がインストールされていることを確認する必要があります。
my-master-profile というプロファイルを使用している場合は、以下のコンソールコマンドを入力して fabric-camel 機能を追加します。
karaf@root> fabric:profile-edit --features fabric-camel my-master-profile
karaf@root> fabric:profile-edit --features fabric-camel my-master-profile
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
master:ClusterID:EndpointURI[?Options]
master:ClusterID:EndpointURI[?Options]
EndpointURI がファブリックレジストリーに公開され、ClusterId クラスターに関連付けられます。
URI オプション リンクのコピーリンクがクリップボードにコピーされました!
EndpointURI に適用されます。
マスターコンポーネントの使用方法 リンクのコピーリンクがクリップボードにコピーされました!
seda:bar エンドポイントから消費できる Master エンドポイントのクラスターを設定するには、以下の手順を実行します。
- 以下の URI でマスターエンドポイントを定義します(クラスター内の各エンドポイントは まったく 同じ URI を使用します)。
master:mysedalock:seda:bar
master:mysedalock:seda:barCopy to Clipboard Copied! Toggle word wrap Toggle overflow クラスター内の各マスターエンドポイントは、mysedalockロックを取得しようとします(Zookeeper レジストリーのキーとして実装されます)。ロックの取得に成功するマスターエンドポイントはアクティブ(マスター)になり、seda:barエンドポイントからメッセージの使用を開始します。他の Master エンドポイントは待機状態に入り、ロック(スレーブ)の試行を続行します。 - マスターエンドポイントをデプロイするプロファイルには、
fabric-camel機能を含めるようにしてください。 - Blueprint XML では、以下のように Camel ルートの開始時に Master エンドポイントを定義できます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
JMS ActiveMQ ブローカーをポーリングするマスター/スレーブクラスターの例 リンクのコピーリンクがクリップボードにコピーされました!
FABRIC.DEMO から消費できる Master エンドポイントで始まります。
ActiveMQ ブローカーからメッセージをポーリングするクラスターを作成する手順 リンクのコピーリンクがクリップボードにコピーされました!
- ファブリックがない場合は、以下のコンソールコマンドを入力して作成します。
JBossFuse:karaf@root> fabric:create --new-user AdminUser --new-user-password AdminPass --zookeeper-password ZooPass --wait-for-provisioning
JBossFuse:karaf@root> fabric:create --new-user AdminUser --new-user-password AdminPass --zookeeper-password ZooPass --wait-for-provisioningCopy to Clipboard Copied! Toggle word wrap Toggle overflow --new-userおよび--new-user-passwordオプションは、新しい管理者ユーザーの認証情報を指定します。Zookeeper パスワードは、Fabric レジストリーサービス(/fabric下のすべてのノード)の機密データを保護するために使用されます。注記ローカルマシンで VPN (仮想プライベートネットワーク)を使用する場合は、ローカルコンテナーの使用中にファブリックを作成し、ログオフしたままに VPN をログに記録することが推奨されます。ローカル Fabric Server は、固定 IP アドレスまたはホスト名に永続的に関連付けられます。ファブリックの作成時に VPN が有効になっている場合、基礎となる Java ランタイムは、永続的なローカルホスト名ではなく VPN ホスト名を検出して使用することができます。これは、マルチホームマシンでも問題になる可能性があります。ホスト名について絶対的に確認するには、IP アドレスを明示的に指定できます。Fabric Guide の Creating a New Fabric の章を参照 してください。 - この例では、Apache ActiveMQ ブローカーの実行中のインスタンスにアクセスでき、ブローカーの OpenWire コネクターの TCP ポートを知っている必要があります。たとえば、以下のいずれかの方法で ActiveMQ ブローカーにアクセスできます。
- JBoss Fuse のクリーンインストールでファブリックを作成したばかりです(コールド再起動後)。この場合、
rootコンテナーはデフォルトでjboss-fuse-fullプロファイルを含める必要があります。以下のようにfabric:container-listコンソールコマンドを入力して、このケースを確認できます。JBossFuse:karaf@root> fabric:container-list [id] [version] [connected] [profiles] [provision status] root* 1.0 true fabric, fabric-ensemble-0000-1, jboss-fuse-full success
JBossFuse:karaf@root> fabric:container-list [id] [version] [connected] [profiles] [provision status] root* 1.0 true fabric, fabric-ensemble-0000-1, jboss-fuse-full successCopy to Clipboard Copied! Toggle word wrap Toggle overflow デフォルトでは、jboss-fuse-fullプロファイルはポート61616でリッスンする ActiveMQ ブローカーをインスタンス化します。現在の例ではこのブローカーを使用できます。 - ルートコンテナー(またはその他のコンテナー)で実行されているブローカーがない場合、コンソールプロンプトで以下の fabric コマンドを入力して、ブローカーを新しいファブリック子コンテナー
broker1にすばやくインストールできます。JBossFuse:karaf@root> fabric:container-create-child --profile mq-default root broker1
JBossFuse:karaf@root> fabric:container-create-child --profile mq-default root broker1Copy to Clipboard Copied! Toggle word wrap Toggle overflow この場合、ブラウザーベースの Fuse 管理コンソールを使用して、ブローカーの OpenWire コネクターの TCP ポートを検出できます。
- Master コンポーネントを使用する単純な Apache Camel ルートをデプロイするために使用される
master-exampleプロファイルを作成します。以下のコンソールコマンドを実行してプロファイルを作成します。JBossFuse:karaf@root> fabric:profile-create --parents default master-example
JBossFuse:karaf@root> fabric:profile-create --parents default master-exampleCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 必要な Karaf 機能を
master-exampleプロファイルに追加します。以下のコンソールコマンドを入力します。fabric:profile-edit --features fabric-camel master-example fabric:profile-edit --features activemq-camel master-example
fabric:profile-edit --features fabric-camel master-example fabric:profile-edit --features activemq-camel master-exampleCopy to Clipboard Copied! Toggle word wrap Toggle overflow master-exampleプロファイルで、簡単な Camel ルートをリソースとして定義します。ビルトインテキストエディターを呼び出して、以下のようにcamel.xmlの新しいリソースを作成します。fabric:profile-edit --resource camel.xml master-example
fabric:profile-edit --resource camel.xml master-exampleCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の内容を組み込みテキストエディターにコピーして貼り付けます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow OpenWirePort をブローカーの OpenWire コネクターのポート番号に置き換え、UserName および Password をコンテナー上の有効な JAAS クレデンシャルに置き換えることで、ルート設定をカスタマイズするようにしてください(たとえば、これらの手順の 手順 1 で作成した AdminUser および AdminPass クレデンシャルを置き換えることができます)。テキストエディターを保存して終了するには、Ctrl-S, Ctrl-X と入力します。camel.xmlリソースを OSGi バンドルとしてデプロイするようにmaster-exampleプロファイルを設定します。以下のコンソールコマンドを入力し、master-exampleエージェントプロパティーに新しいエントリーを作成します。fabric:profile-edit --bundles blueprint:profile:camel.xml master-example
fabric:profile-edit --bundles blueprint:profile:camel.xml master-exampleCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記blueprint:接頭辞は Fabric に対して、指定されたリソースを Blueprint XML ファイルとしてデプロイするように指示します。profile:接頭辞は Fabric に対して、リソース(現在のプロファイルの現在のバージョン)の場所を指示します。master-exampleプロファイルをクラスターとしてデプロイできるように、新しい子コンテナー 2 つを作成します(1 つのマスターとスレーブ 1 つ)。以下のコンソールコマンドを入力します。fabric:container-create-child root child 2
fabric:container-create-child root child 2Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 以下のように、
master-exampleプロファイルとmq-clientプロファイルの両方を各子コンテナーにデプロイします。fabric:container-change-profile child1 master-example mq-client fabric:container-change-profile child2 master-example mq-client
fabric:container-change-profile child1 master-example mq-client fabric:container-change-profile child2 master-example mq-clientCopy to Clipboard Copied! Toggle word wrap Toggle overflow - メッセージをブローカーの
FABRIC.DEMOキューに送信すると、メッセージはデプロイされたマスターエンドポイントの 1 つ(および 1 つだけ)によって消費されます。たとえば、ブラウザーベースの Fuse Management コンソールを使用して、メッセージをブローカーに簡単に作成および送信できます。 - 現在のマスターをホストするコンテナーを停止する場合(最初に
child1コンテナー)、スレーブは新規マスター(child2コンテナー内)に昇格され、FABRIC.DEMOキューからのメッセージの消費を開始します。たとえば、child2に現在のマスターが含まれていると仮定すると、以下のコンソールコマンドを入力して停止できます。fabric:container-stop child2
fabric:container-stop child2Copy to Clipboard Copied! Toggle word wrap Toggle overflow
OSGi バンドルプラグインの設定 リンクのコピーリンクがクリップボードにコピーされました!
Import-Package バンドルヘッダーを設定する必要があります。
io.fabric8.zookeeper
io.fabric8.zookeeper
例103.1 Maven バンドルプラグインの設定
第104章 メトリクス リンクのコピーリンクがクリップボードにコピーされました!
メトリクスコンポーネント リンクのコピーリンクがクリップボードにコピーされました!
MetricsRoutePolicyFactory も提供します。これにより、codehale メトリクスを使用してルート統計を公開できます。詳細は、ページ下部を参照してください。
pom.xml に追加する必要があります。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
metrics:[ meter | counter | histogram | timer ]:metricname[?options]
metrics:[ meter | counter | histogram | timer ]:metricname[?options]
metric Registry リンクのコピーリンクがクリップボードにコピーされました!
MetricRegistry を使用し、Slf4jReporter と 60 秒のレポート間隔を使用します。デフォルトレジストリーは、Camel レジストリーで metricRegistry という名前の Bean を提供することで、カスタムレジストリーに置き換えることができます。たとえば、Spring Java Configuration を使用します。
MetricRegistry レポートに内部スレッドを使用します。バージョン 3.0.1 には、ユーザーが終了時にクリーンアップするパブリック API はありません。そのため、Camel Metrics Component を使用すると、Java クラ出力ダーがリークし、OutOfMemoryErrors が発生する可能性があります。
使用方法 リンクのコピーリンクがクリップボードにコピーされました!
Headers リンクのコピーリンクがクリップボードにコピーされました!
CamelMetricsName を使用して上書きできます。
from("direct:in")
.setHeader(MetricsConstants.HEADER_METRIC_NAME, constant("new.name"))
.to("metrics:counter:name.not.used")
.to("direct:out");
from("direct:in")
.setHeader(MetricsConstants.HEADER_METRIC_NAME, constant("new.name"))
.to("metrics:counter:name.not.used")
.to("direct:out");
name.not.used ではなく、new.name という名前のカウンターを更新します。
warn を使用してログエントリーを書き込みます。
メトリクスタイプのカウンター リンクのコピーリンクがクリップボードにコピーされました!
metrics:counter:metricname[?options]
metrics:counter:metricname[?options]
オプション リンクのコピーリンクがクリップボードにコピーされました!
|
名前
|
デフォルト
|
説明
|
|
Increment
|
-
|
カウンターに追加する長い値
|
|
decrement
|
-
|
カウンターから減算する長い値
|
increment または decrement が定義されていない場合、カウンター値は 1 つずつ増えます。increment と decrement の両方が定義されている場合は、インクリメント操作のみが呼び出されます。
// update counter simple.counter by 7
from("direct:in")
.to("metric:counter:simple.counter?increment=7")
.to("direct:out");
// update counter simple.counter by 7
from("direct:in")
.to("metric:counter:simple.counter?increment=7")
.to("direct:out");
// increment counter simple.counter by 1
from("direct:in")
.to("metric:counter:simple.counter")
.to("direct:out");
// increment counter simple.counter by 1
from("direct:in")
.to("metric:counter:simple.counter")
.to("direct:out");
// decrement counter simple.counter by 3
from("direct:in")
.to("metric:counter:simple.counter?decrement=3")
.to("direct:out");
// decrement counter simple.counter by 3
from("direct:in")
.to("metric:counter:simple.counter?decrement=3")
.to("direct:out");
Headers リンクのコピーリンクがクリップボードにコピーされました!
increment および decrement の値を上書きするために使用できます。
|
名前
|
説明
|
想定されるタイプ
|
|
CamelMetricsCounterIncrement
|
URI のインクリメント値を上書きします。
|
Long
|
|
CamelMetricsCounterDecrement
|
URI のデクリメント値の上書き
|
Long
|
// update counter simple.counter by 417
from("direct:in")
.setHeader(MetricsConstants.HEADER_COUNTER_INCREMENT, constant(417L))
.to("metric:counter:simple.counter?increment=7")
.to("direct:out");
// update counter simple.counter by 417
from("direct:in")
.setHeader(MetricsConstants.HEADER_COUNTER_INCREMENT, constant(417L))
.to("metric:counter:simple.counter?increment=7")
.to("direct:out");
// updates counter using simple language to evaluate body.length
from("direct:in")
.setHeader(MetricsConstants.HEADER_COUNTER_INCREMENT, simple("${body.length}"))
.to("metrics:counter:body.length")
.to("mock:out");
// updates counter using simple language to evaluate body.length
from("direct:in")
.setHeader(MetricsConstants.HEADER_COUNTER_INCREMENT, simple("${body.length}"))
.to("metrics:counter:body.length")
.to("mock:out");
メトリックのタイプヒストグラム リンクのコピーリンクがクリップボードにコピーされました!
metrics:histogram:metricname[?options]
metrics:histogram:metricname[?options]
オプション リンクのコピーリンクがクリップボードにコピーされました!
|
名前
|
デフォルト
|
説明
|
|
value
|
-
|
ヒストグラムで使用する値
|
value が設定されていない場合、ヒストグラムには何も追加されず、警告が記録されます。
// adds value 9923 to simple.histogram
from("direct:in")
.to("metric:histogram:simple.histogram?value=9923")
.to("direct:out");
// adds value 9923 to simple.histogram
from("direct:in")
.to("metric:histogram:simple.histogram?value=9923")
.to("direct:out");
// nothing is added to simple.histogram; warning is logged
from("direct:in")
.to("metric:histogram:simple.histogram")
.to("direct:out");
// nothing is added to simple.histogram; warning is logged
from("direct:in")
.to("metric:histogram:simple.histogram")
.to("direct:out");
Headers リンクのコピーリンクがクリップボードにコピーされました!
|
名前
|
説明
|
想定されるタイプ
|
|
CamelMetricsHistogramValue
|
URI のヒストグラム値の上書き
|
Long
|
// adds value 992 to simple.histogram
from("direct:in")
.setHeader(MetricsConstants.HEADER_HISTOGRAM_VALUE, constant(992L))
.to("metric:histogram:simple.histogram?value=700")
.to("direct:out")
// adds value 992 to simple.histogram
from("direct:in")
.setHeader(MetricsConstants.HEADER_HISTOGRAM_VALUE, constant(992L))
.to("metric:histogram:simple.histogram?value=700")
.to("direct:out")
メトリックタイプのメーター リンクのコピーリンクがクリップボードにコピーされました!
metrics:meter:metricname[?options]
metrics:meter:metricname[?options]
オプション リンクのコピーリンクがクリップボードにコピーされました!
|
名前
|
デフォルト
|
説明
|
|
mark
|
-
|
マークとして使用する長い値
|
mark が設定されていない場合、meter.mark() は引数なしで呼び出されます。
// marks simple.meter without value
from("direct:in")
.to("metric:simple.meter")
.to("direct:out");
// marks simple.meter without value
from("direct:in")
.to("metric:simple.meter")
.to("direct:out");
// marks simple.meter with value 81
from("direct:in")
.to("metric:meter:simple.meter?mark=81")
.to("direct:out");
// marks simple.meter with value 81
from("direct:in")
.to("metric:meter:simple.meter?mark=81")
.to("direct:out");
Headers リンクのコピーリンクがクリップボードにコピーされました!
mark 値を上書きできます。
|
名前
|
説明
|
想定されるタイプ
|
|
CamelMetricsMeterMark
|
URI のマーク値の上書き
|
Long
|
// updates meter simple.meter with value 345
from("direct:in")
.setHeader(MetricsConstants.HEADER_METER_MARK, constant(345L))
.to("metric:meter:simple.meter?mark=123")
.to("direct:out");
// updates meter simple.meter with value 345
from("direct:in")
.setHeader(MetricsConstants.HEADER_METER_MARK, constant(345L))
.to("metric:meter:simple.meter?mark=123")
.to("direct:out");
メトリクスタイプタイマー リンクのコピーリンクがクリップボードにコピーされました!
metrics:timer:metricname[?options]
metrics:timer:metricname[?options]
オプション リンクのコピーリンクがクリップボードにコピーされました!
|
名前
|
デフォルト
|
説明
|
|
action
|
-
|
start または stop
|
action または無効な値が指定されていない場合、警告はタイマー更新なしでログに記録されます。実行中のタイマーまたは stop でアクション start が呼び出されている場合は、何も更新されず、警告が記録されます。
// measure time taken by route "calculate"
from("direct:in")
.to("metrics:timer:simple.timer?action=start")
.to("direct:calculate")
.to("metrics:timer:simple.timer?action=stop");
// measure time taken by route "calculate"
from("direct:in")
.to("metrics:timer:simple.timer?action=start")
.to("direct:calculate")
.to("metrics:timer:simple.timer?action=stop");
TimerContext オブジェクトは、異なる Metrics コンポーネント呼び出し間で Exchange プロパティーとして保存されます。
Headers リンクのコピーリンクがクリップボードにコピーされました!
|
名前
|
説明
|
想定されるタイプ
|
|
CamelMetricsTimerAction
|
URI でのタイマーアクションの上書き
|
org.apache.camel.component.metrics.timer.TimerEndpoint.TimerAction
|
// sets timer action using header
from("direct:in")
.setHeader(MetricsConstants.HEADER_TIMER_ACTION, TimerAction.start)
.to("metric:timer:simple.timer")
.to("direct:out");
// sets timer action using header
from("direct:in")
.setHeader(MetricsConstants.HEADER_TIMER_ACTION, TimerAction.start)
.to("metric:timer:simple.timer")
.to("direct:out");
MetricsRoutePolicyFactory リンクのコピーリンクがクリップボードにコピーされました!
CamelContext に追加します。
context.addRoutePolicyFactory(new MetricsRoutePolicyFactory());
context.addRoutePolicyFactory(new MetricsRoutePolicyFactory());
<!-- use camel-metrics route policy to gather metrics for all routes --> <bean id="metricsRoutePolicyFactory" class="org.apache.camel.component.metrics.routepolicy.MetricsRoutePolicyFactory"/>
<!-- use camel-metrics route policy to gather metrics for all routes -->
<bean id="metricsRoutePolicyFactory" class="org.apache.camel.component.metrics.routepolicy.MetricsRoutePolicyFactory"/>
MetricsRoutePolicyFactory および MetricsRoutePolicy は以下のオプションをサポートします。
|
名前
|
デフォルト
|
説明
|
useJmx
|
false
|
com.codahale.metrics.JmxReporter を使用して、詳細な統計を JMX に報告するかどうか。CamelContext で JMX が有効になっている場合、JMX ツリーのサービスタイプの下に MetricsRegistryService mbean が登録されていることに注意してください。この mbean には、統計を JSON 出力する 1 つのオペレーションがあります。useJmx を true に設定することは、統計タイプごとに詳細な mbeans が必要な場合にのみ必要です。
|
jmxDomain
|
org.apache.camel.metrics
|
JMX ドメイン名
|
prettyPrint
|
false
|
統計を json 形式で出力する際に pretty print を使用するかどうか。
|
metricsRegistry
|
|
共有
com.codahale.metrics.MetricRegistry の使用を許可します。指定しない場合は、Camel はこの CamelContext によって使用される共有インスタンスを作成します。
|
rateUnit
|
TimeUnit.SECONDS
|
メトリクスレポーターまたは統計を json 出力するときのレートに使用する単位。
|
durationUnit
|
TimeUnit.MILLISECONDS
|
メトリクスレポーターまたは統計を json 出力するときの期間に使用する単位。
|
namePattern
|
##name##.##routeId##.##type##
|
Camel 2.17: 使用する名前パターン。区切り文字としてドットを使用しますが、変更できます。
##name##、##routeId##、および ##type## の値は実際の値に置き換えられます。###name### は CamelContext の名前で、###routeId### はルートの名前、###type### は応答の値になります。
|
org.apache.camel.component.metrics.routepolicy.MetricsRegistryService から com.codahale.metrics.MetricRegistry を保持できます。
MetricRegistryService registryService = context.hasService(MetricsRegistryService.class);
if (registryService != null) {
MetricsRegistry registry = registryService.getMetricsRegistry();
...
}
MetricRegistryService registryService = context.hasService(MetricsRegistryService.class);
if (registryService != null) {
MetricsRegistry registry = registryService.getMetricsRegistry();
...
}
MetricsMessageHistoryFactory リンクのコピーリンクがクリップボードにコピーされました!
context.setMessageHistoryFactory(new MetricsMessageHistoryFactory());
context.setMessageHistoryFactory(new MetricsMessageHistoryFactory());
<!-- use camel-metrics message history to gather metrics for all messages being routed --> <bean id="metricsMessageHistoryFactory" class="org.apache.camel.component.metrics.messagehistory.MetricsMessageHistoryFactory"/>
<!-- use camel-metrics message history to gather metrics for all messages being routed -->
<bean id="metricsMessageHistoryFactory" class="org.apache.camel.component.metrics.messagehistory.MetricsMessageHistoryFactory"/>
| 名前 | デフォルト | 説明 |
|---|---|---|
useJmx | false | com.codahale.metrics.JmxReporter を使用して、詳細な統計を JMX に報告するかどうか。CamelContext で JMX が有効になっている場合、MetricsRegistryService MBean は JMX ツリーのサービスタイプの下に登録されることに注意してください。この MBean には、JSon を使用して統計を出力する 1 つの操作があります。useJmx を true に設定する必要があるのは、統計タイプごとに詳細な MBean が必要な場合のみです。 |
jmxDomain | org.apache.camel.metrics | JMX ドメイン名。 |
prettyPrint | false | JSon 形式で統計を出力するときに pretty print を使用するかどうか。 |
metricsRegistry | 共有 com.codahale.metrics.MetricRegistry を有効にします。指定がない場合は、Camel はこの CamelContext の共有インスタンスを作成します。 | |
rateUnit | TimeUnit.SECONDS | メトリクスレポーターのレートに使用する単位、または統計を JSon としてダンプする場合。 |
durationUnit | TimeUnit.MILLISECONDS | メトリクスレポーターまたは統計を JSon としてダンプするときの期間に使用する単位。 |
namePattern | ##name##.##routeId##.###id###.##type## | 使用する名前パターン。区切り文字としてドットを使用しますが、変更できます。##name##、##routeId##、##type##、および ###id### の値は、実際の値に置き換えられます。###name### は CamelContext の名前で、###routeId### パターンはルートの名前、###id### パターンはノード ID を表し、###type### は履歴の値になります。 |
MetricsMessageHistoryService service = context.hasService(MetricsMessageHistoryService.class); String json = service.dumpStatisticsAsJson();
MetricsMessageHistoryService service = context.hasService(MetricsMessageHistoryService.class);
String json = service.dumpStatisticsAsJson();
name=MetricsMessageHistoryService を使用して type=services ツリーに登録される JMX API です。
第105章 MINA2 - 非推奨 リンクのコピーリンクがクリップボードにコピーされました!
MINA 2 コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
sync=false に注意してください。camel-mina2 以降、すべてのコンシューマーエクスチェンジは InOut です。これは camel-mina とは異なります。
pom.xml に以下の依存関係を追加する必要があります。
Camel on EAP デプロイメント リンクのコピーリンクがクリップボードにコピーされました!
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
mina2:tcp://hostname[:port][?options] mina2:udp://hostname[:port][?options] mina2:vm://hostname[:port][?options]
mina2:tcp://hostname[:port][?options]
mina2:udp://hostname[:port][?options]
mina2:vm://hostname[:port][?options]
テキスト行 ベースのコーデックまたはオブジェクトシリアル化を代わりに使用する必要があるかどうかを判断するためにテキストラインフラグが使用されます。デフォルトでは、オブジェクトのシリアライズが使用されます。
ByteBuffer ベースのコーデックを使用します。
camel-mina はボディー content-essage ヘッダーとエクスチェンジプロパティーは送信されません。ただし、オプション transferExchange を使用すると、エクスチェンジ自体をネットワーク経由で転送できます。以下のオプションを参照してください。
?option=value&option=value&.. の形式で追加できます。
オプション リンクのコピーリンクがクリップボードにコピーされました!
| オプション | デフォルト値 | 説明 |
|---|---|---|
codec
|
null
|
Spring ApplicationContext などの名前付きの ProtocolCodecFactory インスタンスをレジストリーで参照できます。これはマーシャリングに使用されます。
|
disconnect
|
false
|
使用直後に Mina セッションから切断するかどうか。コンシューマーとプロデューサーの両方に使用できます。 |
textline
|
false
|
TCP にのみ使用されます。codec が指定されていない場合、このフラグを使用してテキスト行ベースのコーデックを示すことができます。指定されていない場合、または値が false の場合、Object Serialization は TCP 経由で想定されます。
|
textlineDelimiter
|
DEFAULT
|
TCP および textline=true にのみ使用されます。使用するテキスト行区切り文字を設定します。使用できる値は、DEFAULT、AUTO、WINDOWS、UNIX または MAC です。指定がない場合は、Camel は DEFAULT を使用します。この区切り文字は、テキストの最後をマークするために使用されます。
|
sync
|
true
|
endpoint を one-way または request-response として設定するための設定。 |
lazySessionCreation
|
true
|
Camel プロデューサーの開始時にリモートサーバーが稼働していない場合、セッションは遅延して例外を回避するために作成できます。 |
timeout
|
30000
|
リモートサーバーからの応答を待つ時間を指定するタイムアウトを設定できます。タイムアウト単位はミリ秒単位であるため、60000 は 60 秒です。タイムアウトは Mina プロデューサーにのみ使用されます。 |
encoding
|
JVM のデフォルト | TCP テキストラインコーデックおよび UDP プロトコルに使用するようにエンコーディング( charset 名)を設定できます。指定しない場合、Camel は JVM のデフォルト Charset を 使用します。 |
transferExchange
|
false
|
TCP にのみ使用されます。ボディーだけでなく、ネットワーク経由でエクスチェンジを転送することができます。以下のフィールドは転送されます:ボディー、Out body、Fault ボディー、In headers、Out ヘッダー、Fault ヘッダー、エクスチェンジプロパティー、エクスチェンジ例外。これには、オブジェクトが シリアライズ可能 である必要があります。Camel はシリアライズできないオブジェクトを除外し、WARN レベルでログに記録します。
|
minaLogger
|
false
|
Apache MINA ロギングフィルターを有効にできます。Apache MINA は、INFO レベルで slf4j ロギングを使用して、すべての入出力をログに記録します。
|
filters
|
null
|
Mina IoFilters のリストを設定して登録できます。フィルター は Bean 参照のコンマ区切りリストとして指定できます(例: \#filterBean1,#filterBean2)。各 Beanのタイプは org.apache.mina.common.IoFilter である必要があります。
|
encoderMaxLineLength
|
\-1
|
テキストプロトコルエンコーダーの最大行の長さを設定します。デフォルトでは、Mina 自体のデフォルト値が使用されます。これは Integer.MAX_VALUE です。
|
decoderMaxLineLength
|
\-1
|
テキストラインプロトコルデコーダーの最大行の長さを設定します。デフォルトでは、Mina itself のデフォルト値が使用されます。これは 1024 です。 |
maximumPoolSize
|
16 | TCP プロデューサーはスレッドセーフであり、同時実行性をはるかに向上します。このオプションを使用すると、同時プロデューサーのスレッドプールにスレッド数を設定できます。注記: Camel にはプールされたサービスがあり、すでにスレッドセーフであり、サポートされる同時実行性が保証されています。 |
allowDefaultCodec
|
true
|
mina コンポーネントは、両方が null の場合、codec が null で、テキストライン が false の場合にデフォルトの コーデック をインストールします。allowDefaultCodec を false に設定すると、mina コンポーネントがフィルターチェーンの最初の要素としてデフォルトのコーデックをインストールできなくなります。これは、SSL フィルターなど、フィルターチェーンの最初のフィルターを設定する必要があるシナリオで役立ちます。
|
disconnectOnNoReply
|
true
|
sync が有効になっている場合、返答がない場所で切断される必要がある場合は、このオプションは MinaConsumer を指示します。 |
noReplyLogLevel
|
WARN
|
sync が有効になっている場合、このオプションは MinaConsumer を決定し、送信する応答がない場合に使用するログレベルを指定します。値は FATAL、ERROR、INFO、DEBUG、OFF です。
|
orderedThreadPoolExecutor
|
true
|
順序付けられたスレッドプールを使用して、イベントが同じチャネルで順番に処理されるかどうか。 |
sslContextParameters
|
null
|
org.apache.camel.util.jsse.SSLContextParameters インスタンスを使用した SSL 設定。Using the JSSE Configuration Utility を参照してください。
|
autoStartTls
|
true
|
SSL ハンドシェイクを自動起動するかどうか。 |
cachedAddress
|
true
|
Camel 2.14: InetAddress を一度作成して再利用するかどうか。これを false に設定すると、ネットワークで DNS の変更を取得できます。 |
clientMode
|
false
|
Camel 2.15: コンシューマーのみ。clientMode が true の場合、mina コンシューマーはアドレスを TCP クライアントとして接続します。 |
カスタムコーデックの使用 リンクのコピーリンクがクリップボードにコピーされました!
camel-mina でカスタムコーデックを使用するには、Spring XML ファイルに Bean を作成するなどして、codec をレジストリーに登録する必要があります。次に、codec オプションを使用してコーデックの Bean ID を指定します。カスタムコーデックを持つ HL7 を参照してください。
sync=false を使用した例 リンクのコピーリンクがクリップボードにコピーされました!
from("mina2:tcp://localhost:" + port1 + "?textline=true&sync=false").to("mock:result");
from("mina2:tcp://localhost:" + port1 + "?textline=true&sync=false").to("mock:result");
sync=true の例 リンクのコピーリンクがクリップボードにコピーされました!
sync オプションを true に設定します。
template.requestBody () メソッドを使用してデータを送信し、応答を取得し、サンプルをテストします。応答が String であることが分かっているため、 String にキャストし、応答がプロセッサーコードロジックで動的に設定されているものであることをアサートできます。
String response = (String)template.requestBody("mina2:tcp://localhost:" + port2 + "?textline=true&sync=true", "World");
assertEquals("Bye World", response);
String response = (String)template.requestBody("mina2:tcp://localhost:" + port2 + "?textline=true&sync=true", "World");
assertEquals("Bye World", response);
Spring DSL を使用した例 リンクのコピーリンクがクリップボードにコピーされました!
<route>
<from uri="mina2:tcp://localhost:5555?textline=true"/>
<to uri="bean:myTCPOrderHandler"/>
</route>
<route>
<from uri="mina2:tcp://localhost:5555?textline=true"/>
<to uri="bean:myTCPOrderHandler"/>
</route>
myTCPOrderHandler を持つ Spring Bean がリクエストを処理し、応答を返します。たとえば、ハンドラー Bean は以下のように実装できます。
public String handleOrder(String payload) {
...
return "Order: OK"
}
public String handleOrder(String payload) {
...
return "Order: OK"
}
完了時にセッションを閉じる リンクのコピーリンクがクリップボードにコピーされました!
CamelMinaCloseSessionWhenComplete キーを持つヘッダーをブール値 true に追加する必要があります。
bye メッセージをクライアントに書き戻した後にセッションを閉じます。
メッセージの IoSession を取得します。 リンクのコピーリンクがクリップボードにコピーされました!
Mina2Constants.MINA_IOSESSION を使用してメッセージヘッダーから IoSession を取得し、キー Mina2Constants.MINA_LOCAL_ADDRESS キーでローカルホストアドレスとリモートホストアドレスを Mina2Constants.MINA_REMOTE_ADDRESS キーで取得することもできます。
Mina フィルターの設定 リンクのコピーリンクがクリップボードにコピーされました!
SslFilter などの一部の Mina フィルターを使用できます。カスタマイズされたフィルターを実装することもできます。codec および logger は、タイプ IoFilter の Mina フィルターとしても実装されることに注意してください。定義できるフィルターは、フィルターチェーンの最後に追加されます。つまり、codec および logger の後です。
- 以下も参照してください。
第106章 MLLP リンクのコピーリンクがクリップボードにコピーされました!
MLLP コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
- TCP サーバーを使用した Camel コンシューマー
- TCP クライアントを使用した Camel プロデューサー
pom.xml に追加する必要があります。
MLLP コンシューマー リンクのコピーリンクがクリップボードにコピーされました!
メッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
|
キー
|
MSH フィールド
|
例
|
CamelMllpLocalAddress
|
||
CamelMllpRemoteAddress
|
||
CamelMllpSendingApplication
|
MSH-3
|
APPA
|
CamelMllpSendingFacility
|
MSH-4
|
FACA
|
CamelMllpReceivingApplication
|
MSH-5
|
CAMEL
|
CamelMllpReceivingFacility
|
MSH-6
|
FACB
|
CamelMllpTimestamp
|
MSH-7
|
20150106235900
|
CamelMllpSecurity
|
MSH-8
|
|
CamelMllpMessageType
|
MSH-9
|
ADT^A04
|
CamelMllpEventType
|
MSH-9-1
|
AD4
|
CamelMllpTriggerEvent
|
MSH-9-2
|
A04
|
CamelMllpMessageControlId
|
MSH-10
|
12345
|
CamelMllpProcessingId
|
MSH-11
|
P
|
CamelMllpVersionId
|
MSH-12
|
2.3.1
|
CamelMllpCharset
|
MSH-18
|
String タイプです。ヘッダーの値がない場合、その値は null になります。
エクスチェンジプロパティー リンクのコピーリンクがクリップボードにコピーされました!
|
キー
|
|
例
|
CamelMllpAcknowledgement
|
||
CamelMllpAcknowledgementType
|
AR |
String タイプです。ヘッダーの値がない場合、その値は null になります。
コンシューマー設定:MLLP プロデューサー リンクのコピーリンクがクリップボードにコピーされました!
メッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
|
キー
|
MSH フィールド
|
例
|
CamelMllpLocalAddress
|
||
CamelMllpRemoteAddress
|
||
CamelMllpAcknowledgement
|
||
CamelMllpAcknowledgementType
|
AA
|
String タイプです。ヘッダーの値がない場合、その値は null になります。
第107章 Mock リンクのコピーリンクがクリップボードにコピーされました!
Mock コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
- 正しい数のメッセージが各エンドポイントで受信されます。
- 正しいペイロードが適切な順序で受信されます。
- メッセージは、一部の 式 を使用して注文テスト関数を作成し、順番にエンドポイントに到達します。
- メッセージは、特定のヘッダーに特定の値がある場合や、そのメッセージのパーツが XPath または XQuery Expression を評価するなど、一部の述語と一致するなど、何らかの述語に一致します。http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/Predicate.html
retainFirst と retainLast の 2 つあり、Mock エンドポイントがメモリー内に保持するメッセージの数を制限するために使用できます。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
mock:someName[?options]
mock:someName[?options]
?option=value&option=value&.. の形式で追加できます。
オプション リンクのコピーリンクがクリップボードにコピーされました!
| オプション | デフォルト | 説明 |
|---|---|---|
reportGroup
|
null
|
レポートに スループットロガー を使用するサイズ |
retainFirst
|
Camel 2.10: メモリーの最初の X 個のメッセージのみを保持します。
|
|
retainLast
|
Camel 2.10: 最後の X 個のメッセージのみをメモリーに保持します。
|
簡単な例 リンクのコピーリンクがクリップボードにコピーされました!
assertIsSatisfied () が呼び出されると 10 秒待機します。これは setResultWaitTime (millis) メソッドを設定することで設定できます。
assertPeriod の使用 リンクのコピーリンクがクリップボードにコピーされました!
assertIsSatisfied メソッドの 待機を停止し、続行します。つまり、新しいメッセージがモックエンドポイント(後でのみ)に到達すると、アサーションの結果には影響を与えません。その後の期間後に新しいメッセージが到達しないことをテストする場合は、以下のように setAssertPeriod メソッドを設定してこれを実行できます。
期待値の設定 リンクのコピーリンクがクリップボードにコピーされました!
| メソッド | 説明 |
|---|---|
| expectedMessageCount(int) | エンドポイントで想定されるメッセージ数を定義します。 |
| expectedMinimumMessageCount(int) | エンドポイントで想定されるメッセージの最小数を定義します。 |
| expectedBodiesReceived(...) | 受信すべき想定されるボディーを定義します(順番に)。 |
| expectedHeaderReceived(...) | 受信する必要のあるヘッダーを定義する |
| expectsAscending(Expression) | メッセージの順序を追加するには、指定の 式 を使用してメッセージを比較することで、メッセージが順番に受信されることを想定します。 |
| expectsDescending(Expression) | メッセージの順序を追加するには、指定の 式 を使用してメッセージを比較することで、メッセージが順番に受信されることを想定します。 |
| expectsNoDuplicates(Expression) |
重複メッセージが受信されないことを期待するには、式 を使用して各メッセージの一意の識別子を計算します。JMS を使用している場合は JMSMessageID やメッセージ内の一意の参照番号などになります。
|
resultEndpoint.expectedBodiesReceived("firstMessageBody", "secondMessageBody", "thirdMessageBody");
resultEndpoint.expectedBodiesReceived("firstMessageBody", "secondMessageBody", "thirdMessageBody");
特定のメッセージへの期待の追加 リンクのコピーリンクがクリップボードにコピーされました!
java.util.Listなどのゼロベースのインデックスを使用)、以下のコードを使用できます。
resultEndpoint.message(0).header("foo").isEqualTo("bar");
resultEndpoint.message(0).header("foo").isEqualTo("bar");
既存エンドポイントのモック化 リンクのコピーリンクがクリップボードにコピーされました!
adviceWith 機能を使用して、ユニットテストから指定のルートにあるすべてのエンドポイントをモック化できます。
mock:<endpoint> が指定されることに 注意してください(例: mock:direct:foo )。INFO レベルの Camel ログで、モックされるエンドポイントは以下のようになります。
INFO Adviced endpoint [direct://foo] with mock endpoint [mock:direct:foo]
INFO Adviced endpoint [direct://foo] with mock endpoint [mock:direct:foo]
ログ エンドポイントをモック化するには、以下を実行します。
camel-test コンポーネントを使用した既存エンドポイントのモック化 リンクのコピーリンクがクリップボードにコピーされました!
adviceWith を使用して Camel にエンドポイントをモックするように指示する代わりに、camel-test Test Kit を使用する際にこの動作を簡単に有効にできます。同じルートを以下のようにテストできます。isMockEndpoints メソッドから "*" を返すことに注意してください。これは、Camel にすべてのエンドポイントをモックするように指示します。すべての ログ エンドポイントのみをモック化したい場合は、代わりに log*" を返すことができます。
XML DSL を使用した既存エンドポイントのモック化 リンクのコピーリンクがクリップボードにコピーされました!
camel-test コンポーネントを使用しない場合(上記のように)、ルートに XML ファイルを使用する場合に別のアプローチを使用できます。解決策は、ユニットテストで使用する新しい XML ファイルを作成し、テストするルートを持つ目的の XML ファイルを含めることです。
camel-route.xml ファイルにルートがあるとします。
camel-route.xml ファイルが含まれ、org.apache.camel.impl.InterceptSendToMockEndpointStrategy クラスで Spring Bean を定義します。これは、Camel に対してすべてのエンドポイントをモック化するように指示します。
<!-- the Camel route is defined in another XML file --> <import resource="camel-route.xml"/> <!-- bean which enables mocking all endpoints --> <bean id="mockAllEndpoints" class="org.apache.camel.impl.InterceptSendToMockEndpointStrategy"/>
<!-- the Camel route is defined in another XML file -->
<import resource="camel-route.xml"/>
<!-- bean which enables mocking all endpoints -->
<bean id="mockAllEndpoints" class="org.apache.camel.impl.InterceptSendToMockEndpointStrategy"/>
test- camel-route.xml )を読み込みます。
<bean id="mockAllEndpoints" class="org.apache.camel.impl.InterceptSendToMockEndpointStrategy">
<constructor-arg index="0" value="log*"/>
</bean>
<bean id="mockAllEndpoints" class="org.apache.camel.impl.InterceptSendToMockEndpointStrategy">
<constructor-arg index="0" value="log*"/>
</bean>
エンドポイントのモック化および元のエンドポイントへの送信を省略する リンクのコピーリンクがクリップボードにコピーされました!
mockEndpointsAndSkip メソッドを使用できるようになりました。以下の例では、direct:foo と direct:bar の 2 つのエンドポイントへ の送信を省略します。
保持するメッセージ数の制限 リンクのコピーリンクがクリップボードにコピーされました!
retainFirst および retainLast を導入しました。これを使用して、最初と最後の エクスチェンジの N 分のみを保持するために使用できます。
MockEndpoint の getExchanges ( )メソッドおよび getReceivedExchanges () メソッドは、エクスチェンジの保持コピーのみを 返します。上記の例では、リストには 10 エクスチェンジ(最初の 5 つ、および最後の 5)が含まれます。retainFirst オプションおよび retainLast オプションには、使用可能な想定されるメソッドの制限もあります。たとえば、メッセージボディーやヘッダーなどで機能する予定のXXX メソッドは、保持済みメッセージでのみ動作します。上記の例では、10 個の保持済みメッセージのみについてテストできます。
到着時間でのテスト リンクのコピーリンクがクリップボードにコピーされました!
Date time = exchange.getProperty(Exchange.RECEIVED_TIMESTAMP, Date.class);
Date time = exchange.getProperty(Exchange.RECEIVED_TIMESTAMP, Date.class);
到達 して期待を設定できます。
mock.message(0).arrives().noLaterThan(2).seconds().beforeNext();
mock.message(0).arrives().noLaterThan(2).seconds().beforeNext();
mock.message(1).arrives().noLaterThan(2).seconds().afterPrevious();
mock.message(1).arrives().noLaterThan(2).seconds().afterPrevious();
mock.message(1).arrives().between(1, 4).seconds().afterPrevious();
mock.message(1).arrives().between(1, 4).seconds().afterPrevious();
mock.allMessages().arrives().noLaterThan(1).seconds().beforeNext();
mock.allMessages().arrives().noLaterThan(1).seconds().beforeNext();
秒 を使用しますが、Camel には ミリ 秒、および 分 もあります。
第108章 MongoDB リンクのコピーリンクがクリップボードにコピーされました!
Camel MongoDB コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
pom.xml に以下の依存関係を追加する必要があります。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
mongodb:connectionBean?database=databaseName&collection=collectionName&operation=operationName[&moreOptions...]
mongodb:connectionBean?database=databaseName&collection=collectionName&operation=operationName[&moreOptions...]
エンドポイントオプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | デフォルト値 | 説明 | プロデューサー | Tailable Cursor コンシューマー |
|---|---|---|---|---|
database
|
none |
必須。このエンドポイントがバインドされるデータベースの名前。動的性が有効で、 CamelMongoDbDatabase ヘッダーが設定されていない限り、すべての操作はこのデータベースに対して実行されます。
|
(/) | (/) |
コレクション
|
none |
必須(getDbStats およびコマンド操作の検証)。 このエンドポイントがバインドされるコレクションの名前(指定されたデータベース内)。動的性が有効で、 CamelMongoDbDatabase ヘッダーが設定されていない限り、ll 操作はこのデータベースに対して実行されます。
|
(/) | (/) |
collectionIndex
|
none | Camel 2.12: 新しいコレクションを挿入する際に作成するオプションの 単一フィールド インデックス または複合インデックス。 | (/) | |
operation
|
none |
プロデューサーに必要です。このエンドポイントが実行する操作の ID。以下を選択します。
|
(/) | |
createCollection
|
true |
エンドポイントの初期中にコレクションが存在しない場合に、そのコレクションを MongoDB データベースに自動作成するかどうかを決定します。このオプションが false でコレクションが存在しない場合は、初期例外が出力されます。
|
(/) | |
writeConcern
|
none (ドライバーのデフォルト) |
MongoDB のパラメーター化された値から操作に WriteConcern を設定します。WriteConcern.valueOf (String) を参照してください。
|
(/) | |
writeConcernRef
|
none |
レジストリーに存在するカスタム WriteConcern を設定します。Bean 名を指定します。
|
(/) | |
readPreference
|
none |
Camel 2.12.4、2.13.1、および 2.14.0 で利用可能:接続に ReadPreference を設定し ます。許可される値は、ReadPreference#valueOf () パブリック API でサポートされる値です。現在、MongoDB-Java-Driver バージョン 2.12.0 の時点で、サポートされる値は
primary、primaryPreferred、secondary、および secondaryPreferred です。nearestこのオプションの詳細については、の ドキュメント を参照してください。
|
(/) | |
dynamicity
|
false |
true に設定すると、エンドポイントは受信メッセージの CamelMongoDbDatabase ヘッダーおよび CamelMongoDbCollection ヘッダーを検査し、それらのいずれかが存在する場合は、その特定の操作に対してターゲットコレクションやデータベースが上書きされます。この機能が必要ない場合にすべてのエクスチェンジでルックアップがトリガーされないようにするには、デフォルトで false に設定します。
|
(/) | |
writeResultAsHeader
|
false |
Camel 2.10.3 および 2.11 で利用可能:書き込み操作(保存、更新、挿入など )で、ボディーを MongoDB によって返される WriteResult オブジェクトに置き換えるのではなく、入力ボディーを変更せず、CamelMongoWriteResult ヘッダー(constant MongoDbConstants.WRITERESULT)に WriteResult を配置します。
|
(/) | |
outputType
|
DBObjectList の場合: findAll
DBObject その他のすべての操作の場合
|
Camel 2.16: プロデューサーの出力を
DBObjectList、DBObject または DBCursor の選択したタイプに変換します。
DBObjectList または DBCursor (出力をストリーミングするのに便利な場合があります)は、findAll に適用されます。DBObject その他のすべての操作に適用されます。
|
(/) | |
persistentTailTracking
|
false | Tailable Cursor コンシューマーの永続的なテールトラッキングを有効または無効にします。詳細は、以下を参照してください。 | (/) | |
persistentId
|
none | 永続的なテールトラッキングが有効な場合は必須です。この永続テールトラッカーの ID。これは、テールトラッキングコレクションでレコードを残りから分離します。 | (/) | |
tailTrackingIncreasingField
|
none | 永続的なテールトラッキングが有効な場合は必須です。増加する性質の着信レコードの相関フィールドであり、生成されるたびに tail カーソルを配置するために使用されます。カーソルは type: tailTrackIncreasingField > lastValue のクエリーで作成されます(lastValue は永続的なテールトラッキングから復元される可能性があります)。型は Integer、Date、String などにすることができます。注記:現在の時点でドット表記はサポートされていません。そのため、フィールドはドキュメントの最上位に置かれます。 | (/) | |
cursorRegenerationDelay
|
1000ms | MongoDB サーバーによって強制終了されてから、エンドポイントがカーソルの再生成を待機する時間を指定します(通常の動作)。 | (/) | |
tailTrackDb
|
エンドポイントの と同じです。 | 永続的なテールトラッカーがランタイム情報を保存するデータベース。 | (/) | |
tailTrackCollection
|
camelTailTracking | 永続テールトラッカーがランタイム情報を保存するコレクション。 | (/) | |
tailTrackField
|
lastTrackingValue | 永続的なテールトラッカーが最後に追跡された値を保存するフィールド。 | (/) |
Spring XML でのデータベースの設定 リンクのコピーリンクがクリップボードにコピーされました!
サンプルルート リンクのコピーリンクがクリップボードにコピーされました!
MongoDB 操作 - プロデューサーエンドポイント リンクのコピーリンクがクリップボードにコピーされました!
クエリー操作 リンクのコピーリンクがクリップボードにコピーされました!
findById リンクのコピーリンクがクリップボードにコピーされました!
from("direct:findById")
.to("mongodb:myDb?database=flights&collection=tickets&operation=findById")
.to("mock:resultFindById");
from("direct:findById")
.to("mongodb:myDb?database=flights&collection=tickets&operation=findById")
.to("mock:resultFindById");
findOneByQuery リンクのコピーリンクがクリップボードにコピーされました!
DBObject 型であるか、DBObject に変換できる必要があります。JSON 文字列または Hashmap にすることができます。詳細は 、タイプ変換 を参照してください。
from("direct:findOneByQuery")
.to("mongodb:myDb?database=flights&collection=tickets&operation=findOneByQuery")
.to("mock:resultFindOneByQuery");
from("direct:findOneByQuery")
.to("mongodb:myDb?database=flights&collection=tickets&operation=findOneByQuery")
.to("mock:resultFindOneByQuery");
from("direct:findOneByQuery")
.setBody().constant("{ \"name\": \"Raul Kripalani\" }")
.to("mongodb:myDb?database=flights&collection=tickets&operation=findOneByQuery")
.to("mock:resultFindOneByQuery");
from("direct:findOneByQuery")
.setBody().constant("{ \"name\": \"Raul Kripalani\" }")
.to("mongodb:myDb?database=flights&collection=tickets&operation=findOneByQuery")
.to("mock:resultFindOneByQuery");
findAll リンクのコピーリンクがクリップボードにコピーされました!
findAll 操作は、クエリーに一致するすべてのドキュメント、またはまったく none を返します。この場合、コレクションに含まれるすべてのドキュメントが返されます。クエリーオブジェクトは IN メッセージボディー から抽出され ます。つまり、DBObject 型であるか、DBObject に変換できる必要があります。JSON 文字列または Hashmap にすることができます。詳細は 、タイプ変換 を参照してください。
from("direct:findAll")
.to("mongodb:myDb?database=flights&collection=tickets&operation=findAll")
.to("mock:resultFindAll");
from("direct:findAll")
.to("mongodb:myDb?database=flights&collection=tickets&operation=findAll")
.to("mock:resultFindAll");
from("direct:findAll")
.setBody().constant("{ \"name\": \"Raul Kripalani\" }")
.to("mongodb:myDb?database=flights&collection=tickets&operation=findAll")
.to("mock:resultFindAll");
from("direct:findAll")
.setBody().constant("{ \"name\": \"Raul Kripalani\" }")
.to("mongodb:myDb?database=flights&collection=tickets&operation=findAll")
.to("mock:resultFindAll");
| ヘッダーのキー | クイック定数 | 説明 (MongoDB API ドキュメントから抜粋) | 想定されるタイプ |
|---|---|---|---|
CamelMongoDbNumToSkip
|
MongoDbConstants.NUM_TO_SKIP
|
カーソルの先頭にある特定数の要素を破棄します。 | int/Integer |
CamelMongoDbLimit
|
MongoDbConstants.LIMIT
|
返された要素の数を制限します。 | int/Integer |
CamelMongoDbBatchSize
|
MongoDbConstants.BATCH_SIZE
|
1 つのバッチで返される要素の数を制限します。カーソルは通常、結果オブジェクトのバッチを取得してローカルに保存します。batchSize が正の場合、取得したオブジェクトの各バッチのサイズを表します。これを調整して、パフォーマンスを最適化し、データ転送を制限することができます。batchSize が負の値の場合、最大バッチサイズ制限(通常は 4MB)内に一致する、返されるオブジェクト数に制限し、カーソルは閉じられます。たとえば、batchSize が -10 の場合、サーバーは最大 10 ドキュメントを返し、最大で 4MB に該当するドキュメントを返し、カーソルを閉じます。この機能は、ドキュメントが最大サイズ内に収まる必要がある点で limit ()とは異なるため、カーソルサーバー側を閉じるために要求を送信する必要がなくなります。バッチサイズは、カーソルの反復後にも変更できます。この場合、設定は次のバッチ取得に適用されます。 | int/Integer |
CamelMongoDbSortBy ヘッダーでソートを記述する関連する DBObject を配置することで sortBy 条件を設定することもできます。MongoDbConstants.SORT_BY.
findAll 操作は以下の OUT ヘッダーも返し、ページングを使用している場合に結果ページを反復できるようにします。
| ヘッダーのキー | クイック定数 | 説明 (MongoDB API ドキュメントから抜粋) | データのタイプ |
|---|---|---|---|
CamelMongoDbResultTotalSize
|
MongoDbConstants.RESULT_TOTAL_SIZE
|
クエリーに一致するオブジェクトの数。これは、制限/スキップを考慮していません。 | int/Integer |
CamelMongoDbResultPageSize
|
MongoDbConstants.RESULT_PAGE_SIZE
|
クエリーに一致するオブジェクトの数。これは、制限/スキップを考慮していません。 | int/Integer |
count リンクのコピーリンクがクリップボードにコピーされました!
Long を Out メッセージボディーとして返すコレクション内のオブジェクトの合計数を返します。以下の例では、dynamicCollectionName コレクションのレコード数をカウントします。動的性が有効になっている方法、その結果、操作は notableScientists コレクションに対しては実行されず、dynamicCollectionName コレクションに対しては実行されません。
// from("direct:count").to("mongodb:myDb?database=tickets&collection=flights&operation=count&dynamicity=true");
Long result = template.requestBodyAndHeader("direct:count", "irrelevantBody", MongoDbConstants.COLLECTION, "dynamicCollectionName");
assertTrue("Result is not of type Long", result instanceof Long);
// from("direct:count").to("mongodb:myDb?database=tickets&collection=flights&operation=count&dynamicity=true");
Long result = template.requestBodyAndHeader("direct:count", "irrelevantBody", MongoDbConstants.COLLECTION, "dynamicCollectionName");
assertTrue("Result is not of type Long", result instanceof Long);
com.mongodb.DBObject オブジェクトをクエリーとして提供でき、操作はこの基準に一致するドキュメントの数を返します。
DBObject query = ...
Long count = template.requestBodyAndHeader("direct:count", query, MongoDbConstants.COLLECTION, "dynamicCollectionName");
DBObject query = ...
Long count = template.requestBodyAndHeader("direct:count", query, MongoDbConstants.COLLECTION, "dynamicCollectionName");
フィールドフィルターの指定 リンクのコピーリンクがクリップボードにコピーされました!
CamelMongoDbFields .FIELDS_FILTER ヘッダーで関連する DBObject (または JSON String や Map など)を DBObject に変換するだけで、すべてのクエリー操作でフィールドフィルターを指定できます。
_id および boringField を除くすべてのフィールドを取得します。
// route: from("direct:findAll").to("mongodb:myDb?database=flights&collection=tickets&operation=findAll")
DBObject fieldFilter = BasicDBObjectBuilder.start().add("_id", 0).add("boringField", 0).get();
Object result = template.requestBodyAndHeader("direct:findAll", (Object) null, MongoDbConstants.FIELDS_FILTER, fieldFilter);
// route: from("direct:findAll").to("mongodb:myDb?database=flights&collection=tickets&operation=findAll")
DBObject fieldFilter = BasicDBObjectBuilder.start().add("_id", 0).add("boringField", 0).get();
Object result = template.requestBodyAndHeader("direct:findAll", (Object) null, MongoDbConstants.FIELDS_FILTER, fieldFilter);
作成/更新の操作 リンクのコピーリンクがクリップボードにコピーされました!
insert リンクのコピーリンクがクリップボードにコピーされました!
DBObject または List に変換しようとします。単一の挿入と複数の挿入の 2 つのモードがサポートされます。複数の挿入の場合、エンドポイントは、- の場合、または - DBObject に変換できる限り、任意のタイプのオブジェクトの List、Array、または Collections を想定します。すべてのオブジェクトは一度に挿入されます。エンドポイントは、入力に応じて呼び出すバックエンド操作(1 つまたは複数の挿入)をインテリジェントに決定します。
from("direct:insert")
.to("mongodb:myDb?database=flights&collection=tickets&operation=insert");
from("direct:insert")
.to("mongodb:myDb?database=flights&collection=tickets&operation=insert");
WriteConcern または invokeGetLastError オプションの値によっては、getLastError () はすでに呼び出されます。書き込み操作の最終結果にアクセスする場合は、WriteResult で getLastError ()または getCachedLastError () を呼び出して CommandResult を取得する必要があります。次に、CommandResult. ok ()、CommandResult. getErrorMessage ()、および/または CommandResult.getException ( )を呼び出すことで結果を確認できます。
_id はコレクションで一意である必要があることに注意してください。値を指定しないと、MongoDB が自動的に生成されます。しかし、それを指定して一意でない場合は、挿入操作は失敗します(Camel が通知する場合は、callGetLastError を有効にするか、書き込み結果を待つ WriteConcern を設定する必要があります)。
_id を使用している場合は、アプリケーションレベルが一意であることを確認する必要があります(これはグッドプラクティスでもあります)。
CamelMongoOid キー下のメッセージヘッダー(MongoDbConstants.OID 定数)に保存されます。1 つの挿入の場合は org.bson.types.ObjectId を保存する値は java.util.List<org.bson.types.ObjectId> で、複数のレコードが挿入されている場合は になります。
save リンクのコピーリンクがクリップボードにコピーされました!
- クエリーを実行して、オブジェクト全体をそのフィールドすべてと共に最初に取得します(効率的ではない場合もあります)、Camel 内で変更し、保存します。
- $modifiers とともに更新操作を使用してください。この操作は、代わりにサーバー側で更新を実行します。upsert フラグを有効にすることができます。この場合、挿入が必要な場合、MongoDB は $modifiers をフィルタークエリーオブジェクトに適用し、結果を挿入します。
from("direct:insert")
.to("mongodb:myDb?database=flights&collection=tickets&operation=save");
from("direct:insert")
.to("mongodb:myDb?database=flights&collection=tickets&operation=save");
update リンクのコピーリンクがクリップボードにコピーされました!
- 要素 1 (インデックス 0)=> フィルタークエリー => は、通常のクエリーオブジェクトと同様に、影響を受けるオブジェクトを決定します。
- element 2 (index 1)=> update rules => update rules => how matched objects will be updated.MongoDB からの 修飾子操作 はすべてサポートされます。
CamelMongoDbMultiUpdate IN メッセージヘッダーを true に設定します。
CamelMongoDbRecordsAffected のあるヘッダーは、更新されたレコードの数( WriteResult.getN ()からコピー)を含むレコードの数とともに(MongoDbConstants.RECORDS_AFFECTED 定数)を返します。
| ヘッダーのキー | クイック定数 | 説明 (MongoDB API ドキュメントから抜粋) | 想定されるタイプ |
|---|---|---|---|
CamelMongoDbMultiUpdate
|
MongoDbConstants.MULTIUPDATE
|
更新を一致するすべてのオブジェクトに適用する必要がある場合。http://www.mongodb.org/display/DOCS/Atomic+Operations を参照してください。 | boolean/Boolean |
CamelMongoDbUpsert
|
MongoDbConstants.UPSERT
|
データベースが存在しない場合には、要素を作成する必要がある | boolean/Boolean |
// route: from("direct:update").to("mongodb:myDb?database=science&collection=notableScientists&operation=update");
DBObject filterField = new BasicDBObject("filterField", true);
DBObject updateObj = new BasicDBObject("$set", new BasicDBObject("scientist", "Darwin"));
Object result = template.requestBodyAndHeader("direct:update", new Object[] {filterField, updateObj}, MongoDbConstants.MULTIUPDATE, true);
// route: from("direct:update").to("mongodb:myDb?database=science&collection=notableScientists&operation=update");
DBObject filterField = new BasicDBObject("filterField", true);
DBObject updateObj = new BasicDBObject("$set", new BasicDBObject("scientist", "Darwin"));
Object result = template.requestBodyAndHeader("direct:update", new Object[] {filterField, updateObj}, MongoDbConstants.MULTIUPDATE, true);
操作の削除 リンクのコピーリンクがクリップボードにコピーされました!
remove リンクのコピーリンクがクリップボードにコピーされました!
DBObject または型として変換可能であることが予想されます。以下の例では、サイエンスデータベース、notableScientists コレクションで、フィールド 'conditionField' が true であるすべてのオブジェクトを削除します。
// route: from("direct:remove").to("mongodb:myDb?database=science&collection=notableScientists&operation=remove");
DBObject conditionField = new BasicDBObject("conditionField", true);
Object result = template.requestBody("direct:remove", conditionField);
// route: from("direct:remove").to("mongodb:myDb?database=science&collection=notableScientists&operation=remove");
DBObject conditionField = new BasicDBObject("conditionField", true);
Object result = template.requestBody("direct:remove", conditionField);
CamelMongoDbRecordsAffected のあるヘッダーが返され、タイプ int のあるMongoDbConstants.RECORDS_AFFECTED 定数とともに返されます。これには、削除されたレコードの数( WriteResult.getN ()からコピー)が含まれます。
その他の操作 リンクのコピーリンクがクリップボードにコピーされました!
aggregate リンクのコピーリンクがクリップボードにコピーされました!
// route: from("direct:aggregate").to("mongodb:myDb?database=science&collection=notableScientists&operation=aggregate");
from("direct:aggregate")
.setBody().constant("[{ $match : {$or : [{\"scientist\" : \"Darwin\"},{\"scientist\" : \"Einstein\"}]}},{ $group: { _id: \"$scientist\", count: { $sum: 1 }} } ]")
.to("mongodb:myDb?database=science&collection=notableScientists&operation=aggregate")
.to("mock:resultAggregate");
// route: from("direct:aggregate").to("mongodb:myDb?database=science&collection=notableScientists&operation=aggregate");
from("direct:aggregate")
.setBody().constant("[{ $match : {$or : [{\"scientist\" : \"Darwin\"},{\"scientist\" : \"Einstein\"}]}},{ $group: { _id: \"$scientist\", count: { $sum: 1 }} } ]")
.to("mongodb:myDb?database=science&collection=notableScientists&operation=aggregate")
.to("mock:resultAggregate");
getDbStats リンクのコピーリンクがクリップボードにコピーされました!
db.stats () コマンドを実行するのと同等のもので、データベースに関する有用な統計情報が表示されます。以下に例を示します。
// from("direct:getDbStats").to("mongodb:myDb?database=flights&collection=tickets&operation=getDbStats");
Object result = template.requestBody("direct:getDbStats", "irrelevantBody");
assertTrue("Result is not of type DBObject", result instanceof DBObject);
// from("direct:getDbStats").to("mongodb:myDb?database=flights&collection=tickets&operation=getDbStats");
Object result = template.requestBody("direct:getDbStats", "irrelevantBody");
assertTrue("Result is not of type DBObject", result instanceof DBObject);
DBObject の形式で、シェルに表示されるデータ構造と同様のデータ構造を返します。
getColStats リンクのコピーリンクがクリップボードにコピーされました!
db.collection.stats () コマンドを実行するのと同等のもので、コレクションに関する有用な統計図を表示します。以下に例を示します。
// from("direct:getColStats").to("mongodb:myDb?database=flights&collection=tickets&operation=getColStats");
Object result = template.requestBody("direct:getColStats", "irrelevantBody");
assertTrue("Result is not of type DBObject", result instanceof DBObject);
// from("direct:getColStats").to("mongodb:myDb?database=flights&collection=tickets&operation=getColStats");
Object result = template.requestBody("direct:getColStats", "irrelevantBody");
assertTrue("Result is not of type DBObject", result instanceof DBObject);
DBObject の形式で、シェルに表示されるデータ構造と同様のデータ構造を返します。
command リンクのコピーリンクがクリップボードにコピーされました!
// route: from("command").to("mongodb:myDb?database=science&operation=command");
DBObject commandBody = new BasicDBObject("hostInfo", "1");
Object result = template.requestBody("direct:command", commandBody);
// route: from("command").to("mongodb:myDb?database=science&operation=command");
DBObject commandBody = new BasicDBObject("hostInfo", "1");
Object result = template.requestBody("direct:command", commandBody);
動的操作 リンクのコピーリンクがクリップボードにコピーされました!
MongoDbConstants.OPERATION_HEADER 定数によって定義される CamelMongoDbOperation ヘッダーを設定することで、エンドポイントの固定操作を上書きできます。サポートされる値は MongoDbOperation の列挙によって決定され、エンドポイント URI の operation パラメーターの許可される値と一致します。
// from("direct:insert").to("mongodb:myDb?database=flights&collection=tickets&operation=insert");
Object result = template.requestBodyAndHeader("direct:insert", "irrelevantBody", MongoDbConstants.OPERATION_HEADER, "count");
assertTrue("Result is not of type Long", result instanceof Long);
// from("direct:insert").to("mongodb:myDb?database=flights&collection=tickets&operation=insert");
Object result = template.requestBodyAndHeader("direct:insert", "irrelevantBody", MongoDbConstants.OPERATION_HEADER, "count");
assertTrue("Result is not of type Long", result instanceof Long);
Tailable Cursor コンシューマー リンクのコピーリンクがクリップボードにコピーされました!
tail -f コマンドと同様に、カーソルを開いた状態に維持することで、コレクションから継続中のデータを即座に消費するメカニズムを提供します。このメカニズムは、新しいデータを取得するためにクライアントがスケジュールされた間隔でクライアントに新しいデータをプッシュするので、スケジュールされたポーリングよりも効率的です。また、その他の冗長ネットワークトラフィックも軽減します。
テール可能なカーソルコンシューマーの仕組み リンクのコピーリンクがクリップボードにコピーされました!
DBCursor.next () メソッドを呼び出すとブロックされます。ただし、MongoDB サーバーは、新しいデータが不確定な期間の後に表示されない場合に、カーソルを終了する権利を留保します。新しいデータを引き続き使用する場合は、カーソルを再生成する必要があります。これには、停止した位置を覚えておく必要があります。そうでないと、最初からやり直し始めます。
increasingField > lastValue のようなフィルターでクエリーを実行し、未読のデータのみが消費されるようにします。
tailTrackingIncreasingField オプションの increasing フィールドのキーを設定 します。Camel 2.10 では、このフィールドのネストされたナビゲーションはまだサポートされていないため、データの最上位フィールドである必要があります。つまり、timestamp フィールドは問題ありませんが、nested.timestamp は機能しません。ネストされた増加フィールドのサポートが必要な場合は、Camel JIRA でチケットを作成してください。
cursorRegenerationDelay オプションが導入されました。これは、ニーズに合わせて変更できます。
from("mongodb:myDb?database=flights&collection=cancellations&tailTrackIncreasingField=departureTime")
.id("tailableCursorConsumer1")
.autoStartup(false)
.to("mock:test");
from("mongodb:myDb?database=flights&collection=cancellations&tailTrackIncreasingField=departureTime")
.id("tailableCursorConsumer1")
.autoStartup(false)
.to("mock:test");
永続的なテールトラッキング リンクのコピーリンクがクリップボードにコピーされました!
永続的なテールトラッキングの有効化 リンクのコピーリンクがクリップボードにコピーされました!
persistentTailTrackingオプションをtrueに設定- このコンシューマー
の一意の識別子への PersistentID オプション。これにより、多くのコンシューマーで同じコレクションを再利用できます。
tailTrackDb オプション、tailTrackCollection オプション、および tailTrackField オプションを設定して、ランタイム情報が保存される場所をカスタマイズすることができます。各オプションの説明は、このページの上部にあるエンドポイントオプションの表を参照してください。
camelTailTracking および lastTrackingValue がデフォルトです)。
from("mongodb:myDb?database=flights&collection=cancellations&tailTrackIncreasingField=departureTime&persistentTailTracking=true" +
"&persistentId=cancellationsTracker")
.id("tailableCursorConsumer2")
.autoStartup(false)
.to("mock:test");
from("mongodb:myDb?database=flights&collection=cancellations&tailTrackIncreasingField=departureTime&persistentTailTracking=true" +
"&persistentId=cancellationsTracker")
.id("tailableCursorConsumer2")
.autoStartup(false)
.to("mock:test");
型変換 リンクのコピーリンクがクリップボードにコピーされました!
MongoDbBasicConverters 型コンバーターは、以下の変換を提供します。
| 名前 | タイプから | 以下を入力します。 | どのように変更を加えればよいですか ? |
|---|---|---|---|
| fromMapToDBObject |
マップ
|
DBObject
|
新しい BasicDBObject (Map m)コンストラクターを使用して新しい BasicDBObject を構築します。
|
| fromBasicDBObjectToMap |
BasicDBObject
|
マップ
|
BasicDBObject はすでに マップを実装しています
|
| fromStringToDBObject |
文字列
|
DBObject
|
com.mongodb.util.JSON.parse(String s) を使用する
|
| fromAnyObjectToDBObject |
オブジェクト
|
DBObject
|
Jackson ライブラリー を使用してオブジェクトを Map に変換します。これは、新しい BasicDBObjectの初期化に使用されます。
|
その他の参考資料 リンクのコピーリンクがクリップボードにコピーされました!
第109章 MongoDB GridFS リンクのコピーリンクがクリップボードにコピーされました!
Camel MongoDB GridFS コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
pom.xml に以下の依存関係を追加する必要があります。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
mongodb-gridfs:connectionBean?database=databaseName&bucket=bucketName[&moreOptions...]
mongodb-gridfs:connectionBean?database=databaseName&bucket=bucketName[&moreOptions...]
gridfs:connectionBean?database=databaseName&bucket=bucketName[&moreOptions...]
gridfs:connectionBean?database=databaseName&bucket=bucketName[&moreOptions...]
エンドポイントオプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | デフォルト値 | 説明 | プロデューサー | コンシューマー |
|---|---|---|---|---|
database
|
none | 必須。このエンドポイントをバインドするデータベースの名前を指定します。すべての操作は、このデータベースに対して実行されます。 | Y | Y |
bucket
|
fs
|
指定されたデータベース内の GridFS バケットの名前を指定します。デフォルトは GridFS.DEFAULT_BUCKET の値です。
|
Y | Y |
operation
|
create
|
このエンドポイントが実行する操作の ID を指定します。有効な値は以下のとおりです。
|
Y | N |
query
|
none |
queryStrategy オプションと併用して、新規ファイルの検索に使用されるクエリーを作成します。
|
N | Y |
queryStrategy
|
TimeStamp
|
新規ファイルの検索に使用されるストラテジーを指定します。有効な値は以下のとおりです。
|
N | Y |
persistentTSCollection
|
camel-timestamps
|
PersistentTimestamp と併用されます。タイムスタンプが保存されるコレクションを指定します。
|
N | Y |
persistentTSObject
|
camel-timestamp
|
PersistentTimestamp と併用されます。タイムスタンプオブジェクトの ID を指定します。
これにより、各コンシューマーは共通のコレクションに独自のタイムスタンプ ID を保存できます。
|
N | Y |
fileAttributeName
|
camel-processed
|
FileAttribute と併用されます。使用する属性の名前を指定します。
ファイルが処理されると、指定した属性は の
処理 に設定されます。ファイル処理が完了すると、指定された属性は done に設定されます。
|
N | Y |
delay
|
500 (ms)
|
新規ファイルの GridFS の後続のポーリングの間隔をミリ秒単位で指定します。 | N | Y |
initialDelay
|
1000 (ms)
|
新しいファイルを初めてポーリングするまでの遅延をミリ秒単位で指定します。
|
N | Y |
Spring XML でのデータベースの設定 リンクのコピーリンクがクリップボードにコピーされました!
サンプルルート リンクのコピーリンクがクリップボードにコピーされました!
findOne を実行します。
MongoDB 操作 - プロデューサーエンドポイント リンクのコピーリンクがクリップボードにコピーされました!
カウントコレクション内のファイルの合計数を返し、OUT メッセージのボディーとして整数を返します。// from("direct:count").to("mongodb-gridfs?database=tickets&operation=count"); Integer result = template.requestBodyAndHeader("direct:count", "irrelevantBody"); assertTrue("Result is not of type Long", result instanceof Integer);// from("direct:count").to("mongodb-gridfs?database=tickets&operation=count"); Integer result = template.requestBodyAndHeader("direct:count", "irrelevantBody"); assertTrue("Result is not of type Long", result instanceof Integer);Copy to Clipboard Copied! Toggle word wrap Toggle overflow filename ヘッダーを使用して、指定したファイル名に一致するファイルの数を指定できます。Map<String, Object> headers = new HashMap<String, Object>(); headers.put(Exchange.FILE_NAME, "filename.txt"); Integer count = template.requestBodyAndHeaders("direct:count", query, headers);Map<String, Object> headers = new HashMap<String, Object>(); headers.put(Exchange.FILE_NAME, "filename.txt"); Integer count = template.requestBodyAndHeaders("direct:count", query, headers);Copy to Clipboard Copied! Toggle word wrap Toggle overflow listAllタブで区切られたストリームに、ファイル名とその ID を一覧表示する Reader を返します。// from("direct:listAll").to("mongodb-gridfs?database=tickets&operation=listAll"); Reader result = template.requestBodyAndHeader("direct:listAll", irrelevantBody"); filename1.txt 1252314321 filename2.txt 2897651254// from("direct:listAll").to("mongodb-gridfs?database=tickets&operation=listAll"); Reader result = template.requestBodyAndHeader("direct:listAll", irrelevantBody"); filename1.txt 1252314321 filename2.txt 2897651254Copy to Clipboard Copied! Toggle word wrap Toggle overflow findOne受信ヘッダーからExchange.FILE_NAMEを使用して、GridFS システムで一致するファイルを見つけ、ボディーをコンテンツのInputStreamに設定し、メタデータをヘッダーとして提供します。// from("direct:findOne").to("mongodb-gridfs?database=tickets&operation=findOne"); Map<String, Object> headers = new HashMap<String, Object>(); headers.put(Exchange.FILE_NAME, "filename.txt"); InputStream result = template.requestBodyAndHeaders("direct:findOne", "irrelevantBody", headers);// from("direct:findOne").to("mongodb-gridfs?database=tickets&operation=findOne"); Map<String, Object> headers = new HashMap<String, Object>(); headers.put(Exchange.FILE_NAME, "filename.txt"); InputStream result = template.requestBodyAndHeaders("direct:findOne", "irrelevantBody", headers);Copy to Clipboard Copied! Toggle word wrap Toggle overflow createファイルコンテンツの受信ヘッダーとボディーコンテンツの受信ヘッダーExchange.FILE_NAMEを使用して、GridFS データベースに新しいファイルを作成します。InputStreamCopy to Clipboard Copied! Toggle word wrap Toggle overflow removeGridFS データベースからファイルを削除します。// from("direct:remove").to("mongodb-gridfs?database=tickets&operation=remove"); Map<String, Object> headers = new HashMap<String, Object>(); headers.put(Exchange.FILE_NAME, "filename.txt"); template.requestBodyAndHeaders("direct:remove", "", headers);// from("direct:remove").to("mongodb-gridfs?database=tickets&operation=remove"); Map<String, Object> headers = new HashMap<String, Object>(); headers.put(Exchange.FILE_NAME, "filename.txt"); template.requestBodyAndHeaders("direct:remove", "", headers);Copy to Clipboard Copied! Toggle word wrap Toggle overflow
GridFS Consumer リンクのコピーリンクがクリップボードにコピーされました!
delay と initialDelay の 2 つのパラメーターがこの動作を制御します。delay は、バックグラウンドスレッドがポーリングの試行間でスリープする時間を指定します(デフォルトは 500ミリ秒)。initialDelay は、最初に GridFS をポーリングするまでコンシューマーの起動を待機する時間を指定します。これは、バックエンドサービスが利用可能になるのにもう少し時間が必要な場合に役立ちます。
TimeStamp-[default] 起動時に、コンシューマーは現在の時刻を開始点として使用します。コンシューマーの起動後に追加されたファイルのみが処理されます。コンシューマー起動前で、グリッド内のすべてのファイルは無視されます。ポーリング後、コンシューマーは最後に処理されたファイルのタイムスタンプでタイムスタンプを更新します。PersistentTimestamp-on は起動時に、persistentTSObjectによって提供されるオブジェクトのpersistentTSCollectionで指定されたコレクションをクエリーし、これを開始タイムスタンプとして使用します。そのオブジェクトが存在しない場合、コンシューマーは現在の時間を使用してオブジェクトを作成します。ファイルが処理されるたびに、コレクションのタイムスタンプが更新されます。FileAttribute- タイムスタンプを使用する代わりに、コンシューマーはfileAttributeNameで指定された属性がないファイルについて GridFS にクエリーを実行します。コンシューマーがファイルの処理を開始すると、この属性は GridFS のファイルに追加されます。使用例:from("mongodb-gridfs?database=tickets&queryStrategy=FileAttribute").process(...);from("mongodb-gridfs?database=tickets&queryStrategy=FileAttribute").process(...);Copy to Clipboard Copied! Toggle word wrap Toggle overflow TimestampAndFileAttribute- 2 つのストラテジーを分解すると、コンシューマーは、fileAttributeNameで指定された属性がないTimeStampより新しいファイルを検索します。ファイルの処理中に、不足している属性が GridFS のファイルに追加されます。PersistentTimestampAndFileAttribute- 2 つのストラテジーを分解すると、コンシューマーは、fileAttributeNameで指定された属性がないTimeStampより新しいファイルを検索します。ファイルの処理中に、不足している属性が GridFS のファイルに追加され、コレクションのタイムスタンプが更新されます。使用例:from("mongodb-gridfs?database=myData&queryStrategy=PersistentTimestamp& persistentTSCollection=CamelTimestamps&persistentTSObject=myDataTS).process(...);from("mongodb-gridfs?database=myData&queryStrategy=PersistentTimestamp& persistentTSCollection=CamelTimestamps&persistentTSObject=myDataTS).process(...);Copy to Clipboard Copied! Toggle word wrap Toggle overflow
その他の参考資料 リンクのコピーリンクがクリップボードにコピーされました!
第110章 MQTT リンクのコピーリンクがクリップボードにコピーされました!
MQTT コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
pom.xml に以下の依存関係を追加する必要があります。
Camel on EAP デプロイメント リンクのコピーリンクがクリップボードにコピーされました!
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
mqtt://name[?options]
mqtt://name[?options]
オプション リンクのコピーリンクがクリップボードにコピーされました!
| プロパティー | デフォルト | 説明 |
|---|---|---|
host
|
tcp://127.0.0.1:1883
|
接続する MQTT ブローカーの URI: このコンポーネントも SSL をサポートします(例 : ssl://127.0.0.1:8883)。 |
localAddress
|
使用するローカル InetAddress およびポート | |
username
|
MQTT ブローカーに対する認証に使用するユーザー名。 | |
password
|
MQTT ブローカーに対する認証に使用されるパスワード。 | |
connectAttemptsMax
|
-1
|
初期接続を確立するための最大試行回数 - - 1 は 無限です。 |
reconnectAttemptsMax
|
-1
|
失敗後に接続を再確立する最大試行回数 - - 1 は 無限です。 |
reconnectDelay
|
10
|
初期または失敗した接続の再確立を試行する間隔(ミリ秒単位)。 |
reconnectBackOffMultiplier
|
2.0
|
連続して失敗した接続試行に対して接続試行間の遅延に対する乗数 |
reconnectDelayMax
|
30000
|
接続を確立する新しい試行間の最大時間(ミリ秒単位)。したがって、reconnectBackOffMultiplier を使用する場合でも、このプロパティーは MQTT ブローカーへの別の接続を試行するまでの最大遅延を定義します。 |
qualityOfService
|
AtLeastOnce
|
メッセージ交換に使用する MQTT Quality of Service。AtMostOnce、AtLeastOnce、または ExactlyOnceのいずれかです。 |
subscribeTopicName
|
メッセージにサブスクライブする Topic の名前。2.15.0 以降非推奨になり ました(代わりに subscribeTopicNames を使用してください)。 | |
subscribeTopicNames
|
Camel 2.15.0: メッセージにサブスクライブするトピックのコンマ区切りリスト。
階層内の特定のパターンに一致するトピックをサブスクライブするために、このリストの各項目には MQTT ワイルドカード(
+ または #)を含めることができます。たとえば、+ は階層内のレベルのすべてのトピックのワイルドカードであるため、ブローカーにトピック topics/one および topics/two がある場合は、topics/+ を使用して両方にサブスクライブできます。ここで考慮すべき注意事項は、ブローカーが topics/three を追加すると、ルートもそのトピックからメッセージを受信することです。
|
|
publishTopicName
|
camel/mqtt/test
|
メッセージを公開するデフォルトのトピック |
byDefaultRetain
|
false
|
MQTT ブローカーに送信されるメッセージで使用されるデフォルトの保持ポリシー |
mqttTopicPropertyName
|
_MQTTTopicPropertyName+
|
個別の公開されたメッセージのエクスチェンジを検索するプロパティー名。これが設定されている場合は、名前は Topic として使用されるため、MQTT メッセージブローカーにメッセージをパブリッシュします。このオプションは、Camel 2.14.0 以降削除されます。
Camel 2.14.0 以降、 Camel は
CamelMQTTSubscribeTopic を MQTT コンシューマーのトピックプロパティー名として使用し、CamelMQTTPublishTopic を MQTT プロデューサーのトピックプロパティー名として使用します。
|
mqttRetainPropertyName
|
MQTTRetain
|
個別の公開されたメッセージのエクスチェンジを検索するプロパティー名。これが設定される場合(ブール値を期待): retain プロパティーは、MQTT メッセージブローカーに送信されたメッセージに設定されます。 |
mqttQosPropertyName
|
MQTTQos
|
個別の公開されたメッセージのエクスチェンジを検索するプロパティー名。これが設定されている場合は( AtMostOnce、AtLeastOnce、または ExactlyOnce のいずれか)、その QoS は MQTT メッセージブローカーに送信されるメッセージに設定されます。 |
connectWaitInSeconds
|
10
|
コンポーネントが MQTT ブローカーへの接続が確立されるまで待機する遅延(秒単位) |
disconnectWaitInSeconds
|
5
|
コンポーネントが MQTT ブローカーからの stop ()で有効な接続を待機する秒数 |
sendWaitInSeconds
|
5
|
例外を出力する前に、コンポーネントが MQTT ブローカーからの受信応答がパブリッシュされたメッセージを確認するまで待機する最大時間。 |
clientId
|
MQTT ブローカーへのコンポーネント接続に使用する ID。指定されていない場合は、自動的に割り当てられます。 | |
cleanSession
|
true
|
true の場合、MQTT ブローカーへの接続または切断時にすべての状態情報が破棄されます。cleanSession を false に設定するときは、clientId を指定する必要があります。
|
?option=value&option=value&.. の形式で追加できます。
サンプル リンクのコピーリンクがクリップボードにコピーされました!
from("direct:foo")
.to("mqtt:cheese?publishTopicName=test.mqtt.topic");
from("direct:foo")
.to("mqtt:cheese?publishTopicName=test.mqtt.topic");
from("mqtt:bar?subscribeTopicName=test.mqtt.topic")
.transform(body().convertToString())
.to("mock:result")
from("mqtt:bar?subscribeTopicName=test.mqtt.topic")
.transform(body().convertToString())
.to("mock:result")
第111章 MSV リンクのコピーリンクがクリップボードにコピーされました!
MSV コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
msv:someLocalOrRemoteResource[?options]
msv:someLocalOrRemoteResource[?options]
msv:org/foo/bar.rng msv:file:../foo/bar.rng msv:http://acme.com/cheese.rng
msv:org/foo/bar.rng
msv:file:../foo/bar.rng
msv:http://acme.com/cheese.rng
?option=value&option=value&.. の形式で追加できます。
オプション リンクのコピーリンクがクリップボードにコピーされました!
| オプション | デフォルト | 説明 |
|---|---|---|
useDom
|
true
|
DOMSource/DOMResult または SaxSource/SaxResult をバリデーターによって使用されるかどうか。注記: MSV コンポーネントで DOM を使用する必要があります。 |
例 リンクのコピーリンクがクリップボードにコピーされました!
第112章 Mustache リンクのコピーリンクがクリップボードにコピーされました!
Mustache リンクのコピーリンクがクリップボードにコピーされました!
pom.xml に以下の依存関係を追加する必要があります。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
mustache:templateName[?options]
mustache:templateName[?options]
?option=value&option=value&.. の形式で追加できます。
オプション リンクのコピーリンクがクリップボードにコピーされました!
| オプション | デフォルト | 説明 |
|---|---|---|
allowContextMapAll (producer)
|
false
|
コンテキストマップが前詳細へのアクセスを許可するかどうかを設定します。デフォルトでは、メッセージの本文とヘッダーにのみアクセスできます。このオプションは、現在の Exchange および CamelContext へのフルアクセスに対して有効にできます。これを行うと、CamelContext API の全機能へのアクセスが開かれるため、潜在的なセキュリティーリスクが発生します。
|
allowTemplateFromHeader (producer)
|
false
|
ヘッダーのリソーステンプレートの使用を許可するかどうか (デフォルトは false)。このオプションを有効にすると、セキュリティーの問題があります。たとえば、ヘッダーに信頼されていないコンテンツやユーザー派生コンテンツが含まれている場合、これは最終的にエンドアプリケーションの信頼性および完全性に影響を与える可能性があるため、このオプションは注意して使用してください。
|
encoding
|
null
|
リソースコンテンツの文字エンコーディング。 |
startDelimiter
|
{{ | テンプレートコードの開始を示すために使用される文字。 |
endDelimiter
|
}} | テンプレートコードの終わりのマークに使用される文字。 |
Mustache コンテキスト リンクのコピーリンクがクリップボードにコピーされました!
)。Exchange は以下のように転送されます。
| key | value |
|---|---|
exchange
|
Exchange 自体。
|
exchange.properties
|
Exchange プロパティー。
|
ヘッダー
|
In メッセージのヘッダー。 |
camelContext
|
Camel コンテキスト。 |
request
|
In メッセージ。 |
ボディー
|
In メッセージのボディー。 |
response
|
Out メッセージ(InOut メッセージ交換パターンにのみ有効)。 |
動的テンプレート リンクのコピーリンクがクリップボードにコピーされました!
| ヘッダー | タイプ | 説明 | サポートバージョン |
|---|---|---|---|
| MustacheConstants.MUSTACHE_RESOURCE_URI | 文字列 | 設定されたエンドポイントの代わりに使用するテンプレートリソースの URI。 | |
| MustacheConstants.MUSTACHE_TEMPLATE | 文字列 | 設定されたエンドポイントの代わりに使用するテンプレート。 |
サンプル リンクのコピーリンクがクリップボードにコピーされました!
from("activemq:My.Queue").
to("mustache:com/acme/MyResponse.mustache");
from("activemq:My.Queue").
to("mustache:com/acme/MyResponse.mustache");
JMSReplyTo ヘッダーがある)のメッセージの応答を形成。
from("activemq:My.Queue").
to("mustache:com/acme/MyResponse.mustache").
to("activemq:Another.Queue");
from("activemq:My.Queue").
to("mustache:com/acme/MyResponse.mustache").
to("activemq:Another.Queue");
from("direct:in").
setHeader(MustacheConstants.MUSTACHE_RESOURCE_URI).constant("path/to/my/template.mustache").
to("mustache:dummy?allowTemplateFromHeader=true");
from("direct:in").
setHeader(MustacheConstants.MUSTACHE_RESOURCE_URI).constant("path/to/my/template.mustache").
to("mustache:dummy?allowTemplateFromHeader=true");
allowTemplateFromHeader オプションを有効にすると、セキュリティーの問題があります。たとえば、ヘッダーに信頼できないコンテンツまたはユーザー派生コンテンツが含まれる場合、これは最終的に、エンドアプリケーションの確実性と整合性に及ぼす可能性があるため、このオプションを使用してください。
電子メールのサンプル リンクのコピーリンクがクリップボードにコピーされました!
第113章 MVEL コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
MVEL コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
pom.xml に以下の依存関係を追加する必要があります。
Camel on EAP デプロイメント リンクのコピーリンクがクリップボードにコピーされました!
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
mvel:templateName[?options]
mvel:templateName[?options]
?option=value&option=value&.. の形式で追加できます。
オプション リンクのコピーリンクがクリップボードにコピーされました!
| オプション | デフォルト | 説明 |
|---|---|---|
allowContextMapAll (producer)
|
false
|
コンテキストマップが前詳細へのアクセスを許可するかどうかを設定します。デフォルトでは、メッセージの本文とヘッダーにのみアクセスできます。このオプションは、現在の Exchange および CamelContext へのフルアクセスに対して有効にできます。これを行うと、CamelContext API の全機能へのアクセスが開かれるため、潜在的なセキュリティーリスクが発生します。
|
allowTemplateFromHeader (producer)
|
false
|
ヘッダーのリソーステンプレートの使用を許可するかどうか (デフォルトは false)。このオプションを有効にすると、セキュリティーの問題があります。たとえば、ヘッダーに信頼されていないコンテンツやユーザー派生コンテンツが含まれている場合、これは最終的にエンドアプリケーションの信頼性および完全性に影響を与える可能性があるため、このオプションは注意して使用してください。
|
contentCache
|
true
|
ロード時のリソースコンテンツのキャッシュ。キャッシュされたリソースコンテンツは、エンドポイントの clearContentCache 操作を使用して JMX 経由でクリアできます。
|
encoding
|
null
|
リソースコンテンツの文字エンコーディング。 |
メッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| ヘッダー | 説明 |
|---|---|
CamelMvelResourceUri
|
templateName ( String オブジェクトとして)
|
MVEL コンテキスト リンクのコピーリンクがクリップボードにコピーされました!
)。Exchange は以下のように転送されます。
| key | value |
|---|---|
exchange
|
Exchange 自体。
|
exchange.properties
|
Exchange プロパティー。
|
ヘッダー
|
In メッセージのヘッダー。 |
camelContext
|
Camel コンテキストの意図。 |
request
|
In メッセージ。 |
in
|
In メッセージ。 |
ボディー
|
In メッセージのボディー。 |
out
|
Out メッセージ(InOut メッセージ交換パターンにのみ有効)。 |
response
|
Out メッセージ(InOut メッセージ交換パターンにのみ有効)。 |
ホットリロード リンクのコピーリンクがクリップボードにコピーされました!
contentCache=true を設定すると、Camel はリソースを 1 度だけロードするため、ホットリロードはできません。このシナリオは、リソースが変更されない場合に実稼働環境で使用することができます。
動的テンプレート リンクのコピーリンクがクリップボードにコピーされました!
| ヘッダー | タイプ | 説明 |
|---|---|---|
CamelMvelResourceUri
|
文字列 | 設定されたエンドポイントの代わりに使用するテンプレートリソースの URI。 |
CamelMvelTemplate
|
文字列 | 設定されたエンドポイントの代わりに使用するテンプレート。 |
サンプル リンクのコピーリンクがクリップボードにコピーされました!
from("activemq:My.Queue").
to("mvel:com/acme/MyResponse.mvel");
from("activemq:My.Queue").
to("mvel:com/acme/MyResponse.mvel");
JMSReplyTo ヘッダーがある)のメッセージへの応答を形成するには、以下を実行します。
from("direct:in").
setHeader("CamelMvelResourceUri").constant("path/to/my/template.mvel").
to("mvel:dummy");
from("direct:in").
setHeader("CamelMvelResourceUri").constant("path/to/my/template.mvel").
to("mvel:dummy");
from("direct:in").
setHeader("CamelMvelTemplate").constant("@{\"The result is \" + request.body * 3}\" }").
to("velocity:dummy?allowTemplateFromHeader=true");
from("direct:in").
setHeader("CamelMvelTemplate").constant("@{\"The result is \" + request.body * 3}\" }").
to("velocity:dummy?allowTemplateFromHeader=true");
allowTemplateFromHeader オプションを有効にすると、セキュリティーの問題があります。たとえば、ヘッダーに信頼できないコンテンツまたはユーザー派生コンテンツが含まれる場合、これは最終的に、エンドアプリケーションの確実性と整合性に及ぼす可能性があるため、このオプションを使用してください。
第114章 MyBatis リンクのコピーリンクがクリップボードにコピーされました!
MyBatis リンクのコピーリンクがクリップボードにコピーされました!
pom.xml に以下の依存関係を追加する必要があります。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
mybatis:statementName[?options]
mybatis:statementName[?options]
?option=value&option=value&.. の形式で追加できます。
SqlMapConfig.xml でクラスパスのルートから MyBatis SqlMapConfig ファイルをロードします。ファイルが別の場所にある場合は、MyBatisComponent コンポーネントで configurationUri オプションを設定する必要があります。
オプション リンクのコピーリンクがクリップボードにコピーされました!
| オプション | 型 | デフォルト | 説明 |
|---|---|---|---|
consumer.onConsume
|
文字列
|
null
|
消費後に実行するステートメント。たとえば、Camel で消費および処理された後に行を更新するために使用できます。後ほどサンプル を参照してください。複数のステートメントはコンマで区切ることができます。 |
consumer.useIterator
|
boolean
|
true
|
true の場合、ポーリングが個別に処理されるときに返される各行。false の場合、データの リスト 全体が IN ボディーとして設定されます。
|
consumer.routeEmptyResultSet
|
boolean
|
false
|
空の結果セットをルーティングすべきかどうかを設定します。 |
statementType
|
StatementType
|
null
|
呼び出す操作の種類を制御するためにプロデューサーに指定する必要があります。enum 値は SelectOne、SelectList、、Update、UpdateList、Delete、および DeleteList です。注記:InsertList は Camel 2.10 で利用可能で、Update Camel 2.11 で利用できます。
|
maxMessagesPerPoll
|
int
|
0
|
このオプションは、データベースプールによって返される結果をバッチに分割し、それらを複数のエクスチェンジで配信することを目的としています。この整数は、単一のエクスチェンジで配信する最大メッセージを定義します。デフォルトでは最大値は設定されていません。たとえば制限を 1000 などに設定して、数千のファイルがあるサーバーの起動を回避できます。無効にするには、0 または負の値を設定します。 |
executorType
|
文字列
|
null
|
Camel 2.11: ステートメントの実行中に使用されるエグゼキューターのタイプ。サポートされる値は、simple、re reuse、batch です。デフォルトでは、値は指定されず、MyBatis が使用するもの(つまり simple )と同じです。シンプルな エクゼキューターは特別なことを行いません。エグゼキューターを 再利用 すると、準備済みステートメントが再利用されます。バッチ エグゼキューターは、ステートメントとバッチの更新を再利用します。 |
outputHeader
|
文字列
|
null
|
Camel 2.15: メッセージのボディーではなくヘッダーとして結果を保存します。これにより、既存のメッセージボディーをそのまま保存できます。 |
inputHeader
|
文字列
|
null
|
Camel 2.15: ボディーの代わりにコンポーネントへの入力としてヘッダー値を使用します。 |
transacted
|
ブール値
|
false
|
Camel 2.16.2: SQL コンシューマーのみ。トランザクションを有効または無効にします。有効にすると、エクスチェンジの処理に失敗し、コンシューマーは追加のエクスチェンジを処理しなくなり、即時ロールバックが発生します。 |
メッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| ヘッダー | タイプ | 説明 |
|---|---|---|
CamelMyBatisStatementName
|
文字列
|
使用される statementName (例:insertAccount)。 |
CamelMyBatisResult
|
オブジェクト
|
いずれの操作でも MtBatis から返される 応答。たとえば、INSERT は自動生成キーや行数などを返すことができます。
|
メッセージボディー リンクのコピーリンクがクリップボードにコピーされました!
SELECT ステートメントの場合のみボディーとして設定されます。たとえば、INSERT ステートメントの場合、Camel はボディーを置き換えません。これにより、ルーティングを継続し、元のボディーを維持することができます。MyBatis からの応答は、常にキー CamelMyBatisResult を持つヘッダーに保存されます。
サンプル リンクのコピーリンクがクリップボードにコピーされました!
from("activemq:queue:newAccount").
to("mybatis:insertAccount?statementType=Insert");
from("activemq:queue:newAccount").
to("mybatis:insertAccount?statementType=Insert");
statementType を指定する必要があることに注意してください。
StatementType を使用した MyBatis の制御の改善 リンクのコピーリンクがクリップボードにコピーされました!
SELECT、UPDATE、DELETE、または INSERT などであるかどうかを制御するために、より詳細な制御が必要になります。たとえば、IN ボディーに SELECT ステートメントへのパラメーターが含まれる MyBatis エンドポイントにルーティングする場合は、以下を実行できます。
from("direct:start")
.to("mybatis:selectAccountById?statementType=SelectOne")
.to("mock:result");
from("direct:start")
.to("mybatis:selectAccountById?statementType=SelectOne")
.to("mock:result");
selectAccountById を呼び出し、IN 本文に 整数 タイプなどの取得するアカウント ID が含まれる必要があります。
SelectList などの他の操作でも同じことができます。
from("direct:start")
.to("mybatis:selectAllAccounts?statementType=SelectList")
.to("mock:result");
from("direct:start")
.to("mybatis:selectAllAccounts?statementType=SelectList")
.to("mock:result");
UPDATE と同じです。ここでは、Account オブジェクトを IN ボディーとして MyBatis に送信できます。
from("direct:start")
.to("mybatis:updateAccount?statementType=Update")
.to("mock:result");
from("direct:start")
.to("mybatis:updateAccount?statementType=Update")
.to("mock:result");
InsertList StatementType の使用 リンクのコピーリンクがクリップボードにコピーされました!
InsertList ステートメントタイプを使用する mybatis エンドポイントに Camel メッセージを送信することで、複数の行を挿入できます。
from("direct:start")
.to("mybatis:batchInsertAccount?statementType=InsertList")
.to("mock:result");
from("direct:start")
.to("mybatis:batchInsertAccount?statementType=InsertList")
.to("mock:result");
UpdateList StatementType の使用 リンクのコピーリンクがクリップボードにコピーされました!
from("direct:start")
.to("mybatis:batchUpdateAccount?statementType=UpdateList")
.to("mock:result");
from("direct:start")
.to("mybatis:batchUpdateAccount?statementType=UpdateList")
.to("mock:result");
DeleteList StatementType の使用 リンクのコピーリンクがクリップボードにコピーされました!
from("direct:start")
.to("mybatis:batchDeleteAccount?statementType=DeleteList")
.to("mock:result");
from("direct:start")
.to("mybatis:batchDeleteAccount?statementType=DeleteList")
.to("mock:result");
InsertList、UpdateList、および DeleteList StatementTypes に関する通知 リンクのコピーリンクがクリップボードにコピーされました!
スケジュールされたポーリングの例 リンクのコピーリンクがクリップボードにコピーされました!
from("mybatis:selectAllAccounts?delay=60000").to("activemq:queue:allAccounts");
from("mybatis:selectAllAccounts?delay=60000").to("activemq:queue:allAccounts");
from("timer://pollTheDatabase?delay=30000").to("mybatis:selectAllAccounts").to("activemq:queue:allAccounts");
from("timer://pollTheDatabase?delay=30000").to("mybatis:selectAllAccounts").to("activemq:queue:allAccounts");
<!-- Select with no parameters using the result map for Account class. -->
<select id="selectAllAccounts" resultMap="AccountResult">
select * from ACCOUNT
</select>
<!-- Select with no parameters using the result map for Account class. -->
<select id="selectAllAccounts" resultMap="AccountResult">
select * from ACCOUNT
</select>
onConsume の使用 リンクのコピーリンクがクリップボードにコピーされました!
UPDATE ステートメントである必要があることに注意してください。Camel は、名前をコンマで区切る必要がある複数のステートメントの実行をサポートします。
from("mybatis:selectUnprocessedAccounts?consumer.onConsume=consumeAccount").to("mock:results");
from("mybatis:selectUnprocessedAccounts?consumer.onConsume=consumeAccount").to("mock:results");
<select id="selectUnprocessedAccounts" resultMap="AccountResult">
select * from ACCOUNT where PROCESSED = false
</select>
<select id="selectUnprocessedAccounts" resultMap="AccountResult">
select * from ACCOUNT where PROCESSED = false
</select>
<update id="consumeAccount" parameterType="Account">
update ACCOUNT set PROCESSED = true where ACC_ID = #{id}
</update>
<update id="consumeAccount" parameterType="Account">
update ACCOUNT set PROCESSED = true where ACC_ID = #{id}
</update>
トランザクションへの参加 リンクのコピーリンクがクリップボードにコピーされました!
SqlMapConfig.xml ファイル外でデータベース設定を外部化する必要があるため、少し時間がかかる場合があります。
DataSource を設定する必要があります。通常、これは Spring プロキシーでラップする必要があるプール(DBCP または c3p0)です。このプロキシーは、Spring 以外の DataSource を使用して Spring トランザクションに参加できるようにします(MyBatis SqlSessionFactory はこれのみを行います)。
DataSource を管理するように設定されます。
<bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"/>
</bean>
<bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"/>
</bean>
<bean id="mybatis" class="org.apache.camel.component.mybatis.MyBatisComponent">
<property name="sqlSessionFactory" ref="sqlSessionFactory"/>
</bean>
<bean id="mybatis" class="org.apache.camel.component.mybatis.MyBatisComponent">
<property name="sqlSessionFactory" ref="sqlSessionFactory"/>
</bean>
第115章 Nagios リンクのコピーリンクがクリップボードにコピーされました!
Nagios リンクのコピーリンクがクリップボードにコピーされました!
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
nagios://host[:port][?Options]
nagios://host[:port][?Options]
オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | デフォルト値 | 説明 |
|---|---|---|
host
|
none | これは、チェックを送信する必要のある Nagios ホストのアドレスです。 |
port
|
ホストのポート番号。 | |
password
|
チェックを Nagios に送信する際に認証されるパスワード。 | |
connectionTimeout
|
5000 | 接続タイムアウト(ミリ秒単位)。 |
timeout
|
5000 | タイムアウトをミリ秒単位で送信。 |
nagiosSettings
|
設定済みの com.googlecode.jsendnsca.core.NagiosSettings オブジェクトを使用するには、以下を実行します。これを使用する場合、他のオプションは使用されません。
|
|
sendSync
|
true
|
パッシブチェックの送信時に同期を使用するかどうか。false に設定すると、Apache Camel はメッセージのルーティングを継続し、パッシブチェックメッセージは非同期で送信されます。
|
encryptionMethod
|
いいえ
|
*Camel 2.9:* 暗号化方法を指定します。使用できる値は、No、Xor、または TripleDes です。
|
Headers リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 説明 |
|---|---|
CamelNagiosHostName
|
これは、チェックを送信する必要のある Nagios ホストのアドレスです。このヘッダーは、エンドポイントに設定された既存のホスト名を上書きします。 |
CamelNagiosLevel
|
これは重大度レベルです。値 CRITICAL、WARNING、OK を使用できます。Apache Camel はデフォルトで OK を使用します。
|
CamelNagiosServiceName
|
サーボイの名前。デフォルトでは CamelContext 名を使用します。 |
メッセージの送信例 リンクのコピーリンクがクリップボードにコピーされました!
OK レベルになり、CamelContext 名をサービス名として使用します。これらの値は、上記のように ヘッダーを使用して詳細化できます。
Hello Nagios メッセージを Nagios に送信します。
template.sendBody("direct:start", "Hello Nagios");
from("direct:start").to("nagios:127.0.0.1:5667?password=secret").to("mock:result");
template.sendBody("direct:start", "Hello Nagios");
from("direct:start").to("nagios:127.0.0.1:5667?password=secret").to("mock:result");
CRITICAL メッセージを送信するには、以下のようなヘッダーを送信できます。
Map headers = new HashMap();
headers.put(NagiosConstants.LEVEL, "CRITICAL");
headers.put(NagiosConstants.HOST_NAME, "myHost");
headers.put(NagiosConstants.SERVICE_NAME, "myService");
template.sendBodyAndHeaders("direct:start", "Hello Nagios", headers);
Map headers = new HashMap();
headers.put(NagiosConstants.LEVEL, "CRITICAL");
headers.put(NagiosConstants.HOST_NAME, "myHost");
headers.put(NagiosConstants.SERVICE_NAME, "myService");
template.sendBodyAndHeaders("direct:start", "Hello Nagios", headers);
NagiosEventNotifer の使用 リンクのコピーリンクがクリップボードにコピーされました!
EventNotifier タイプで Spring Bean を定義するだけです。Apache Camel は、Spring を使用した CamelContext の高度な設定 を参照してください。
第116章 NAT リンクのコピーリンクがクリップボードにコピーされました!
NATS コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
pom.xml に追加する必要があります。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
nats:servers[?options]
nats:servers[?options]
オプション リンクのコピーリンクがクリップボードにコピーされました!
|
名前
|
デフォルト値
|
説明
|
|---|---|---|
servers
|
null
|
コンポーネントが接続する必要のあるサーバーを定義します。
|
topic
|
null
|
サブスクライブ/パブリッシュするトピック。 |
reconnect
|
true
|
再接続機能を使用するかどうか。 |
pedantic
|
false
|
pedantic モードで実行するかどうか(これはパフォーマンスに影響します)。 |
verbose
|
false
|
詳細モードで実行するかどうか |
ssl
|
false
|
SSL を使用するかどうか |
reconnectTimeWait
|
2000
|
再接続を試みるまでの待機時間(ミリ秒単位) |
maxReconnectAttempts
|
3
|
接続が失われた場合の再接続試行の最大数を設定します。 |
pingInterval
|
4000
|
接続がまだ存続している場合を認識する ping 間隔(ミリ秒単位) |
noRandomizeServers
|
false
|
接続の試行のためにサーバーの順序をランダム化するかどうか。 |
queueName
|
null
|
キュー設定(コンシューマー)に NATS を使用している場合は、キュー名。 |
maxMessages
|
null
|
maxMessages (コンシューマー)の後にサブスクライブするトピックからメッセージの受信を停止します。 |
poolSize
|
10
|
コンシューマーワーカー(コンシューマー)のプールサイズ。 |
Headers リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | タイプ | 説明 |
|---|---|---|
CamelNatsMessageTimestamp
|
long
|
消費されたメッセージのタイムスタンプ。 |
CamelNatsSubscriptionId
|
Integer
|
コンシューマーのサブスクリプション ID。
|
from("direct:send").to("nats://localhost:4222?topic=test");
from("direct:send").to("nats://localhost:4222?topic=test");
from("nats://localhost:4222?topic=test&maxMessages=5&queueName=test").to("mock:result");
from("nats://localhost:4222?topic=test&maxMessages=5&queueName=test").to("mock:result");
第117章 Netty リンクのコピーリンクがクリップボードにコピーされました!
Netty コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
pom.xml に以下の依存関係を追加する必要があります。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
netty:tcp://localhost:99999[?options] netty:udp://remotehost:99999/[?options]
netty:tcp://localhost:99999[?options]
netty:udp://remotehost:99999/[?options]
?option=value&option=value&.. の形式で追加できます。
オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | デフォルト値 | 説明 |
|---|---|---|
keepAlive
|
true
|
非アクティブのためにソケットが閉じられないように設定 |
tcpNoDelay
|
true
|
TCP プロトコルパフォーマンスを改善するための設定 |
backlog
|
Camel 2.9.6/2.10.4/2.11: netty コンシューマー(server)のバックログを設定できます。バックログは、OS に応じてベストエフォートであることに注意してください。このオプションを 200、500、1000 などの値に設定すると、TCP スタックは accept キューが何であるかを示します。このオプションが設定されていない場合、バックログは OS の設定によって異なります。
|
|
broadcast
|
false
|
UDP でマルチキャストを選択するための設定 |
connectTimeout
|
10000
|
ソケット接続が利用可能になるまでの待機時間。値はミリ秒単位です。 |
reuseAddress
|
true
|
ソケット多重化を容易にするための設定 |
sync
|
true
|
エンドポイントを一方向または request-response として設定するための設定 |
同期
|
false
|
Camel 2.10: 非同期ルーティングエンジンが使用さ れていないかどうか。その 後、非同期ルーティングエンジンが使用さ れ、true は同期処理を強制的に実行します。
|
ssl
|
false
|
SSL 暗号化をこのエンドポイントに適用するかどうかを指定するための設定 |
sslClientCertHeaders
|
false
|
Camel 2.12: 有効および SSL モードの場合、Netty コンシューマーはサブジェクト名、発行者名、シリアル番号、有効な日付範囲などのクライアント証明書が含まれるヘッダーで Camel メッセージ を強化します。 |
sendBufferSize
|
65536 バイト
|
アウトバウンド通信中に使用される TCP/UDP バッファーサイズ。サイズはバイトです。 |
receiveBufferSize
|
65536 バイト
|
インバウンド通信中に使用される TCP/UDP バッファーサイズ。サイズはバイトです。 |
option.XXX
|
null
|
Camel 2.11/2.10.4: 接頭辞としてoption. を使用して追加の netty オプションを設定できます。たとえば、"option.child.keepAlive=false" は netty オプション "child.keepAlive=false" を設定します。使用可能なオプションについては、Netty のドキュメントを参照してください。 |
corePoolSize
|
10
|
コンポーネントの起動時に割り当てられるスレッドの数。デフォルトは 10 です。注記: このオプションは Camel 2.9.2 以降から削除されます。Netty のデフォルト設定に依存するため、 |
maxPoolSize
|
100
|
このエンドポイントに割り当てることができるスレッドの最大数。デフォルトは 100 です。注記: このオプションは Camel 2.9.2 以降から削除されます。Netty のデフォルト設定に依存するため、 |
disconnect
|
false
|
使用直後に Netty チャネルから切断(閉じる)するかどうか。コンシューマーとプロデューサーの両方に使用できます。 |
lazyChannelCreation
|
true
|
チャネルは、Camel プロデューサーの開始時にリモートサーバーが稼働していない場合に例外を回避するために遅延して作成できます。 |
transferExchange
|
false
|
TCP にのみ使用されます。ボディーだけでなく、ネットワーク経由でエクスチェンジを転送することができます。以下のフィールドは転送されます:ボディー、Out body、Fault ボディー、In headers、Out ヘッダー、Fault ヘッダー、エクスチェンジプロパティー、エクスチェンジ例外。これには、オブジェクトがシリアライズ可能である必要があります。Camel はシリアル化できないオブジェクトを除外し、WARN レベルでログに記録します。 |
disconnectOnNoReply
|
true
|
sync が有効になっている場合、このオプションは NettyConsumer を指示します。この場合、返信の応答がない場合、このオプションは NettyConsumer を切断します。 |
noReplyLogLevel
|
WARN
|
sync が有効になっている場合、このオプションは NettyConsumer を決定し、送信応答がない場合に使用するロギングレベルを指定します。値は FATAL、ERROR、INFO、DEBUG、OFF です。
|
serverExceptionCaughtLogLevel
|
WARN
|
Camel 2.11.1: サーバー(NettyConsumer)が例外をキャッチする場合、このロギングレベルを使用してログに記録されます。 |
serverClosedChannelExceptionCaughtLogLevel
|
DEBUG
|
Camel 2.11.1: サーバー(NettyConsumer)が java.nio.channels.ClosedChannelException を取得する場合、このロギングレベルを使用してログに記録されます。これは、クライアントが突然切断され、Netty サーバーで閉じられた例外が発生する可能性があるため、閉じられたチャンネル例外を記録しないようにするために使用されます。
|
allowDefaultCodec
|
true
|
Camel 2.4: netty コンポーネントは、エンコーダー/ダンダーの両方が null で、テキストラインが false の場合にデフォルトのコーデックをインストールします。allowDefaultCodec を false に設定すると、netty コンポーネントがフィルターチェーンの最初の要素としてデフォルトの codec をインストールできなくなります。 |
textline
|
false
|
Camel 2.4: TCP にのみ使用されます。codec が指定されていない場合、このフラグを使用してテキスト行ベースのコーデックを示すことができます。指定されていない場合、または値が false の場合、Object Serialization は TCP 経由で想定されます。 |
delimiter
|
LINE
|
Camel 2.4: テキストラインコーデックに使用する区切り文字。使用できる値は LINE および NULL です。
|
decoderMaxLineLength
|
1024
|
Camel 2.4: テキストラインコーデックに使用する最大行の長さ。 |
autoAppendDelimiter
|
true
|
Camel 2.4: テキストラインコーデックを使用して送信する際に、不足している終了区切り文字を自動追加するかどうか。 |
encoding
|
null
|
Camel 2.4: テキストラインコーデックに使用するエンコーディング(文字セット名)。指定しない場合、Camel は JVM のデフォルト Charset を使用します。 |
workerCount
|
null
|
Camel 2.9: netty が nio モードで動作している場合、Netty は cpu_core_threads*2 である Netty のデフォルトの workerCount パラメーターを使用します。ユーザーはこの操作を使用して Netty からデフォルトの workerCount を上書きできます。 |
sslContextParameters
|
null
|
Camel 2.9: org.apache.camel.util.jsse.SSLContextParameters インスタンスを使用した SSL 設定。Using the JSSE Configuration Utility を参照してください。
|
receiveBufferSizePredictor
|
null
|
Camel 2.9: バッファーサイズ予測を設定します。詳細は Jetty のドキュメント および この メールスレッド を参照してください。 |
requestTimeout
|
0
|
Camel 2.11.1: リモートサーバーを呼び出すときに Netty プロデューサーのタイムアウトを使用できます。デフォルトでは、タイムアウトは使用されません。値はミリ秒単位です。requestTimeout オプションは Netty の ReadTimeoutHandler を使用してタイムアウトをトリガーします。Camel 2.16、2.12.1.3: は、CamelNettyRequestTimeout ヘッダーを設定してこの設定を上書きすることもできます。
|
needClientAuth
|
false
|
Camel 2.11: SSL の使用時にサーバーがクライアント認証を必要とするかどうかを設定します。 |
orderedThreadPoolExecutor
|
true
|
Camel 2.10.2: 順序付けされたスレッドプールを使用して、イベントが同じチャネルで順番に処理されるかどうか。詳細は、org.jboss.netty.handler.execution.OrderedMemoryAwareThreadPoolExecutor の netty javadoc の詳細を参照してください。
|
maximumPoolSize
|
16
|
Camel 2.10.2: 順序付けされたスレッドプールが使用されている場合のコアプールサイズ。 |
producerPoolEnabled
|
true
|
Camel 2.10.4/Camel 2.11: プロデューサーのみ。プロデューサープールが有効かどうか。重要: 同時実行性と信頼できるリクエスト/リプライを処理するのにプーリングが必要になるため、この機能をオフにしないでください。 |
producerPoolMaxActive
|
-1
|
Camel 2.10.3: プロデューサーのみ。プールが割り当てることができるオブジェクト数の上限を設定します(クライアントに対してチェックするか、チェックアウトをアイドリングします)。制限なしには負の値を使用してください。 |
producerPoolMinIdle
|
0
|
Camel 2.10.3: プロデューサーのみ。エビクタースレッド(アクティブな場合)が新しいオブジェクトを生成する前に、プロデューサープールで許可されるインスタンスの最小数を設定します。 |
producerPoolMaxIdle
|
100
|
Camel 2.10.3: プロデューサーのみ。プール内のアイドリングインスタンスの数の上限を設定します。 |
producerPoolMinEvictableIdle
|
300000
|
Camel 2.10.3: プロデューサーのみ。アイドルオブジェクトのエビクターによるエビクションの対象となる前に、オブジェクトがプールでアイドル状態にある可能性のある最小時間(ミリ秒単位)を設定します。 |
bootstrapConfiguration
|
null
|
Camel 2.12: コンシューマーのみ。org.apache.camel.component.netty.NettyServerBootstrapConfiguration インスタンスを使用して Netty ServerBootstrap オプションを設定できます。これは、複数のコンシューマーで同じ設定を再利用するために使用できます。これにより、設定をより簡単に調整できます。
|
bossGroup
|
null
|
Camel 2.12: 明示的な org.jboss.netty.channel.socket.nio.BossPool を boss スレッドプールとして使用する。たとえば、スレッドプールを複数のコンシューマーと共有するには、以下を実行します。デフォルトでは、各コンシューマーには 1 コアスレッドを持つ独自の boss プールがあります。
|
workerGroup
|
null
|
Camel 2.12: 明示的な org.jboss.netty.channel.socket.nio.WorkerPool をワーカースレッドプールとして使用する。たとえば、スレッドプールを複数のコンシューマーと共有するには、以下を実行します。デフォルトでは、各コンシューマーには 2 x cpu count コアスレッドを持つ独自のワーカープールがあります。
|
channelGroup
|
null
|
Camel 2.17: 明示的な io.netty.channel.group.ChannelGroupを使用して、メッセージを複数のチャネルに広げるには。
|
networkInterface
|
null
|
Camel 2.12: コンシューマーのみ。UDP を使用する場合、このオプションを使用して、マルチキャストグループに参加する eth0 などの名前でネットワークインターフェイスを指定できます。
|
udpConnectionlessSending
|
false
|
Camel 2.15: プロデューサーのみ。このオプションは、接続なしの UDP 送信をサポートします。これは genuine fire-and-forget です。UDP 送信試行は、
PortUnreachableException 例外を受け取ります(受信ポートでリッスンしているものがない場合)。
|
clientMode
|
false
|
Camel 2.15: コンシューマーのみ。clientMode が true の場合、Netty コンシューマーは TCP クライアントとしてアドレスに接続します。
|
useChannelBuffer
|
false
|
Camel 2.16: プロデューサーのみ。useChannelBuffer が true の場合、Netty プロデューサーはメッセージ本文を channelBuffer に切り替えてから送信します。
|
レジストリーベースのオプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 説明 |
|---|---|
passphrase
|
SSH を使用して送信されたペイロードの暗号化/復号化に使用するパスワード設定 |
keyStoreFormat
|
ペイロードの暗号化に使用されるキーストア形式。設定されていない場合、デフォルトは JKS です。 |
securityProvider
|
ペイロードの暗号化に使用するセキュリティープロバイダー。設定されていない場合、デフォルトは SunX509 です。 |
keyStoreFile
|
非推奨: 暗号化に使用されるクライアント側の証明書キーストア |
trustStoreFile
|
非推奨: 暗号化に使用されるサーバー側の証明書キーストア |
keyStoreResource
|
Camel 2.11.1: 暗号化に使用されるクライアント側の証明書キーストア。デフォルトではクラスパスからロードされますが、"classpath:"、"file:"、または "http:" をプレフィックとして指定して、異なるシステムからリソースをロードすることもできます。
|
trustStoreResource
|
Camel 2.11.1: 暗号化に使用されるサーバー側の証明書キーストア。デフォルトではクラスパスからロードされますが、"classpath:"、"file:"、または "http:" をプレフィックとして指定して、異なるシステムからリソースをロードすることもできます。
|
sslHandler
|
SSL ハンドラーを返すために使用できるクラスへの参照 |
encoder
|
アウトバウンドペイロードの特別なマーシャリングを実行するために使用できるカスタム ChannelHandler クラス。org.jboss.netty.channel.ChannelDownStreamHandler をオーバーライドする必要があります。
|
encorders
|
使用するエンコーダーのリスト。コンマ区切りの値を持つ文字列を使用し、値をレジストリー で検索でき ます。Camel がルックアップする必要があることを認識できるように、値の前に # を付けることを忘れないでください。 |
decoder
|
インバウンドペイロードの特別なマーシャリングを実行するために使用できるカスタム ChannelHandler クラス。Must override org.jboss.netty.channel.ChannelUpStreamHandler.decoder が定義されていない場合、Netty はデフォルトで ObjectDecoder クラスを介してシリアライズされた Java オブジェクトに設定されます。別の形式が想定される場合は、デコーダーを指定する必要があります。
|
decoders
|
使用するデコーダーのリスト。コンマ区切りの値を持つ文字列を使用し、値をレジストリー で検索でき ます。Camel がルックアップする必要があることを認識できるように、値の前に # を付けることを忘れないでください。 |
Netty エンドポイントとの間でメッセージを送信する リンクのコピーリンクがクリップボードにコピーされました!
Netty プロデューサー リンクのコピーリンクがクリップボードにコピーされました!
Netty コンシューマー リンクのコピーリンクがクリップボードにコピーされました!
- TCP または UDP プロトコル(任意の SSL サポートあり)を使用して、指定したソケットでリッスンします。
- text/xml、バイナリー、およびシリアライズされたオブジェクトベースのペイロードを使用して、ソケットで要求を受信します。
- それらをメッセージ交換としてルートに送信します。
Headers リンクのコピーリンクがクリップボードにコピーされました!
| ヘッダーのキー | クラス | 説明 |
|---|---|---|
NettyConstants.NETTY_CHANNEL_HANDLER_CONTEXT / CamelNettyChannelHandlerContext | org.jboss.netty.channel.ChannelHandlerContext | ChannelHandlerContext Netty によって受信される接続に関連付けられたインスタンス。 |
NettyConstants.NETTY_MESSAGE_EVENT / CamelNettyMessageEvent | org.jboss.netty.channel.MessageEvent | MessageEvent Netty によって受信される接続に関連付けられたインスタンス。 |
NettyConstants.NETTY_REMOTE_ADDRESS / CamelNettyRemoteAddress | java.net.SocketAddress | 着信ソケット接続のリモートアドレス。 |
NettyConstants.NETTY_LOCAL_ADDRESS / CamelNettyLocalAddress | java.net.SocketAddress | 着信ソケット接続のローカルアドレス。 |
Request-Reply およびシリアライズされたオブジェクトペイロードを使用した UDP Netty エンドポイント リンクのコピーリンクがクリップボードにコピーされました!
一方向通信を使用した TCP ベースの Netty コンシューマーエンドポイント リンクのコピーリンクがクリップボードにコピーされました!
Request-Reply 通信を使用する SSL/TCP ベースの Netty コンシューマーエンドポイント リンクのコピーリンクがクリップボードにコピーされました!
JSSE 設定ユーティリティーの使用 リンクのコピーリンクがクリップボードにコピーされました!
コンポーネントのプログラムによる設定 リンクのコピーリンクがクリップボードにコピーされました!
エンドポイントの Spring DSL ベースの設定 リンクのコピーリンクがクリップボードにコピーされました!
Jetty コンポーネントでの基本的な SSL/TLS 設定の使用 リンクのコピーリンクがクリップボードにコピーされました!
SSLSession およびクライアント証明書へのアクセス リンクのコピーリンクがクリップボードにコピーされました!
javax.net.ssl.SSLSession にアクセスできます。ssl=true の場合、Netty コンポーネントは以下のように SSLSession を Camel Message のヘッダーとして保存します。
SSLSession session = exchange.getIn().getHeader(NettyConstants.NETTY_SSL_SESSION, SSLSession.class); // get the first certificate which is client certificate javax.security.cert.X509Certificate cert = session.getPeerCertificateChain()[0]; Principal principal = cert.getSubjectDN();
SSLSession session = exchange.getIn().getHeader(NettyConstants.NETTY_SSL_SESSION, SSLSession.class);
// get the first certificate which is client certificate
javax.security.cert.X509Certificate cert = session.getPeerCertificateChain()[0];
Principal principal = cert.getSubjectDN();
needClientAuth=true を設定してクライアントを認証します。設定しないと、SSLSession はクライアント証明書に関する情報にアクセスできず、例外 javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated が発生する可能性があります。クライアント証明書の有効期限が切れている場合や無効な場合は、この例外が発生する場合もあります。
sslClientCertHeaders オプションは true に設定でき、クライアント証明書に関する詳細が含まれるヘッダーで Camel Message を補完します。たとえば、サブジェクト名は、ヘッダー CamelNettySSLClientCertSubjectName で簡単に利用できます。
複数のコーデックの使用 リンクのコピーリンクがクリップボードにコピーされました!
完了したらチャンネルを閉じる リンクのコピーリンクがクリップボードにコピーされました!
disconnect=true を設定します。
CamelNettyCloseChannelWhenComplete キーを持つヘッダーをブール値 true に追加する必要があります。たとえば、以下の例では、bye メッセージをクライアントに書き戻した後にチャンネルを閉じます。
作成されたパイプラインを完全に制御するためのカスタムチャネルパイプラインファクトリーの追加 リンクのコピーリンクがクリップボードにコピーされました!
- Producer リンクされたチャネルパイプラインファクトリーは、
ClientPipelineFactoryの抽象クラスを拡張する必要があります。 - Consumer リンクされたチャネルパイプラインファクトリーは、
ServerPipelineFactoryの抽象クラスを拡張する必要があります。 - クラスは、カスタムハンドラー、エンコーダー、およびデコーダーを挿入するために、getPipeline ()メソッドを上書きする必要があります。getPipeline ()メソッドを上書きしない場合、ハンドラー、エンコーダー、またはデコーダーのないパイプラインがパイプラインに有線されます。
Netty boss およびワーカースレッドプールの再利用 リンクのコピーリンクがクリップボードにコピーされました!
NettyWorkerPoolBuilder を使用して共有ワーカースレッドプールを作成できます。
org.apache.camel.component.netty.NettyServerBossPoolBuilder ビルダーと、Netty 生成用の org.apache.camel.component.netty.NettyClientBossPoolBuilder があります。
workerPool オプションを設定することで、このワーカープールを参照できます。
その他の参考資料 リンクのコピーリンクがクリップボードにコピーされました!
第118章 Netty4 リンクのコピーリンクがクリップボードにコピーされました!
Netty4 コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
netwServerInitializerFactoryork アプリケーションを迅速かつ簡単に開発できます。Netty4 は、TCP や UDP ソケットサーバーなどのネットワークプログラミングを大幅に簡素化および合理化します。
pom.xml に追加する必要があります。
Camel on EAP デプロイメント リンクのコピーリンクがクリップボードにコピーされました!
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
netty4:tcp://localhost:99999[?options] netty4:udp://remotehost:99999/[?options]
netty4:tcp://localhost:99999[?options]
netty4:udp://remotehost:99999/[?options]
?option=value&option=value&...
オプション リンクのコピーリンクがクリップボードにコピーされました!
|
名前
|
デフォルト値
|
説明
|
|---|---|---|
keepAlive
|
true
|
非アクティブのためにソケットが閉じられないように設定
|
tcpNoDelay
|
true
|
TCP プロトコルパフォーマンスを改善するための設定
|
backlog
|
|
netty コンシューマー(サーバー)にバックログを設定できます。バックログは、OS に応じてベストエフォートであることに注意してください。このオプションを
200、500 または 1000 などの値に設定すると、TCP スタックはaccept キューの長さを指定します。このオプションが設定されていない場合、バックログは OS の設定によって異なります。
|
broadcast
|
false
|
UDP でマルチキャストを選択するための設定
|
connectTimeout
|
10000
|
ソケット接続が利用可能になるまでの待機時間。値はミリ秒単位です。
|
reuseAddress
|
true
|
ソケット多重化を容易にするための設定
|
sync
|
true
|
エンドポイントを一方向または request-response として設定するための設定
|
synchronous
|
false
|
|
ssl
|
false
|
SSL 暗号化をこのエンドポイントに適用するかどうかを指定するための設定
|
sslClientCertHeaders
|
false
|
有効および SSL モードの場合、Netty コンシューマーはサブジェクト名、発行者名、シリアル番号、有効な日付範囲などのクライアント証明書に関する情報で Camel Message を補完します。
|
sendBufferSize
|
65536 bytes
|
アウトバウンド通信中に使用される TCP/UDP バッファーサイズ。サイズはバイトです。
|
receiveBufferSize
|
65536 bytes
|
インバウンド通信中に使用される TCP/UDP バッファーサイズ。サイズはバイトです。
|
option.XXX
|
null
|
"option." を接頭辞として使用して、追加の netty オプションを設定できます。たとえば、"option.child.keepAlive=false" は netty オプション "child.keepAlive=false" を設定します。使用可能なオプションについては、Netty のドキュメントを参照してください。
|
corePoolSize
|
10
|
コンポーネントの起動時に割り当てられるスレッドの数。デフォルトは 10 です。注記: このオプションは Camel 2.9.2 以降から削除されます。Netty のデフォルト設定に依存するため、
|
maxPoolSize
|
100
|
このエンドポイントに割り当てることができるスレッドの最大数。デフォルトは 100 です。注記: このオプションは Camel 2.9.2 以降から削除されます。Netty のデフォルト設定に依存するため、
|
disconnect
|
false
|
使用直後に Netty チャネルから切断(閉じる)するかどうか。コンシューマーとプロデューサーの両方に使用できます。
|
lazyChannelCreation
|
true
|
チャネルは、Camel プロデューサーの開始時にリモートサーバーが稼働していない場合に例外を回避するために遅延して作成できます。
|
transferExchange
|
false
|
TCP にのみ使用されます。ボディーだけでなく、ネットワーク経由でエクスチェンジを転送することができます。以下のフィールドは転送されます:ボディー、Out body、Fault ボディー、In headers、Out ヘッダー、Fault ヘッダー、エクスチェンジプロパティー、エクスチェンジ例外。これには、オブジェクトがシリアライズ可能である必要があります。Camel はシリアル化できないオブジェクトを除外し、WARN レベルでログに記録します。
|
disconnectOnNoReply
|
true
|
sync が有効になっている場合、このオプションは NettyConsumer を指示します。この場合、返信の応答がない場合、このオプションは NettyConsumer を切断します。
|
noReplyLogLevel
|
WARN
|
sync が有効になっている場合、このオプションは NettyConsumer を決定し、送信応答がない場合に使用するロギングレベルを指定します。値:
FATAL, ERROR, INFO, DEBUG, OFF
|
serverExceptionCaughtLogLevel
|
WARN
|
サーバー(NettyConsumer)が例外をキャッチする場合、このロギングレベルを使用してログに記録されます。
|
serverClosedChannelExceptionCaughtLogLevel
|
DEBUG
|
サーバー(NettyConsumer)が
java.nio.channels.ClosedChannelException をキャッチすると、このログレベルを使用してログに記録されます。これは、クライアントが突然切断され、Netty サーバーで閉じられた例外が発生する可能性があるため、閉じられたチャンネル例外を記録しないようにするために使用されます。
|
allowDefaultCodec
|
true
|
netty コンポーネントは、エンコーダー/ダンダーが null で、テキストラインが false の場合にデフォルトのコーデックをインストールします。allowDefaultCodec を false に設定すると、netty コンポーネントがフィルターチェーンの最初の要素としてデフォルトの codec をインストールできなくなります。
|
textline
|
false
|
TCP にのみ使用されます。codec が指定されていない場合、このフラグを使用してテキスト行ベースのコーデックを示すことができます。指定されていない場合、または値が false の場合、Object Serialization は TCP 経由で想定されます。
|
delimiter
|
LINE
|
テキストラインコーデックに使用する区切り文字。使用できる値は
LINE および NULL です。
|
decoderMaxLineLength
|
1024
|
テキストラインコーデックに使用する最大行の長さ。
|
autoAppendDelimiter
|
true
|
テキストラインコーデックを使用して送信する際に、不足している終了区切り文字を自動追加するかどうか。
|
encoding
|
null
|
テキストラインコーデックに使用するエンコーディング(文字セット名)。指定しない場合、Camel は JVM のデフォルト Charset を使用します。
|
workerCount
|
null
|
netty が nio モードで機能する場合、Netty は cpu_core_threads*2 のデフォルトの workerCount パラメーターを使用します。ユーザーはこの操作を使用して Netty からデフォルトの workerCount を上書きできます。
|
sslContextParameters
|
null
|
org.apache.camel.util.jsse.SSLContextParameters インスタンスを使用した SSL 設定。Security Guide および Using the JSSE Configuration Utility の Configuring Transport Security for Camel Components の章 を参照してください。
|
receiveBufferSizePredictor
|
null
|
バッファーサイズ予測を設定します。詳細は Jetty のドキュメント および この メールスレッド を参照してください。
|
requestTimeout
|
0
|
リモートサーバーを呼び出すときに Netty プロデューサーのタイムアウトを使用できます。デフォルトでは、タイムアウトは使用されません。値はミリ秒単位です。
requestTimeout は Netty の ReadTimeoutHandler を使用してタイムアウトをトリガーします。Camel 2.16、2.12.1.3: は、CamelNettyRequestTimeout ヘッダーを設定してこの設定を上書きすることもできます。
|
needClientAuth
|
false
|
SSL の使用時にサーバーがクライアント認証を必要とするかどうかを設定します。
|
usingExecutorService
|
true
|
executorService を使用して camel ルート内でメッセージを処理するかどうかは、executorService を NettyComponent から設定できます。
|
maximumPoolSize
|
16
|
順序付けされたスレッドプールが使用されている場合のコアプールサイズ。注記: これは 、Camel 2.15 から 2.14.1 以降
NettyComponent レベルに設定できます。
|
producerPoolEnabled
|
true
|
プロデューサーのみ。プロデューサープールが有効かどうか。重要: 同時実行性と信頼できるリクエスト/リプライを処理するのにプーリングが必要になるため、この機能をオフにしないでください。
|
producerPoolMaxActive
|
-1
|
プロデューサーのみ。プールが割り当てることができるオブジェクト数の上限を設定します(クライアントに対してチェックするか、チェックアウトをアイドリングします)。制限なしには負の値を使用してください。
|
producerPoolMinIdle
|
0
|
プロデューサーのみ。エビクタースレッド(アクティブな場合)が新しいオブジェクトを生成する前に、プロデューサープールで許可されるインスタンスの最小数を設定します。
|
producerPoolMaxIdle
|
100
|
プロデューサーのみ。プール内のアイドリングインスタンスの数の上限を設定します。
|
producerPoolMinEvictableIdle
|
300000
|
プロデューサーのみ。アイドルオブジェクトのエビクターによるエビクションの対象となる前に、オブジェクトがプールでアイドル状態にある可能性のある最小時間(ミリ秒単位)を設定します。
|
bootstrapConfiguration
|
null
|
コンシューマーのみ。
org.apache.camel.component.netty4.NettyServerBootstrapConfiguration インスタンスを使用して Netty ServerBootstrap オプションを設定できます。これは、複数のコンシューマーで同じ設定を再利用するために使用できます。これにより、設定をより簡単に調整できます。
|
bossGroup
|
null
|
boss スレッドプールとして明示的な
io.netty.channel.EventLoopGroup を使用します。たとえば、スレッドプールを複数のコンシューマーと共有するには、以下を実行します。デフォルトでは、各コンシューマーには 1 コアスレッドを持つ独自の boss プールがあります。
|
workerGroup
|
null
|
明示的な
io.netty.channel.EventLoopGroup をワーカースレッドプールとして使用するには、以下を実行します。たとえば、スレッドプールを複数のコンシューマーと共有するには、以下を実行します。デフォルトでは、各コンシューマーには 2 x cpu count コアスレッドを持つ独自のワーカープールがあります。
|
channelGroup
|
null
|
Camel 2.17: 明示的な io.netty.channel.group.ChannelGroupを使用して、メッセージを複数のチャネルに広げるには。
|
networkInterface
|
null
|
コンシューマーのみ。UDP を使用する場合、このオプションを使用して、マルチキャストグループに参加する
eth0 などの名前でネットワークインターフェイスを指定できます。
|
clientInitializerFactory
|
null
|
Camel 2.15: カスタムクライアントイニシャライザーファクトリーを使用して、チャネルのパイプラインを制御します。詳細につていは以下をご覧ください |
serverInitializerFactory
|
null
|
Camel 2.15: カスタムサーバーイニシャライザーファクトリーを使用して、チャネルのパイプラインを制御します。詳細につていは以下をご覧ください |
clientPipelineFactory
|
null
|
非推奨: 代わりに clientInitializerFactory を使用してください。
|
serverPipelineFactory
|
null
|
非推奨: 代わりに serverInitializerFactory を使用してください。
|
udpConnectionlessSending
|
false
|
Camel 2.15: プロデューサーのみ。このオプションは、接続なしの UDP 送信をサポートします。これは genuine fire-and-forget です。UDP 送信試行は、PortUnreachableException 例外を受け取ります(受信ポートでリッスンしているものがない場合)。
|
clientMode
|
false
|
Camel 2.15: コンシューマーのみ。clientMode が true の場合、Netty コンシューマーは TCP クライアントとしてアドレスに接続します。
|
reconnect
|
true
|
Camel 2.16: コンシューマーのみ。コンシューマーで clientMode でのみ使用され、コンシューマーは切断時に自動的に再接続を試みます。
|
reconnectInterval
|
10000
|
Camel 2.16: コンシューマーのみ。reconnect および clientMode が有効な場合に使用されます。再接続を試行する間隔(ミリ秒単位)。
|
useByteBuf
|
false
|
Camel 2.16: プロデューサーのみ。useByteBuf が true の場合、Netty プロデューサーはメッセージ本文を ByteBuf に変換してから送信してください。
|
udpByteArrayCodec
|
false
|
Camel 2.16: UDP プロトコルを使用すると、このオプションを true にすると、デフォルトのオブジェクトシリアル化コーデックではなく、バイト配列としてデータが送信されます。
|
reuseChannel
|
false
|
Camel 2.17: プロデューサーのみ。このオプションを使用すると、プロデューサーはエクスチェンジの処理ライフサイクルで同じ Netty チャネルを再利用できます。これは、Camel ルートでサーバーを複数回呼び出す必要があり、同じネットワーク接続を使用する場合に使用できます。これを使用する場合、エクスチェンジが完了するまでチャンネルは接続プールに戻されません。disconnect オプションが true に設定されている場合は切断されます。再利用された Channel は、鍵 NettyConstants#NETTY_CHANNEL を使用してエクスチェンジプロパティーとしてエクスチェンジプロパティーとして保存されます。これにより、ルーティング中にチャネルを取得して使用することができます。
|
レジストリーベースのオプション リンクのコピーリンクがクリップボードにコピーされました!
|
名前
|
説明
|
|---|---|
passphrase
|
SSH を使用して送信されたペイロードの暗号化/復号化に使用するパスワード設定
|
keyStoreFormat
|
ペイロードの暗号化に使用されるキーストア形式。設定されていない場合、デフォルトは JKS です。
|
securityProvider
|
ペイロードの暗号化に使用するセキュリティープロバイダー。設定されていない場合、デフォルトは SunX509 です。
|
keyStoreFile
|
非推奨: 暗号化に使用されるクライアント側の証明書キーストア
|
trustStoreFile
|
非推奨: 暗号化に使用されるサーバー側の証明書キーストア
|
keyStoreResource
|
Camel 2.11.1: 暗号化に使用されるクライアント側の証明書キーストア。はクラスパスからデフォルトでロードされますが、別のシステムからリソースを読み込むには、
"classpath:"、"file:"、または "http:" の接頭辞を付けることができます。
|
trustStoreResource
|
Camel 2.11.1: 暗号化に使用されるサーバー側の証明書キーストア。はクラスパスからデフォルトでロードされますが、別のシステムからリソースを読み込むには、
"classpath:"、"file:"、または "http:" の接頭辞を付けることができます。
|
sslHandler
|
SSL ハンドラーを返すために使用できるクラスへの参照
|
encoder
|
アウトバウンドペイロードの特別なマーシャリングを実行するために使用できるカスタム
ChannelHandler クラス。io.netty.channel.ChannelInboundHandlerAdapter を上書きする必要があります。
|
encoders
|
使用するエンコーダーのリスト。コンマ区切りの値を持つ文字列を使用し、値をレジストリー で検索でき ます。Camel がルックアップする必要があることを認識できるように、値の前に # を付けることを忘れないでください。
|
decoder
|
インバウンドペイロードの特別なマーシャリングを実行するために使用できるカスタム
ChannelHandler クラス。io.netty.channel.ChannelOutboundHandlerAdapter を上書きする必要があります。
|
decoders
|
使用するデコーダーのリスト。コンマ区切りの値を持つ文字列を使用し、値をレジストリー で検索でき ます。Camel がルックアップする必要があることを認識できるように、値の前に # を付けることを忘れないでください。
|
共有不可能なエンコーダーまたはデコーダーの使用 リンクのコピーリンクがクリップボードにコピーされました!
org.apache.camel.component.netty.ChannelHandlerFactory インターフェイスを実装し、newChannelHandler メソッドで新規インスタンスを返します。これにより、エンコーダー/デコーダーを安全に使用できるようになります。そうでない場合、Netty コンポーネントはエンドポイントの作成時に WARN をログに記録します。
org.apache.camel.component.netty.ChannelHandlerFactories ファクトリークラスを提供します。このクラスには、一般的に使用されるメソッドが多数あります。
Netty エンドポイントとの間でメッセージを送信する リンクのコピーリンクがクリップボードにコピーされました!
Netty プロデューサー リンクのコピーリンクがクリップボードにコピーされました!
Netty コンシューマー リンクのコピーリンクがクリップボードにコピーされました!
- TCP または UDP プロトコル(任意の SSL サポートあり)を使用して、指定したソケットでリッスンします。
- text/xml、バイナリー、およびシリアライズされたオブジェクトベースのペイロードを使用して、ソケットで要求を受信します。
- それらをメッセージ交換としてルートに送信します。
使用例 リンクのコピーリンクがクリップボードにコピーされました!
Request-Reply およびシリアライズされたオブジェクトペイロードを使用した UDP Netty エンドポイント リンクのコピーリンクがクリップボードにコピーされました!
一方向通信を使用した TCP ベースの Netty コンシューマーエンドポイント リンクのコピーリンクがクリップボードにコピーされました!
複数のコーデックの使用 リンクのコピーリンクがクリップボードにコピーされました!
from("direct:multiple-codec").to("netty4:tcp://localhost:{{port}}?encoders=#encoders&sync=false");
from("netty4:tcp://localhost:{{port}}?decoders=#length-decoder,#string-decoder&sync=false").to("mock:multiple-codec");
from("direct:multiple-codec").to("netty4:tcp://localhost:{{port}}?encoders=#encoders&sync=false");
from("netty4:tcp://localhost:{{port}}?decoders=#length-decoder,#string-decoder&sync=false").to("mock:multiple-codec");
完了したらチャンネルを閉じる リンクのコピーリンクがクリップボードにコピーされました!
disconnect=true を設定するだけで実行できます。
CamelNettyCloseChannelWhenComplete キーが true のヘッダーをブール値 値に追加する必要があります。たとえば、以下の例では、bye メッセージをクライアントに書き戻した後にチャンネルを閉じます。
作成されたパイプラインを完全に制御するためのカスタムチャネルパイプラインファクトリーの追加 リンクのコピーリンクがクリップボードにコピーされました!
- Producer リンクされたチャネルパイプラインファクトリーは、抽象クラス
ClientInitializerFactoryを拡張する必要があります。 - Consumer linked チャネルパイプラインファクトリーは、抽象クラス
ServerInitializerFactoryを拡張する必要があります。 - クラスは、
initChannel()メソッドをオーバーライドして、カスタムハンドラー、エンコーダー、およびデコーダーを挿入する必要があります。initChannel()メソッドをオーバーライドしない場合は、ハンドラー、エンコーダー、またはデコーダーがないパイプラインを作成し、パイプラインにワイヤリングします。
ServerInitializerFactory ファクトリーを作成する方法を示しています。
例118.1 サーバーイニシャライザーファクトリーの使用
Netty boss およびワーカースレッドプールの再利用 リンクのコピーリンクがクリップボードにコピーされました!
NettyWorkerPoolBuilder を使用して共有ワーカースレッドプールを作成できます。
org.apache.camel.component.netty4.NettyServerBossPoolBuilder ビルダーがあり、Netty が生成する org.apache.camel.component.netty4.NettyClientBossPoolBuilder があります。
workerPool オプションを設定することで、このワーカープールを参照できます。
<route>
<from uri="netty4:tcp://localhost:5021?textline=true&sync=true&workerPool=#sharedPool&usingExecutorService=false"/>
<to uri="log:result"/>
...
</route>
<route>
<from uri="netty4:tcp://localhost:5021?textline=true&sync=true&workerPool=#sharedPool&usingExecutorService=false"/>
<to uri="log:result"/>
...
</route>
<route>
<from uri="netty4:tcp://localhost:5022?textline=true&sync=true&workerPool=#sharedPool&usingExecutorService=false"/>
<to uri="log:result"/>
...
</route>
<route>
<from uri="netty4:tcp://localhost:5022?textline=true&sync=true&workerPool=#sharedPool&usingExecutorService=false"/>
<to uri="log:result"/>
...
</route>
第119章 Netty HTTP リンクのコピーリンクがクリップボードにコピーされました!
Netty HTTP コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
camel-netty4 コンポーネントのアップグレードが完了したときに Netty 4.0 を使用するようにアップグレードすることが意図されています。現時点では、このコンポーネントは Netty 3.x をベースとしています。アップグレードは、可能な限り後方互換性があることを目的としています。
文字列 に変換する必要があります。
pom.xml に以下の依存関係を追加する必要があります。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
netty-http:http://localhost:8080[?options]
netty-http:http://localhost:8080[?options]
?option=value&option=value&.. の形式で追加できます。
netty-http:http//example.com?myParam=myValue&compression=true のようにエンドポイント URI を作成できます。この例では、myParam は HTTP パラメーターですが、compression は Camel エンドポイントオプションです。このような状況で Camel によって使用されるストラテジーは、利用可能なエンドポイントオプションを解決し、URI から削除することです。これは、前述の例では、Netty HTTP プロデューサーによってエンドポイントに送信される HTTP リクエストは、http//example.com?myParam=myValue のようになります。compression エンドポイントオプションはターゲット URL から解決され、削除されます。
CamelHttpQueryなど)を使用してエンドポイントオプションを指定できないことに注意してください。エンドポイントオプションは、エンドポイント URI 定義レベルでのみ指定できます( to または from DSL 要素など)。
HTTP オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | デフォルト値 | 説明 |
|---|---|---|
chunkedMaxContentLength
|
1mb
|
Netty HTTP サーバーで受信されるチャンクごとの最大コンテンツ長(バイト単位)。 |
圧縮
|
false
|
クライアントが HTTP ヘッダーからサポートしている場合、Netty HTTP サーバーの圧縮に gzip/deflate の使用を許可します。 |
headerFilterStrategy
|
カスタムの org.apache.camel.spi.HeaderFilterStrategy を使用してヘッダーをフィルターリングします。
|
|
httpMethodRestrict
|
Netty HTTP コンシューマーで HTTP メソッドを無効にするには、以下を行います。コンマで区切って複数指定できます。 | |
mapHeaders
|
true
|
このオプションを有効にすると、Netty から Camel Message へのバインド中にヘッダーもマッピングされます(たとえば、ヘッダーとして Camel Message に追加されます)。このオプションをオフにして無効にすることができます。ヘッダーには、Netty HTTP リクエスト org.jboss.netty.handler.codec.http.HttpRequest インスタンスを返す getHttpRequest () メソッドが含まれる org.apache.camel.component.netty.http.NettyHttpMessage メッセージから引き続きアクセスできます。
|
matchOnUriPrefix
|
false
|
完全一致が見つからない場合に Camel が URI 接頭辞と一致することでターゲットコンシューマーの検索を試みるかどうか。詳細につていは以下をご覧ください |
nettyHttpBinding
|
Netty および Camel Message API との間でバインドするためにカスタム org.apache.camel.component.netty.http.NettyHttpBinding を使用するには、以下を行います。
|
|
bridgeEndpoint
|
false
|
オプションが true の場合、プロデューサーは Exchange.HTTP_URI ヘッダーを無視し、リクエストにエンドポイントの URI を使用します。また、throwExceptionOnFailure を false に設定して、プロデューサーがすべての障害応答を返信するようにすることもできます。ブリッジモードで動作しているコンシューマーは、gzip 圧縮および WWW URL フォームエンコーディングを省略します( Exchange.SKIP_GZIP_ENCODING ヘッダーおよび Exchange.SKIP_WWW_FORM_URLENCODED ヘッダーを消費されたエクスチェンジに追加します)。
|
throwExceptionOnFailure
|
true
|
リモートサーバーからの応答が失敗した場合に HttpOperationFailedException を出力することを無効にするオプション。これにより、HTTP ステータスコードに関するすべての応答を取得できます。
|
traceEnabled
|
false
|
この Netty HTTP コンシューマーに対して HTTP TRACE を有効にするかどうかを指定します。デフォルトでは、TRACE はオフになっています。 |
transferException
|
false
|
有効にすると、エクスチェンジ がコンシューマー側で処理に失敗し、発生した例外が application/x-java-serialized-object コンテンツタイプとして応答でシリアライズされた場合に、例外がシリアライズされました。プロデューサー側では、例外がデシリアライズされ、HttpOperationFailedException ではなくそのまま出力されます。原因となった例外はシリアライズする必要があります。
|
urlDecodeHeaders
|
false
|
このオプションを有効にすると、Netty から Camel Message へのバインディング時に、ヘッダーの値は URL デコードされます(例:%20 は空白文字になります)。このオプションは、デフォルトの org.apache.camel.component.netty.http.NettyHttpBinding によって使用されるため、カスタム org.apache.camel.component.netty.http.NettyHttpBinding を実装する場合は、このオプションに応じてヘッダーをデコードする必要があります。
|
nettySharedHttpServer
|
null
|
共有 Netty HTTP サーバーを使用するには、以下を行います。詳細は Netty HTTP Server Example を参照してください。 |
disableStreamCache
|
false
|
Netty HttpRequest#getContent ()からの raw 入力ストリームがキャッシュされるかどうかを決定します(Camel はストリームを軽量メモリーベースの Stream キャッシュに読み取ります)。デフォルトでは、Camel は Netty 入力ストリームをキャッシュして複数回読み取りし、Camel がストリームからすべてのデータを取得できるようにします。ただし、ファイルや他の永続ストアに直接ストリーミングするなど、raw ストリームにアクセスする必要がある場合などにこのオプションを true に設定できます。このオプションを有効にすると、Netty ストリームが追加設定なしで複数回読み取ることができないため、Netty raw ストリームで reader インデックスを手動でリセットする必要があります。
|
securityConfiguration
|
null
|
コンシューマーのみ。セキュアな Web リソースを設定するための org.apache.camel.component.netty.http.NettyHttpSecurityConfiguration を参照します。
|
send503whenSuspended
|
true
|
コンシューマーのみ。コンシューマーが一時停止されたときに HTTP ステータスコード 503 を送信するかどうか。オプションが false の場合、コンシューマーが一時停止されると Netty Acceptor がバインド解除されるため、クライアントは接続できなくなります。
|
maxHeaderSize
|
8192
|
Camel 2.15.3 : コンシューマーのみ。すべてのヘッダーの最大長。各ヘッダーの長さの合計がこの値を超えると、TooLongFrameException が発生します。
|
okStatusCodeRange
|
200-299
|
Camel 2.16: 正常な応答と見なされるステータスコード。値は含まれます。範囲は、構文 from-to を使用して定義する必要があります。
|
useRelativePath
|
false
|
Camel 2.16 : プロデューサーのみ。リクエスト行または絶対 URI (http://0.0.0.0:8080/myapp)でパス(/myapp)を使用するかどうか(デフォルト)。
|
NettyHttpSecurityConfiguration には以下のオプションがあります。
| 名前 | デフォルト値 | 説明 |
|---|---|---|
認証
|
true
|
認証が有効であるかどうか。を使用して、この機能を迅速にオフにできます。 |
constraint
|
Basic
|
サポートされる制約。現在、Basic のみが実装され、サポートされています。
|
realm
|
null
|
JAAS セキュリティーレルムの名前。このオプションは必須です。 |
securityConstraint
|
null
|
ACL を Web リソースに定義できるセキュリティー制約マッパーをプラグインできるようにします。 |
securityAuthenticator
|
null
|
認証を実行するオーセンティケーターをプラグインできるようにします。設定されていない場合、org.apache.camel.component.netty.http.JAASSecurityAuthenticator はデフォルトで使用されます。
|
loginDeniedLoggingLevel
|
DEBUG
|
ログイン試行の失敗時に使用されるロギングレベル。これにより、ログインに失敗した理由の詳細を確認できます。 |
roleClassName
|
null
|
ユーザーロールを含む Principal 実装の FQN クラス名を指定するには、以下を実行します。何も指定されていない場合、Netty HTTP コンポーネントはデフォルトで、FQN クラス名に FQN クラス名に小文字の単語ロールがある場合に Principal が ロール ベースであると想定します。複数のクラス名をコンマで区切って指定できます。
|
メッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | タイプ | 説明 |
|---|---|---|
CamelHttpMethod
|
文字列
|
GET、POST、TRACE など、使用する HTTP メソッドを制御できます。タイプは org.jboss.netty.handler.codec.http.HttpMethod インスタンスでも指定できます。
|
CamelHttpQuery
|
文字列
|
エンドポイント設定を上書きする String 値として URI クエリーパラメーターを指定できるようにします。& 記号を使用して、複数のパラメーターを区切ります。例: foo=bar&beer=yes
|
CamelHttpPath
|
文字列
|
Camel 2.13.1/2.12.4: エンドポイント設定をオーバーライドする String の値として URI コンテキストパスおよびクエリーパラメーターを指定できます。これにより、同じリモート HTTP サーバーを呼び出すために同じプロデューサーを再利用できますが、動的コンテキストパスおよびクエリーパラメーターを使用できます。
|
Content-Type
|
文字列
|
HTTP ボディーのコンテンツタイプを設定するには、以下を行います。例: text/plain; charset="UTF-8"。
|
CamelHttpResponseCode
|
int
|
使用する HTTP ステータスコードを設定できます。デフォルトでは、成功には 200、失敗には 500 が使用されます。 |
from ("netty-http:http:0.0.0.0:8080/myapp")... を持つルートのオフセットを取ります。
| 名前 | タイプ | 説明 |
|---|---|---|
CamelHttpMethod
|
文字列
|
GET、POST、TRACE などの HTTP メソッド。 |
CamelHttpUrl
|
文字列
|
プロトコル、ホストおよびポートなどの URL。 |
CamelHttpUri
|
文字列
|
プロトコル、ホストおよびポートのない URI ( /myapp など) |
CamelHttpQuery
|
文字列
|
foo=bar&beer=yesなどのクエリーパラメーター
|
CamelHttpRawQuery
|
文字列
|
Camel 2.13.0:
foo=bar&beer=yes などのクエリーパラメーター。コンシューマー(URL デコード前)に到達する際に、raw 形式で保存されます。
|
CamelHttpPath
|
文字列
|
追加のコンテキストパス。クライアントが context-path /myapp と呼ばれる場合、この値は空になります。クライアントが /myapp/mystuff を呼び出す場合、このヘッダー値は /mystuff になります。つまり、ルートエンドポイントに設定された context-path の後に値になります。
|
CamelHttpCharacterEncoding
|
文字列
|
content-type ヘッダーからの charset。 |
CamelHttpAuthentication
|
文字列
|
ユーザーが HTTP Basic を使用して認証された場合、このヘッダーは Basic の値で追加されます。
|
Content-Type
|
文字列
|
提供された場合はコンテンツタイプ。例: text/plain; charset="UTF-8"。
|
Netty タイプへのアクセス リンクのコピーリンクがクリップボードにコピーされました!
org.apache.camel.component.netty.http.NettyHttpMessage を Exchange のメッセージ実装として使用します。これにより、エンドユーザーは以下のように元の Netty 要求/応答インスタンスにアクセスできます。元の応答は常にアクセスできない可能性があることに注意してください。
org.jboss.netty.handler.codec.http.HttpRequest request = exchange.getIn(NettyHttpMessage.class).getHttpRequest();
org.jboss.netty.handler.codec.http.HttpRequest request = exchange.getIn(NettyHttpMessage.class).getHttpRequest();
例 リンクのコピーリンクがクリップボードにコピーされました!
from("netty-http:http://0.0.0.0:8080/foo")
.transform().constant("Bye World");
from("netty-http:http://0.0.0.0:8080/foo")
.transform().constant("Bye World");
String out = template.requestBody("netty-http:http://localhost:8080/foo", "Hello World", String.class);
System.out.println(out);
String out = template.requestBody("netty-http:http://localhost:8080/foo", "Hello World", String.class);
System.out.println(out);
Netty がワイルドカードと一致させる方法 リンクのコピーリンクがクリップボードにコピーされました!
from("netty-http:http://0.0.0.0:8123/foo").to("mock:foo");
from("netty-http:http://0.0.0.0:8123/foo").to("mock:foo");
http://0.0.0.0:8123/foo を入力し、http://0.0.0.0:8123/foo/bar を使用しない場合は一致しません。
from("netty-http:http://0.0.0.0:8123/foo?matchOnUriPrefix=true").to("mock:foo");
from("netty-http:http://0.0.0.0:8123/foo?matchOnUriPrefix=true").to("mock:foo");
foo で始まるすべてのエンドポイントに一致するようになりました。
from("netty-http:http://0.0.0.0:8123?matchOnUriPrefix=true").to("mock:foo");
from("netty-http:http://0.0.0.0:8123?matchOnUriPrefix=true").to("mock:foo");
同じポートでの複数ルートの使用 リンクのコピーリンクがクリップボードにコピーされました!
org.jboss.netty.bootstrap.ServerBootstrap インスタンスなど)を共有する Netty HTTP からの複数のルートを持つことができます。これを実行するには、ルートが同じ org.jboss.netty.bootstrap.ServerBootstrap インスタンスを共有するため、複数のブートストラップオプションをルートで同一にする必要があります。インスタンスは、最初に作成したルートからのオプションで設定されます。
org.apache.camel.component.netty.NettyServerBootstrapConfiguration 設定クラスで定義されたすべてのオプションです。別のオプションで別のルートを設定した場合、Camel は起動時に例外を出力し、オプションが同一ではないことを示します。これを軽減するには、すべてのオプションが同一であることを確認します。
org.apache.camel.component.netty.NettyServerBootstrapConfiguration オプションを持たない、誤って設定された 2 番目のルートの例です。これにより、起動時に Camel が失敗します。
複数のルートを持つ同じサーバーブートストラップ設定の再利用 リンクのコピーリンクがクリップボードにコピーされました!
org.apache.camel.component.netty.NettyServerBootstrapConfiguration タイプの単一のインスタンスに共通のサーバーブートストラップオプションを設定すると、Netty HTTP コンシューマーで bootstrapConfiguration オプションを使用して、すべてのコンシューマーで同じオプションを参照および再利用できます。
<bean id="nettyHttpBootstrapOptions" class="org.apache.camel.component.netty.NettyServerBootstrapConfiguration"> <property name="backlog" value="200"/> <property name="connectTimeout" value="20000"/> <property name="workerCount" value="16"/> </bean>
<bean id="nettyHttpBootstrapOptions" class="org.apache.camel.component.netty.NettyServerBootstrapConfiguration">
<property name="backlog" value="200"/>
<property name="connectTimeout" value="20000"/>
<property name="workerCount" value="16"/>
</bean>
OSGi コンテナー内の複数のバンドル間で複数のルートを持つ同じサーバーブートストラップ設定の再利用 リンクのコピーリンクがクリップボードにコピーされました!
HTTP Basic 認証の使用 リンクのコピーリンクがクリップボードにコピーされました!
<route>
<from uri="netty-http:http://0.0.0.0:{{port}}/foo?securityConfiguration.realm=karaf"/>
...
</route>
<route>
<from uri="netty-http:http://0.0.0.0:{{port}}/foo?securityConfiguration.realm=karaf"/>
...
</route>
LoginModuleを使用します。
Web リソースでの ACL の指定 リンクのコピーリンクがクリップボードにコピーされました!
org.apache.camel.component.netty.http.SecurityConstraint を使用すると、Web リソースに制限を定義できます。また、org.apache.camel.component.netty.http.SecurityConstraintMapping は追加設定なしで提供され、ロールへの包含と除外を簡単に定義できます。
- /* へのアクセスは制限され、すべてのロールが受け入れられます(ユーザーにもロールがない場合も同様です)。
- /admin/* へのアクセスには admin ロールが必要です。
- /guest/* へのアクセスには、admin ロールまたは guest ロールが必要です。
- /public/* へのアクセスは、認証が不要であることを意味します。そのため、ログインせずに誰でも公開されます。
<route>
<from uri="netty-http:http://0.0.0.0:{{port}}/foo?matchOnUriPrefix=true&ecurityConfiguration.realm=karaf&ecurityConfiguration.securityConstraint=#constraint"/>
...
</route>
<route>
<from uri="netty-http:http://0.0.0.0:{{port}}/foo?matchOnUriPrefix=true&ecurityConfiguration.realm=karaf&ecurityConfiguration.securityConstraint=#constraint"/>
...
</route>
第120章 Netty4-HTTP リンクのコピーリンクがクリップボードにコピーされました!
Netty4 HTTP コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
String に変換する必要があります。
pom.xml に追加する必要があります。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
netty4-http:http://localhost:8080[?options]
netty4-http:http://localhost:8080[?options]
?option=value&option=value&...
netty4-http:http//example.com?myParam=myValue&compression=true のようにエンドポイント URI を作成できます。この例では、myParam は HTTP パラメーターですが、compression は Camel エンドポイントオプションです。このような状況で Camel によって使用されるストラテジーは、利用可能なエンドポイントオプションを解決し、URI から削除することです。これは、前述の例では、Netty HTTP プロデューサーによってエンドポイントに送信される HTTP リクエストは、http//example.com?myParam=myValue のようになります。compression エンドポイントオプションはターゲット URL から解決され、削除されます。
CamelHttpQueryなど)を使用してエンドポイントオプションを指定できないことに注意してください。エンドポイントオプションは、エンドポイント URI 定義レベルでのみ指定できます( to または from DSL 要素など)。
HTTP オプション リンクのコピーリンクがクリップボードにコピーされました!
|
名前
|
デフォルト値
|
説明
|
|---|---|---|
chunkedMaxContentLength
|
1mb
|
Netty HTTP サーバーで受信されるチャンクごとの最大コンテンツ長(バイト単位)。
|
compression
|
false
|
クライアントが HTTP ヘッダーからサポートしている場合、Netty HTTP サーバーの圧縮に gzip/deflate の使用を許可します。
|
headerFilterStrategy
|
|
カスタム
org.apache.camel.spi.HeaderFilterStrategy を使用してヘッダーをフィルターリングします。
|
httpMethodRestrict
|
|
Netty HTTP コンシューマーで HTTP メソッドを無効にするには、以下を行います。コンマで区切って複数指定できます。
|
mapHeaders
|
true
|
|
matchOnUriPrefix
|
false
|
完全一致が見つからない場合に Camel が URI 接頭辞と一致することでターゲットコンシューマーの検索を試みるかどうか。詳細につていは以下をご覧ください
|
nettyHttpBinding
|
|
Netty および Camel Message API との間でバインドするためにカスタム
org.apache.camel.component.netty4.http.NettyHttpBinding を使用します。
|
bridgeEndpoint
|
false
|
オプションが
true の場合、プロデューサーは Exchange.HTTP_URI ヘッダーを無視し、リクエストにエンドポイントの URI を使用します。また、throwExceptionOnFailure を false に設定して、プロデューサーがすべての障害応答を返信するようにすることもできます。
|
throwExceptionOnFailure
|
true
|
リモートサーバーからの応答に失敗した場合、
HttpOperationFailedException の出力を無効にするオプション。これにより、HTTP ステータスコードに関するすべての応答を取得できます。
|
traceEnabled
|
false
|
この Netty HTTP コンシューマーに対して HTTP TRACE を有効にするかどうかを指定します。デフォルトでは、TRACE はオフになっています。
|
transferException
|
false
|
有効にすると、エクスチェンジ がコンシューマー側で処理に失敗し、発生した例外が応答で
application/x-java-serialized-object コンテンツタイプとしてシリアライズされた場合は、以下を行います。プロデューサー側では、HttpOperationFailedException ではなく、例外がデシリアライズされ、そのまま出力されます。原因となった例外はシリアライズする必要があります。
|
urlDecodeHeaders
|
|
このオプションを有効にすると、Netty から Camel Message へのバインド中にヘッダーの値は URL デコードされます(例:%20 は空白文字になります)。このオプションはデフォルトの
org.apache.camel.component.netty4.http.NettyHttpBinding で使用されているため、カスタム org.apache.camel.component.netty4.http.NettyHttpBinding を実装する場合は、このオプションに応じてヘッダーをデコードする必要があります。注記: このオプションはデフォルト false です。
|
nettySharedHttpServer
|
null
|
共有 Netty4 HTTP サーバーを使用するには、以下を行います。詳細は Netty HTTP Server Example を参照してください。
|
disableStreamCache
|
false
|
Netty
HttpRequest#getContent() からの raw 入力ストリームがキャッシュされるかどうかを決定します(Camel はストリームを軽量メモリーベースの Stream キャッシュ)キャッシュに読み取ります。デフォルトでは、Camel は Netty 入力ストリームをキャッシュして複数回読み取りし、Camel がストリームからすべてのデータを取得できるようにします。ただし、このオプションを true に設定することができます。たとえば、ファイルや他の永続ストアに直接ストリーミングするなど、raw ストリームにアクセスする必要がある場合などです。このオプションを有効にすると、Netty ストリームが追加設定なしで複数回読み取ることができないため、Netty raw ストリームで reader インデックスを手動でリセットする必要があります。
|
securityConfiguration
|
null
|
コンシューマーのみ。セキュアな Web リソースを設定するには、
org.apache.camel.component.netty4.http.NettyHttpSecurityConfiguration を参照してください。
|
send503whenSuspended
|
true
|
コンシューマーのみ。コンシューマーが一時停止されたときに HTTP ステータスコード 503 を送信するかどうか。オプションが
false の場合、コンシューマーが一時停止されると Netty Acceptor がバインド解除されるため、クライアントは接続できなくなります。
|
maxHeaderSize
|
8192
|
Camel 2.15.3 : コンシューマーのみ。すべてのヘッダーの最大長。各ヘッダーの長さの合計がこの値を超えると、TooLongFrameException が発生します。
|
okStatusCodeRange
|
200-299
|
Camel 2.16: 正常な応答と見なされるステータスコード。値は含まれます。範囲は、構文 from-to を使用して定義する必要があります。
|
useRelativePath
|
false
|
Camel 2.16 : プロデューサーのみ。リクエスト行または絶対 URI (http://0.0.0.0:8080/myapp)でパス(/myapp)を使用するかどうか(デフォルト)。
|
NettyHttpSecurityConfiguration には以下のオプションがあります。
|
名前
|
デフォルト値
|
説明
|
|---|---|---|
authenticate
|
true
|
認証が有効であるかどうか。を使用して、この機能を迅速にオフにできます。
|
constraint
|
Basic
|
サポートされる制約。現在、
Basic のみが実装され、サポートされています。
|
realm
|
null
|
JAAS セキュリティーレルムの名前。このオプションは必須です。
|
securityConstraint
|
null
|
ACL を Web リソースに定義できるセキュリティー制約マッパーをプラグインできるようにします。
|
securityAuthenticator
|
null
|
認証を実行するオーセンティケーターをプラグインできるようにします。何も設定されていない場合は、
org.apache.camel.component.netty4.http.JAASSecurityAuthenticator がデフォルトで使用されます。
|
loginDeniedLoggingLevel
|
DEBUG
|
ログイン試行の失敗時に使用されるロギングレベル。これにより、ログインに失敗した理由の詳細を確認できます。
|
roleClassName
|
null
|
ユーザーロールを含む
Principal 実装の FQN クラス名を指定するには、以下を実行します。指定がない場合は、Netty4 HTTP コンポーネントはデフォルトで Principal を、FQN クラス名に role の小文字の という単語が小文字の場合、ロールベースであると想定します。複数のクラス名をコンマで区切って指定できます。
|
メッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
|
名前
|
タイプ
|
説明
|
|---|---|---|
CamelHttpMethod
|
String
|
GET、POST、TRACE など、使用する HTTP メソッドを制御できます。タイプは
io.netty.handler.codec.http.HttpMethod インスタンスにも指定できます。
|
CamelHttpQuery
|
String
|
エンドポイント設定を上書きする
String の値として URI クエリーパラメーターを提供できるようにします。& 記号を使用して、複数のパラメーターを区切ります。例: foo=bar&beer=yes
|
CamelHttpPath
|
String
|
エンドポイント設定を上書きする
String の値として URI コンテキストパスおよびクエリーパラメーターを指定できます。これにより、同じリモート http サーバーを呼び出すために同じプロデューサーを再利用できますが、動的コンテキストパスおよびクエリーパラメーターを使用できます。
|
Content-Type
|
String
|
HTTP ボディーのコンテンツタイプを設定するには、以下を行います。例:
text/plain; charset="UTF-8"
|
CamelHttpResponseCode
|
int
|
使用する HTTP ステータスコードを設定できます。デフォルトでは、成功には 200、失敗には 500 が使用されます。 |
from("netty4-http:http:0.0.0.0:8080/myapp")...
|
名前
|
タイプ
|
説明
|
|---|---|---|
CamelHttpMethod
|
String
|
GET、POST、TRACE などの HTTP メソッド。
|
CamelHttpUrl
|
String
|
プロトコル、ホストおよびポートなどの URL。
http://0.0.0.0:8080/myapp
|
CamelHttpUri
|
String
|
プロトコル、ホストおよびポートなどの URI のない URI。
/myapp
|
CamelHttpQuery
|
String
|
などのクエリーパラメーター
foo=bar&beer=yes
|
CamelHttpRawQuery
|
String
|
クエリーパラメーター(
foo=bar&beer=yes など)コンシューマー(URL デコード前)に到達する際に、raw 形式で保存されます。
|
CamelHttpPath
|
String
|
追加のコンテキストパス。クライアントが context-path
/myapp と呼ばれると、この値は空になります。クライアントが /myapp/mystuff を呼び出す場合、このヘッダーの値は /mystuff になります。つまり、ルートエンドポイントに設定された context-path の後に値になります。
|
CamelHttpCharacterEncoding
|
String
|
content-type ヘッダーからの charset。
|
CamelHttpAuthentication
|
String
|
ユーザーが HTTP Basic を使用して認証された場合、このヘッダーは
Basic の値で追加されます。
|
Content-Type
|
String
|
提供された場合はコンテンツタイプ。例:
text/plain; charset="UTF-8"
|
Netty タイプへのアクセス リンクのコピーリンクがクリップボードにコピーされました!
org.apache.camel.component.netty4.http.NettyHttpMessage をエクスチェンジのメッセージ実装として使用し ます。これにより、エンドユーザーは以下のように元の Netty 要求/応答インスタンスにアクセスできます。元の応答は常にアクセスできない可能性があることに注意してください。
io.netty.handler.codec.http.HttpRequest request = exchange.getIn(NettyHttpMessage.class).getHttpRequest();
io.netty.handler.codec.http.HttpRequest request = exchange.getIn(NettyHttpMessage.class).getHttpRequest();
例 リンクのコピーリンクがクリップボードにコピーされました!
from("netty4-http:http://0.0.0.0:8080/foo")
.transform().constant("Bye World");
from("netty4-http:http://0.0.0.0:8080/foo")
.transform().constant("Bye World");
String out = template.requestBody("netty4-http:http://localhost:8080/foo", "Hello World", String.class);
System.out.println(out);
String out = template.requestBody("netty4-http:http://localhost:8080/foo", "Hello World", String.class);
System.out.println(out);
Netty がワイルドカードと一致させる方法 リンクのコピーリンクがクリップボードにコピーされました!
from("netty4-http:http://0.0.0.0:8123/foo").to("mock:foo");
from("netty4-http:http://0.0.0.0:8123/foo").to("mock:foo");
http://0.0.0.0:8123/foo を入力すると一致しますが、http://0.0.0.0:8123/foo/bar を使用しない場合は一致しません。
from("netty4-http:http://0.0.0.0:8123/foo?matchOnUriPrefix=true").to("mock:foo");
from("netty4-http:http://0.0.0.0:8123/foo?matchOnUriPrefix=true").to("mock:foo");
foo で始まるすべてのエンドポイントに一致するようになりました。
from("netty4-http:http://0.0.0.0:8123?matchOnUriPrefix=true").to("mock:foo");
from("netty4-http:http://0.0.0.0:8123?matchOnUriPrefix=true").to("mock:foo");
同じポートでの複数ルートの使用 リンクのコピーリンクがクリップボードにコピーされました!
io.netty.bootstrap.ServerBootstrap インスタンス)を共有する Netty4 HTTP からの複数のルートを持つことができます。これを実行するには、ルートが同じ io.netty.bootstrap.ServerBootstrap インスタンスを共有するため、複数のブートストラップオプションをルートで同一でなければなりません。インスタンスは、最初に作成したルートからのオプションで設定されます。
org.apache.camel.component.netty4.NettyServerBootstrapConfiguration 設定クラスで定義されているすべてのオプションです。別のオプションで別のルートを設定した場合、Camel は起動時に例外を出力し、オプションが同一ではないことを示します。これを軽減するには、すべてのオプションが同一であることを確認します。
例120.1 同じポートを共有する 2 つのルート
org.apache.camel.component.netty4.NettyServerBootstrapConfiguration オプションがない、誤って設定された 2 番目のルートの例です。これにより、起動時に Camel が失敗します。
例120.2 2 つのルートが同じポートを共有しますが、2 番目のルートは設定が間違っているため、開始時に失敗します。
複数のルートを持つ同じサーバーブートストラップ設定の再利用 リンクのコピーリンクがクリップボードにコピーされました!
org.apache.camel.component.netty4.NettyServerBootstrapConfiguration タイプの単一のインスタンスに共通のサーバーブートストラップオプションを設定することで、Netty4 HTTP コンシューマーで bootstrapConfiguration オプションを使用して、すべてのコンシューマーで同じオプションを参照および再利用できます。
<bean id="nettyHttpBootstrapOptions" class="org.apache.camel.component.netty4.NettyServerBootstrapConfiguration"> <property name="backlog" value="200"/> <property name="connectionTimeout" value="20000"/> <property name="workerCount" value="16"/> </bean>
<bean id="nettyHttpBootstrapOptions" class="org.apache.camel.component.netty4.NettyServerBootstrapConfiguration">
<property name="backlog" value="200"/>
<property name="connectionTimeout" value="20000"/>
<property name="workerCount" value="16"/>
</bean>
OSGi コンテナー内の複数のバンドル間で複数のルートを持つ同じサーバーブートストラップ設定の再利用 リンクのコピーリンクがクリップボードにコピーされました!
HTTP Basic 認証の使用 リンクのコピーリンクがクリップボードにコピーされました!
<route>
<from uri="netty4-http:http://0.0.0.0:{{port}}/foo?securityConfiguration.realm=karaf"/>
...
</route>
<route>
<from uri="netty4-http:http://0.0.0.0:{{port}}/foo?securityConfiguration.realm=karaf"/>
...
</route>
Web リソースでの ACL の指定 リンクのコピーリンクがクリップボードにコピーされました!
org.apache.camel.component.netty4.http.SecurityConstraint では、Web リソースに制限を定義できます。また、org.apache.camel.component.netty.http.SecurityConstraintMapping はすぐに使用できるので、ロールで包含と除外を簡単に定義できます。
- /* へのアクセスは制限され、すべてのロールが受け入れられます(ユーザーにもロールがない場合も同様です)。
- /admin/* へのアクセスには admin ロールが必要です。
- /guest/* へのアクセスには、admin ロールまたは guest ロールが必要です。
- /public/* へのアクセスは、認証が不要であることを意味します。そのため、ログインせずに誰でも公開されます。
<route>
<from uri="netty4-http:http://0.0.0.0:{{port}}/foo?matchOnUriPrefix=true&securityConfiguration.realm=karaf&securityConfiguration.securityConstraint=#constraint"/>
...
</route>
<route>
<from uri="netty4-http:http://0.0.0.0:{{port}}/foo?matchOnUriPrefix=true&securityConfiguration.realm=karaf&securityConfiguration.securityConstraint=#constraint"/>
...
</route>
第121章 Olingo2 リンクのコピーリンクがクリップボードにコピーされました!
Olingo2 コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
camel-olingo2 コンポーネントを設定するには、Security Guide の Configuring Transport Security for Camel Components の章を参照してください。
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-olingo2</artifactId>
<version>${camel-version}</version>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-olingo2</artifactId>
<version>${camel-version}</version>
</dependency>
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
olingo2://endpoint/<resource-path>?[options]
olingo2://endpoint/<resource-path>?[options]
Olingo2Component リンクのコピーリンクがクリップボードにコピーされました!
org.apache.camel.component.olingo2.Olingo2Configuration タイプのコンポーネントの Bean プロパティー configuration を使用して提供できます。
|
オプション
|
タイプ
|
説明
|
|
serviceUri
|
文字列
|
ターゲット OData サービスベース URI (例: http://services.odata.org/OData/OData.svc)
|
|
contentType
|
文字列
|
Content-Type ヘッダーの値を使用して JSON または XML メッセージ形式を指定できます。デフォルトは application/json;charset=utf-8です。
|
|
connectTimeout
|
int
|
HTTP 接続作成のタイムアウト(ミリ秒単位)。デフォルトは 30,000 (30 秒)です。
|
|
socketTimeout
|
int
|
HTTP 要求のタイムアウト(ミリ秒単位)。デフォルトは 30,000 (30 秒)です。
|
|
httpHeaders
|
java.util.Map<String, String>
|
すべてのリクエストに挿入するカスタム HTTP ヘッダー。これには OAuth トークンが含まれる場合があります。
|
|
proxy
|
org.apache.http.HttpHost
|
HTTP プロキシーサーバーの設定
|
|
sslContext
|
javax.net.ssl.SSLContext
|
HTTP SSL 設定
|
|
httpAsyncClientBuilder
|
org.apache.http.impl.nio.client.HttpAsyncClientBuilder
|
より複雑な HTTP クライアント設定のカスタム HTTP 非同期クライアントビルダーは、connectionTimeout、socketTimeout、proxy、および sslContext を上書きします。socketTimeout はビルダーで指定する 必要 があります。指定しないと、OData リクエストが永久にブロックされる可能性があることに注意してください。
|
プロデューサーエンドポイント リンクのコピーリンクがクリップボードにコピーされました!
inBody を使用することもできます。inBody オプションのデフォルトは、このオプションを取るエンドポイントの data に設定されます。
CamelOlingo2.<option> の形式で指定する必要があります。inBody オプションはメッセージヘッダーを上書きすることに注意してください。つまり、エンドポイントオプション inBody=option は CamelOlingo2.option ヘッダーを上書きすることに注意してください。さらに、クエリーパラメーターを指定することもできます。
|
エンドポイント
|
オプション
|
HTTP メソッド
|
結果ボディーのタイプ
|
|
batch
|
data
|
POST with multipart/mixed batch request
|
java.util.List<org.apache.camel.component.olingo2.api.batch.Olingo2BatchResponse>
|
|
create
|
data、resourcePath
|
POST
|
org.apache.olingo.odata2.api.ep.entry.ODataEntry for new entries org.apache.olingo.odata2.api.commons.HttpStatusCodes for other OData resources
|
|
delete
|
resourcePath
|
DELETE
|
org.apache.olingo.odata2.api.commons.HttpStatusCodes
|
|
merge
|
data、resourcePath
|
MERGE
|
org.apache.olingo.odata2.api.commons.HttpStatusCodes
|
|
patch
|
data、resourcePath
|
PATCH
|
org.apache.olingo.odata2.api.commons.HttpStatusCodes
|
|
read
|
queryParams, resourcePath
|
GET
|
Depends on OData resource being queried as described next
|
|
update
|
data、resourcePath
|
PUT
|
org.apache.olingo.odata2.api.commons.HttpStatusCodes
|
OData リソースタイプマッピング リンクのコピーリンクがクリップボードにコピーされました!
|
OData リソースタイプ
|
resourcePath および keyPredicate からのリソース URI
|
in または Out Body タイプ
|
|
エンティティーデータモデル
|
$metadata
|
org.apache.olingo.odata2.api.edm.Edm
|
|
サービスドキュメント
|
/
|
org.apache.olingo.odata2.api.servicedocument.ServiceDocument
|
|
OData フィード
|
<entity-set>
|
org.apache.olingo.odata2.api.ep.feed.ODataFeed
|
|
OData エントリー
|
<entity-set>(<key-predicate>)
|
org.apache.olingo.odata2.api.ep.entry.ODataEntry Out body (応答)の場合、java.util.Map<String, Object> は In body (要求)です。
|
|
単純なプロパティー
|
<entity-set>(<key-predicate>)/<simple-property>
|
Appropriate Java data type as described by <link xlink:href="http://olingo.apache.org/javadoc/odata2/index.html?org/apache/olingo/odata2/api/edm/class-use/EdmProperty.html" >Olingo EdmProperty</link>
|
|
単純なプロパティー値
|
<entity-set>(<key-predicate>)/<simple-property>/$value
|
Appropriate Java data type as described by <link xlink:href="http://olingo.apache.org/javadoc/odata2/index.html?org/apache/olingo/odata2/api/edm/class-use/EdmProperty.html" >Olingo EdmProperty</link>
|
|
複雑なプロパティー
|
<entity-set>(<key-predicate>)/<complex-property>
|
java.util.Map<String, Object>
|
|
ゼロまたは 1 つの関連付けリンク
|
<entity-set>(<key-predicate>/$link/<one-to-one-entity-set-property>
|
String for response java.util.Map<String, Object> with key property names and values for request
|
|
リンクの 0 個または多数
|
<entity-set>(<key-predicate>/$link/<one-to-many-entity-set-property>
|
java.util.List<String> for response java.util.List<java.util.Map<String, Object>> containing list of key property names and values for request
|
|
Count
|
<resource-uri>/$count
|
java.lang.Long
|
URI オプション リンクのコピーリンクがクリップボードにコピーされました!
null であると想定されます。null 値は、他のオプションが一致するエンドポイントを満たさない場合にのみ使用されることに注意してください。
|
名前
|
タイプ
|
説明
|
|
data
|
Object
|
OData リソースの作成または変更に使用される適切なタイプを持つデータ
|
|
keyPredicate
|
String
|
パラメーター化された OData リソースエンドポイントを作成するためのキー述語。キー述語の値がヘッダーに動的に提供される作成/更新操作に役立ちます。
|
|
queryParams
|
java.util.Map<String, String>
|
OData システムオプションおよびカスタムクエリーオプション。詳細は OData 2.0 URI Conventions を参照してください。
|
|
resourcePath
|
String
|
OData リソースパス(キー述語が含まれるか、または含まれない場合あり)
|
|
*
|
String
|
その他の URI オプションはクエリーパラメーターとして扱われ、クエリーパラメーターマップに追加され、queryParams オプションのエントリーを上書きします(これも指定されている場合)。
|
コンシューマーエンドポイント リンクのコピーリンクがクリップボードにコピーされました!
consumer. 接頭辞が付い た Scheduled Poll Consumer オプション を使用して、エンドポイントの呼び出しをスケジュールできます。デフォルトでは、配列またはコレクションを返すコンシューマーエンドポイントは、要素ごとにエクスチェンジを 1 つ生成し、それらのルートはエクスチェンジごとに 1 回実行されます。この動作は、エンドポイントプロパティー consumer.splitResult=false を設定して無効にできます。
メッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
CamelOlingo2. 接頭辞が付いたプロデューサーエンドポイントのメッセージヘッダーで指定できます。
メッセージボディー リンクのコピーリンクがクリップボードにコピーされました!
inBody エンドポイント URI パラメーターに受信メッセージボディーのオプション名を指定できます。配列またはコレクションを返すエンドポイントでは、consumer.splitResult が false に設定されていない限り、コンシューマーエンドポイントはすべての要素を個別のメッセージにマップします。
ユースケース リンクのコピーリンクがクリップボードにコピーされました!
from("direct:...")
.setHeader("CamelOlingo2.$top","5")
.to("olingo2://read/Manufacturers?orderBy=Name%20asc");
from("direct:...")
.setHeader("CamelOlingo2.$top","5")
.to("olingo2://read/Manufacturers?orderBy=Name%20asc");
from("direct:...")
.setHeader("CamelOlingo2.keyPredicate", header("id"))
.to("olingo2://read/Manufacturers");
from("direct:...")
.setHeader("CamelOlingo2.keyPredicate", header("id"))
.to("olingo2://read/Manufacturers");
from("direct:...")
.to("olingo2://create/Manufacturers");
from("direct:...")
.to("olingo2://create/Manufacturers");
from("olingo2://read/Manufacturers?queryParams=#paramsBean&consumer.timeUnit=SECONDS&consumer.delay=30")
.to("bean:blah");
from("olingo2://read/Manufacturers?queryParams=#paramsBean&consumer.timeUnit=SECONDS&consumer.delay=30")
.to("bean:blah");
第122章 openshift リンクのコピーリンクがクリップボードにコピーされました!
OpenShift コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
pom.xml に追加する必要があります。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
openshift:clientId[?options]
openshift:clientId[?options]
?option=value&option=value&...
オプション リンクのコピーリンクがクリップボードにコピーされました!
|
名前
|
デフォルト値
|
説明
|
|---|---|---|
domain
|
null
|
ドメイン名。指定のない場合は、デフォルトのドメインが使用されます。
|
username
|
|
必須: openshift サーバーにログインするためのユーザー名。
|
password
|
|
必須: openshift サーバーにログインするためのパスワード。
|
server
|
|
openshift サーバーへの URL。指定しない場合、ローカルの openshift 設定ファイル
~/.openshift/express.conf からのデフォルト値が使用されます。それも失敗する場合は、openshift.redhat.com が使用されます。
|
delay
|
10s
|
コンシューマーのみ: アプリケーションの状態変更をポーリングする頻度。デフォルトでは、10 秒ごとにポーリングを行います。
|
operation
|
list
|
プロデューサーのみ: 実行する操作:
list、start、stop、restart、および ----------|----- などです。statelist 操作は、すべてのアプリケーションに関する情報を json 形式で返します。state 操作は、started、stopped などの状態を返します。他の操作は値を返しません。
Camel 2.16: 以下の操作を追加します。
|
application
|
|
プロデューサーのみ: アプリケーション名は
start、stop、restart、または state を取得します。
|
mode
|
|
プロデューサーのみ: メッセージボディーを pojo または json として出力するかどうか。pojo の場合、メッセージは
List<com.openshift.client.IApplication> タイプです。
|
例 リンクのコピーリンクがクリップボードにコピーされました!
全アプリケーションの一覧表示 リンクのコピーリンクがクリップボードにコピーされました!
// sending route
from("direct:apps")
.to("openshift:myClient?username=foo&password=secret&operation=list");
.to("log:apps");
// sending route
from("direct:apps")
.to("openshift:myClient?username=foo&password=secret&operation=list");
.to("log:apps");
アプリケーションの停止 リンクのコピーリンクがクリップボードにコピーされました!
// stopping the foobar application
from("direct:control")
.to("openshift:myClient?username=foo&password=secret&operation=stop&application=foobar");
// stopping the foobar application
from("direct:control")
.to("openshift:myClient?username=foo&password=secret&operation=stop&application=foobar");
// trigger when state changes on our gears
from("openshift:myClient?username=foo&password=secret&delay=30s")
.log("Event ${header.CamelOpenShiftEventType} on application ${body.name} changed state to ${header.CamelOpenShiftEventNewState}");
// trigger when state changes on our gears
from("openshift:myClient?username=foo&password=secret&delay=30s")
.log("Event ${header.CamelOpenShiftEventType} on application ${body.name} changed state to ${header.CamelOpenShiftEventNewState}");
com.openshift.client.IApplication がメッセージボディーとして含まれます。また、以下のヘッダーが含まれます。
|
ヘッダー
|
null にすることができます
|
説明
|
|
CamelOpenShiftEventType
|
いいえ
|
イベントのタイプは、追加、削除、または変更のいずれかになります。
|
|
CamelOpenShiftEventOldState
|
はい
|
イベントタイプが変更される場合の古い状態。
|
|
CamelOpenShiftEventNewState
|
いいえ
|
イベントタイプの新しい状態
|
第123章 Paho リンクのコピーリンクがクリップボードにコピーされました!
Paho コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
paho:queueName[?options]
paho:queueName[?options]
from("paho:some/queue").
to("mock:test");
from("paho:some/queue").
to("mock:test");
from("direct:test").
to("paho:some/target/queue");
from("direct:test").
to("paho:some/target/queue");
?option=value&option=value&... の形式で、URI にクエリーオプションを追加できます。たとえば、リモート MQTT ブローカーからメッセージを読み取る方法は次のとおりです。
from("paho:some/queue?brokerUrl=tcp://iot.eclipse.org:1883").
to("mock:test");
from("paho:some/queue?brokerUrl=tcp://iot.eclipse.org:1883").
to("mock:test");
コンポーネントのプロジェクトへの追加 リンクのコピーリンクがクリップボードにコピーされました!
pom.xml に追加する必要があります。
デフォルトのペイロードタイプ リンクのコピーリンクがクリップボードにコピーされました!
URI オプション リンクのコピーリンクがクリップボードにコピーされました!
|
オプション
|
デフォルト
|
説明
|
|---|---|---|
clientId
|
camel-<timestamp>
|
MQTT クライアント識別子。 |
brokerUrl
|
tcp://localhost:1883
|
MQTT ブローカーの URL。
|
persistence
|
memory
|
使用されるクライアントの永続性 - memory または file
|
filePersistenceDirectory
|
現行ディレクトリー | (Camel 2.16.1 および 2.17) ファイルの永続性で使用されるベースディレクトリー。ファイル以外の永続性が使用されている場合は有効になりません。 |
qos
|
2 |
クライアントの QoS (Quality of Service)レベル(0-2)
|
connectOptions
|
none |
Camel レジストリーにある org.eclipse.paho.client.mqttv3.MqttConnectOptions インスタンスへの参照。参照 MqttConnectOptions インスタンスは、エンドポイントによって接続を初期化するために使用されます。たとえば、connectOptions=#myConnectOptions という名前の Spring Bean を参照する場合、表記法を使用できます。ConnectOptions myレジストリーに MqttConnectOptions のインスタンスが 1 つしかない場合は、エンドポイントによって自動的に取得されます。
|
org.eclipse.paho.client.mqttv3.MqttConnectOptions の Bean を Camel レジストリーに追加します。Spring アプリケーションでは、Bean をアプリケーションコンテキストに追加することを意味します。以下のスニペットは、パスワードベースの認証を使用して MQTT ブローカーに接続します。
Headers リンクのコピーリンクがクリップボードにコピーされました!
|
ヘッダー
|
Java 定数
| エンドポイントタイプ | 値のタイプ |
説明
|
|---|---|---|---|---|
PahoOriginalMessage
|
PahoConstants.HEADER_ORIGINAL_MESSAGE
|
コンシューマー |
org.eclipse.paho.client.mqttv3.MqttMessage
|
クライアントが受信した元の Paho メッセージインスタンス。
非推奨: Camel 2.17 以降では、元の MqttMessage はヘッダーとして保存されませんが、ゲッター
getMqttMessage を持つ org.apache.camel.component.paho.PahoMessage メッセージには保存されません。
|
CamelMqttTopic
|
PahoConstants.MQTT_TOPIC | コンシューマー | 文字列 | Camel 2.17: トピック |
第124章 pax-Logging リンクのコピーリンクがクリップボードにコピーされました!
paxlogging コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
paxlogging コンポーネントを OSGi 環境で使用すると、PaxLogging イベントを受信して処理できます。
Dependencies リンクのコピーリンクがクリップボードにコピーされました!
pom.xml に追加する必要があります。
$\{camel-version\} は実際の Camel バージョン(2.6.0 以降)に置き換える必要があります。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
paxlogging:appender
paxlogging:appender
appender は、PaxLogging サービス設定で設定する必要がある pax アペンダーの名前です。
URI オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | デフォルト値 | 説明 |
|---|
メッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | タイプ | メッセージ | 説明 |
|---|
メッセージボディー リンクのコピーリンクがクリップボードにコピーされました!
in メッセージボディーは受信した PaxLoggingEvent に設定されます。
使用例 リンクのコピーリンクがクリップボードにコピーされました!
log4j.rootLogger=INFO, out, osgi:VmLogAppender, osgi:camel
log4j.rootLogger=INFO, out, osgi:VmLogAppender, osgi:camel
第125章 PDF リンクのコピーリンクがクリップボードにコピーされました!
PDF リンクのコピーリンクがクリップボードにコピーされました!
pom.xml に追加する必要があります。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
pdf:operation[?options]
pdf:operation[?options]
operation は、PDF ドキュメントで実行する固有のアクションです。
操作 リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | デフォルト値 | 説明 |
|---|---|---|
marginTop
|
20
|
ページのテキストとトップエッジ間の pixel にマージンサイズを設定します。 |
marginBottom
|
20
|
ページのテキストと下線間の pixel にマージンサイズを設定します。 |
marginLeft
|
20
|
ページのテキストと左エッジ間のピクセルにマージンサイズを設定します。 |
marginRight
|
40
|
ページのテキストと右端間のピクセルにマージンサイズを設定します。このオプションは、textProcessingFactory オプションが lineTermination の場合は無視されます。 |
fontSize
|
14
|
ピクセルにフォントのサイズを設定します。 |
pageSize
|
PAGE_SIZE_A4
|
ページのサイズを設定します。使用できる値
|
font
|
Helvetica
|
PDFBox のベースフォントの 1 つ。 |
textProcessingFactory
|
lineTermination
|
テキスト処理ファクトリーを設定します。lineTermination : 行中断書き込みストラテジーのクラスセットを構築します。行終了記号でスライスされるテキストは、行に適合するかどうかに関係なく記述されます。autoFormatting - テキストは単語でスライスされ、行に適合する最大単語数が PDF ドキュメントに書き込まれます。このストラテジーでは、行に収まらないすべての単語が新しい行に移動されます。
|
Headers リンクのコピーリンクがクリップボードにコピーされました!
| ヘッダー | |
|---|---|
pdf-document
|
Mandatory append 操作のヘッダー、および他のすべての操作では無視されます。想定されるタイプは PDDocument です。追加操作に使用される PDF ドキュメントを保存します。
|
protection-policy
|
想定されるタイプは ProtectionPolicy です。これが指定されている場合、PDF ドキュメントがこれで暗号化されます。
|
decryption-material
|
想定されるタイプは DecryptionMaterial です。PDF ドキュメントが暗号化されている場合は 必須 ヘッダーです。
|
第126章 PGEvent リンクのコピーリンクがクリップボードにコピーされました!
PGEvent コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
pom.xml に追加する必要があります。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
pgevent:datasource[?parameters] pgevent://host:port/database/channel[?parameters]
pgevent:datasource[?parameters]
pgevent://host:port/database/channel[?parameters]
?option=value&option=value&...
オプション リンクのコピーリンクがクリップボードにコピーされました!
|
オプション
|
型
|
デフォルト
|
説明
|
|---|---|---|---|
datasource
|
文字列
|
|
使用するレジストリーから検索するデータソースの名前
|
|
hostname
|
文字列 | localhost | データソースを使用する代わりに、このホスト名とポートを使用して PostgresSQL データベースに接続します。 |
| port | int | 5432 | データソースを使用する代わりに、このホスト名とポートを使用して PostgresSQL データベースに接続します。 |
| database | 文字列 | データベース名 | |
| channel | 文字列 | チャネル名 | |
| user | 文字列 | postgres | Username |
| pass | 文字列 | Password |
第127章 プリンター リンクのコピーリンクがクリップボードにコピーされました!
プリンターコンポーネント リンクのコピーリンクがクリップボードにコピーされました!
pom.xml に以下の依存関係を追加する必要があります。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
lpr://localhost/default[?options] lpr://remotehost:port/path/to/printer[?options]
lpr://localhost/default[?options]
lpr://remotehost:port/path/to/printer[?options]
?option=value&option=value&.. の形式で追加できます。
オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | デフォルト値 | 説明 |
|---|---|---|
mediaSize
|
NA_LETTER
|
javax.print.attribute.standard.MediaSizeName API の列挙名で定義されるように companyary を設定します。デフォルト設定では North American Letter sized sitesary を使用します。値のケースは無視されます。たとえば、iso_a4 および ISO_A4 の値を使用できます。
|
コピー
|
1
|
javax.print.attribute.standard.Copies API に基づいてコピー数を設定します。
|
sides
|
Sides.ONE_SIDED
|
javax.print.attribute.standard.Sides API に基づいてサイドまたは 2 つのサイド印刷を設定します。
|
flavor
|
DocFlavor.BYTE_ARRAY
|
javax.print.DocFlavor API に基づいて DocFlavor を設定します。
|
mimeType
|
AUTOSENSE
|
javax.print.DocFlavor API でサポートされる mimeTypes を設定します。
|
mediaTray
|
AUTOSENSE
|
Camel 2.11.x は javax.print.DocFlavor API によってサポートされる MediaTray を設定するため、 |
printerPrefix
|
null
|
Camel 2.11.x はプリンターの接頭辞名を設定するため、プリンター名が //hostname/printer で開始されていない場合に便利です。 |
sendToPrinter
|
true
|
このオプションを false に設定すると、印刷データ がプリンターに送信されなくなります。
|
オリエンテーション
|
portrait
|
Camel 2.13.x 以降、ページ指向を設定します。設定可能な値: portrait、landscape、reverse-portrait または reverse-landscape javax.print.attribute.standard.OrientationRequested
|
プリンタープロデューサー リンクのコピーリンクがクリップボードにコピーされました!
例 1: アルファベットおよび 1 サイドモードでデフォルトプリンターでテキストベースのペイロードを出力する リンクのコピーリンクがクリップボードにコピーされました!
例 2: A4 sitesary および 1 サイドモードでリモートプリンターで GIF ベースのペイロードを出力する リンクのコピーリンクがクリップボードにコピーされました!
例 3: 日本語の投稿者および 1 サイドモードでリモートプリンターで JPEG ベースのペイロードを出力する リンクのコピーリンクがクリップボードにコピーされました!
第128章 プロパティー リンクのコピーリンクがクリップボードにコピーされました!
Properties コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
properties:key[?options]
properties:key[?options]
オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | タイプ | デフォルト | 説明 |
|---|---|---|---|
cache
|
boolean
|
true
|
ロードされたプロパティーをキャッシュするかどうか。 |
ロケーション
|
文字列
|
null
|
プロパティーをロードする場所の一覧。複数の場所を分離する場合はコンマで区切ることができます。このオプションはデフォルトの場所を上書きし、このオプションからのロケーション のみ を使用します。 |
encoding
|
文字列
|
null
|
Camel 2.14.3/2.15.1: 特定の文字セットを使用して UTF-8 などのプロパティーを読み込む。デフォルトでは、ISO-8859-1 (latin1)が使用されます。 |
ignoreMissingLocation
|
boolean
|
false
|
Camel 2.10: プロパティーファイルが見つからない場合など、ロケーションが見つからないかどうかを警告せずに無視するかどうか。 |
propertyPrefix
|
文字列
|
null
|
Camel 2.9: 解決前にプロパティー名の前に追加された任意の接頭辞。 |
propertySuffix
|
文字列
|
null
|
Camel 2.9: 解決前にプロパティー名に追加される任意の接尾辞。 |
fallbackToUnaugmentedProperty
|
boolean
|
true
|
Camel 2.9: true の場合、指定したプレーンプロパティー名をフォールバックする前に propertyPrefix および propertySuffix で拡張されたプロパティー名の解決を最初に試みます。false の場合、拡張されたプロパティー名のみが検索されます。
|
prefixToken
|
文字列
|
{{
|
Camel 2.9: プロパティートークンの開始を示すトークン。 |
suffixToken
|
文字列
|
}}
|
Camel 2.9: プロパティートークンの最後を示すトークン。 |
systemPropertiesMode
|
int
|
2
|
Camel 2.16: システムプロパティーを解決し、使用するかどうかに使用するモード。
これを org.apache.camel.spring.spi.BridgePropertyPlaceholderConfigurer で Spring のプロパティープレースホルダーにブリッジする場合、BridgePropertyPlaceholderConfigurer の設定は PropertiesComponent の設定よりも優先されます。
|
CamelContext で resolvePropertyPlaceholders メソッドを使用して、任意の Java コードからプロパティーを解決できます。
その他の参考資料 リンクのコピーリンクがクリップボードにコピーされました!
- プロパティーで暗号化された値(パスワードなど)を使用するための jasypt ???
第129章 Quartz リンクのコピーリンクがクリップボードにコピーされました!
Quartz コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
quartz://timerName?options quartz://groupName/timerName?options quartz://groupName/timerName?cron=expression quartz://timerName?cron=expression
quartz://timerName?options
quartz://groupName/timerName?options
quartz://groupName/timerName?cron=expression
quartz://timerName?cron=expression
CronTrigger または SimpleTrigger のいずれかを使用します。cron 式が指定されていない場合、コンポーネントは単純なトリガーを使用します。groupName が指定されていない場合、quartz コンポーネントは Camel グループ名を使用します。
?option=value&option=value&.. の形式で追加できます。
オプション リンクのコピーリンクがクリップボードにコピーされました!
| パラメーター | デフォルト | 説明 |
|---|---|---|
cron
|
なし |
cron 式を指定します( trigger.\* または job.\* オプションと互換性がありません)。
|
trigger.repeatCount
|
0
|
SimpleTrigger: タイマーを繰り返す回数はどれくらいですか ? |
trigger.repeatInterval
|
0
|
SimpleTrigger: 繰り返されるトリガーの間隔(ミリ秒単位)。 |
job.name
|
null
|
ジョブ名を設定します。 |
ジョブ。XXX
|
null
|
ジョブオプションを XXX セッター名で設定します。
|
trigger.XXX
|
null
|
XXX セッター名で trigger オプションを設定します。
|
stateful
|
false
|
デフォルトのジョブの代わりに Quartz StatefulJob を使用します。
|
fireNow
|
false
|
Camel 2.2.0: true の場合は、SimpleTrigger の使用時にルートを起動したときにトリガーを実行します。
|
deleteJob
|
true
|
Camel 2.12: true の場合、ルートが停止するとトリガーが自動的に削除されます。false の場合、スケジューラーは残り、ユーザーは Camel URI で事前設定されたトリガーを再利用できます。名前が一致するだけです。deleteJob と true の両方を設定することはできません。
|
pauseJob
|
false
|
Camel 2.12: true の場合、トリガーはルートが停止すると自動的に一時停止します。false の場合、スケジューラーは残り、ユーザーは Camel URI で事前設定されたトリガーを再利用できます。名前が一致するだけです。deleteJob と pauseJob は true の両方に設定することはできない点に注意してください。
|
usingFixedCamelContextName
|
false
|
Camel 2.15.0: true の場合、JobDataMap は CamelContext 名を直接使用して Camel コンテキストを参照します。false の場合は、deployed がデプロイ中に変更される可能性のある管理名を使用します。JobDataMap CamelContext
|
mock:results エンドポイントに 2 つのタイマーイベントを実行します。
from("quartz://myGroup/myTimerName?trigger.repeatInterval=2&trigger.repeatCount=1").routeId("myRoute").to("mock:result");
from("quartz://myGroup/myTimerName?trigger.repeatInterval=2&trigger.repeatCount=1").routeId("myRoute").to("mock:result");
QuartzScheduler で必要となるため、この ID が一意である <camelContext> に ID を割り当てるようにしてください。<camelContext> に id を設定しないと、一意の ID が自動的に割り当てられ、問題はありません。
quartz.properties ファイルの設定 リンクのコピーリンクがクリップボードにコピーされました!
org/quartz ディレクトリーで quartz.properties ファイルを検索します。WAR デプロイメントを使用している場合は、WEB-INF/classes/org/quartz の quartz.properties をドロップするだけです。
| パラメーター | デフォルト | タイプ | 説明 |
|---|---|---|---|
properties
|
null
|
プロパティー
|
Camel 2.4: java.util.Propoperties インスタンスを設定できます。
|
propertiesFile
|
null
|
文字列
|
Camel 2.4: クラスパスから読み込むプロパティーのファイル名 |
<bean id="quartz" class="org.apache.camel.component.quartz.QuartzComponent">
<property name="propertiesFile" value="com/mycompany/myquartz.properties"/>
</bean>
<bean id="quartz" class="org.apache.camel.component.quartz.QuartzComponent">
<property name="propertiesFile" value="com/mycompany/myquartz.properties"/>
</bean>
JMX での Quartz スケジューラーの有効化 リンクのコピーリンクがクリップボードにコピーされました!
org.quartz.scheduler.jmx.export オプションを設定ファイルの true 値に設定します。
true に自動的に設定します。
Quartz スケジューラーの起動 リンクのコピーリンクがクリップボードにコピーされました!
| パラメーター | デフォルト | タイプ | 説明 |
|---|---|---|---|
startDelayedSeconds
|
0
|
int
|
Camel 2.4: quartz スケジューラーを起動するまで待機する秒数。 |
autoStartScheduler
|
true
|
boolean
|
Camel 2.4: スケジューラーを自動的に起動するかどうか。 |
<bean id="quartz" class="org.apache.camel.component.quartz.QuartzComponent">
<property name="startDelayedSeconds" value="5"/>
</bean>
<bean id="quartz" class="org.apache.camel.component.quartz.QuartzComponent">
<property name="startDelayedSeconds" value="5"/>
</bean>
クラスタリング リンクのコピーリンクがクリップボードにコピーされました!
JobStore はクラスター化されます。その後、Quartz コンポーネントはノードの停止/シャットダウン時にトリガーを一時停止/削除し ません。これにより、トリガーはクラスター内の他のノードでも実行を継続できます。
メッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
が 追加されます: calendar、fireTime、jobDetail、jobInstance、jobRuntTime、mergedJobDataMap、nextFireTime、previousFireTime、refireCount、Result、scheduledFireTime、scheduler、trigger Name、triggerGroup。
fireTime ヘッダーには、エクスチェンジがいつ実行されたかの java.util.Date が含まれます。
Cron トリガーの使用 リンクのコピーリンクがクリップボードにコピーされました!
cron URI パラメーターで使用できますが、有効な URI エンコーディングを保持するには、スペースの代わりに + を使用できます。Quartz では、cron 式の使用方法に関する チュートリアルを少し 紹介します。
from("quartz://myGroup/myTimerName?cron=0+0/5+12-18+?+*+MON-FRI").to("activemq:Totally.Rocks");
from("quartz://myGroup/myTimerName?cron=0+0/5+12-18+?+*+MON-FRI").to("activemq:Totally.Rocks");
0 0/5 12-18 ? * MON-FRI
0 0/5 12-18 ? * MON-FRI
| URI 文字 | Cron 文字 |
|---|---|
\+
|
スペース |
タイムゾーンの指定 リンクのコピーリンクがクリップボードにコピーされました!
quartz://groupName/timerName?cron=0+0/5+12-18+?+*+MON-FRI&trigger.timeZone=Europe/Stockholm
quartz://groupName/timerName?cron=0+0/5+12-18+?+*+MON-FRI&trigger.timeZone=Europe/Stockholm
java.util.TimeZone で許可される値です。
文字列 を java.util.TimeZone Type Converter に提供する必要があります。Camel 2.8.1 以降では、このような Type Converter が camel-core に含まれています。
第130章 Quartz2 リンクのコピーリンクがクリップボードにコピーされました!
Quartz2 Component リンクのコピーリンクがクリップボードにコピーされました!
pom.xml に以下の依存関係を追加する必要があります。
Camel on EAP デプロイメント リンクのコピーリンクがクリップボードにコピーされました!
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
quartz2://timerName?options quartz2://groupName/timerName?options quartz2://groupName/timerName?cron=expression quartz2://timerName?cron=expression
quartz2://timerName?options
quartz2://groupName/timerName?options
quartz2://groupName/timerName?cron=expression
quartz2://timerName?cron=expression
CronTrigger または SimpleTrigger のいずれかを使用します。cron 式が指定されていない場合、コンポーネントは単純なトリガーを使用します。groupName が指定されていない場合、quartz コンポーネントは Camel グループ名を使用します。
?option=value&option=value&.. の形式で追加できます。
オプション リンクのコピーリンクがクリップボードにコピーされました!
| パラメーター | デフォルト | 説明 |
|---|---|---|
cron
|
なし |
cron 式を指定します( trigger.\* または job.\* オプションと互換性がありません)。
|
trigger.repeatCount
|
0
|
SimpleTrigger: タイマーを繰り返す回数はどれくらいですか ? |
trigger.repeatInterval
|
1000
|
SimpleTrigger: 繰り返されるトリガーの間隔(ミリ秒単位)。この間隔を使用して簡単なトリガーを使用するには、trigger.repeatCount を有効にする必要があります。
|
job.name
|
null
|
ジョブ名を設定します。 |
ジョブ。XXX
|
null
|
ジョブオプションを XXX セッター名で設定します。
|
trigger.XXX
|
null
|
XXX セッター名で trigger オプションを設定します。
|
stateful
|
false
|
デフォルトのジョブの代わりに Quartz @PersistJobDataAfterExecution および @DisallowConcurrentExecution を使用します。
|
fireNow
|
false
|
true の場合、SimpleTrigger の使用時にルートが起動するとトリガーが実行されます。 |
deleteJob
|
true
|
true に設定すると、ルートが停止したときにトリガーが自動的に削除されます。false に設定すると、スケジューラーに残ります。false に設定すると、ユーザーは camel Uri で事前設定されたトリガーを再利用できます。名前が一致するだけです。deleteJob と pauseJob の両方を true に設定することはできないことに注意してください。 |
pauseJob
|
false
|
true に設定すると、ルート停止時にトリガーが自動的に一時停止します。false に設定すると、スケジューラーに残ります。false に設定すると、ユーザーは camel Uri で事前設定されたトリガーを再利用できます。名前が一致するだけです。deleteJob と pauseJob の両方を true に設定することはできないことに注意してください。 |
durableJob
|
false
|
Camel 2.12.4/2.13: 孤立した後にジョブが保存したままになるかどうか(トリガーを参照しない)。
|
recoverableJob
|
false
|
Camel 2.12.4/2.13: 'recovery' または 'fail-over' が発生した場合にジョブを再実行する必要があるかどうかをスケジューラーに指示します。
|
usingFixedCamelContextName
|
false
|
Camel 2.15.0: true の場合、JobDataMap は CamelContext 名を直接使用して Camel コンテキストを参照します。false の場合は、deployed がデプロイ中に変更される可能性のある管理名を使用します。JobDataMap CamelContext
|
customCalendar
|
なし |
Camel 2.17.0: スケジューラーおよびトリガーにカスタムカレンダーを追加して、特定の日付範囲を回避します(例:Holidays)。customCalendar タイプは org.quartz.Calendar です。
|
mock:results エンドポイントに 2 つのタイマーイベントを実行します。
from("quartz2://myGroup/myTimerName?trigger.repeatInterval=2&trigger.repeatCount=1")
.routeId("myRoute")
.to("mock:result");
from("quartz2://myGroup/myTimerName?trigger.repeatInterval=2&trigger.repeatCount=1")
.routeId("myRoute")
.to("mock:result");
stateful=true を使用する場合、JobDataMap はジョブが実行されるたびに再永続化されるため、次の実行の状態を維持します。
QuartzScheduler で必要となるため、この ID が一意である <camelContext> に ID を割り当てるようにしてください。<camelContext> に id を設定しないと、一意の ID が自動的に割り当てられ、問題はありません。
quartz.properties ファイルの設定 リンクのコピーリンクがクリップボードにコピーされました!
org/quartz ディレクトリーで quartz.properties ファイルを検索します。WAR デプロイメントを使用している場合は、WEB-INF/classes/org/quartz の quartz.properties をドロップするだけです。
| パラメーター | デフォルト | タイプ | 説明 |
|---|---|---|---|
properties
|
null
|
プロパティー
|
java.util.Properties インスタンスを設定できます。
|
propertiesFile
|
null
|
文字列
|
クラスパスから読み込むプロパティーのファイル名 |
<bean id="quartz" class="org.apache.camel.component.quartz2.QuartzComponent">
<property name="propertiesFile" value="com/mycompany/myquartz.properties"/>
</bean>
<bean id="quartz" class="org.apache.camel.component.quartz2.QuartzComponent">
<property name="propertiesFile" value="com/mycompany/myquartz.properties"/>
</bean>
JMX での Quartz スケジューラーの有効化 リンクのコピーリンクがクリップボードにコピーされました!
org.quartz.scheduler.jmx.export オプションを設定ファイルの true 値に設定します。
true に自動的に設定します。
Quartz スケジューラーの起動 リンクのコピーリンクがクリップボードにコピーされました!
| パラメーター | デフォルト | タイプ | 説明 |
|---|---|---|---|
startDelayedSeconds
|
0
|
int
|
quartz スケジューラーを起動するまで待機する秒数。 |
autoStartScheduler
|
true
|
boolean
|
スケジューラーを自動起動するかどうか。 |
<bean id="quartz2" class="org.apache.camel.component.quartz2.QuartzComponent">
<property name="startDelayedSeconds" value="5"/>
</bean>
<bean id="quartz2" class="org.apache.camel.component.quartz2.QuartzComponent">
<property name="startDelayedSeconds" value="5"/>
</bean>
クラスタリング リンクのコピーリンクがクリップボードにコピーされました!
JobStore はクラスター化されます。次に、Quartz2 コンポーネントは、ノードの停止/シャットダウン時にトリガーを一時停止/削除し ません。これにより、トリガーはクラスター内の他のノードでも実行を継続できます。
メッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
が 追加されます: calendar、fireTime、jobDetail、jobInstance、jobRuntTime、mergedJobDataMap、nextFireTime、previousFireTime、refireCount、Result、scheduledFireTime、scheduler、trigger Name、triggerGroup。
fireTime ヘッダーには、エクスチェンジがいつ実行されたかの java.util.Date が含まれます。
Cron トリガーの使用 リンクのコピーリンクがクリップボードにコピーされました!
cron URI パラメーターで使用できますが、有効な URI エンコーディングを保持するには、スペースの代わりに + を使用できます。
from("quartz2://myGroup/myTimerName?cron=0+0/5+12-18+?+*+MON-FRI").to("activemq:Totally.Rocks");
from("quartz2://myGroup/myTimerName?cron=0+0/5+12-18+?+*+MON-FRI").to("activemq:Totally.Rocks");
0 0/5 12-18 ? * MON-FRI
0 0/5 12-18 ? * MON-FRI
| URI 文字 | Cron 文字 |
|---|---|
\+
|
スペース |
タイムゾーンの指定 リンクのコピーリンクがクリップボードにコピーされました!
quartz2://groupName/timerName?cron=0+0/5+12-18+?+*+MON-FRI&trigger.timeZone=Europe/Stockholm
quartz2://groupName/timerName?cron=0+0/5+12-18+?+*+MON-FRI&trigger.timeZone=Europe/Stockholm
java.util.TimeZone で許可される値です。
QuartzScheduledPollConsumerScheduler の使用 リンクのコピーリンクがクリップボードにコピーされました!
from("file:inbox?scheduler=quartz2&scheduler.cron=0/2+*+*+*+*+?")
.to("bean:process");
from("file:inbox?scheduler=quartz2&scheduler.cron=0/2+*+*+*+*+?")
.to("bean:process");
scheduler=quartz2 を定義して、Quartz2 ベースのスケジューラーを使用するように Camel に指示することに注意してください。次に、scheduler.xxx オプションを使用してスケジューラーを設定します。Quartz2 スケジューラーでは、cron オプションを設定する必要があります。
| パラメーター | デフォルト | タイプ | 説明 |
|---|---|---|---|
quartzScheduler
|
null
|
org.quartz.Scheduler
|
カスタム Quartz スケジューラーを使用するには、以下を行います。設定しない場合は、Quartz2 コンポーネントから共有スケジューラーが使用されます。 |
cron
|
null
|
文字列
|
必須: ポーリングをトリガーするために cron 式を定義します。 |
triggerId
|
null
|
文字列
|
トリガー ID を指定します。指定しない場合は、UUID が生成され、使用されます。クラスター環境では triggerId を指定できず、クラスターの各ノードには一意の instanceId が必要です。 |
triggerGroup
|
QuartzScheduledPollConsumerScheduler
|
文字列
|
トリガーグループを指定します。 |
timeZone
|
デフォルト
|
TimeZone
|
CRON トリガーに使用するタイムゾーン。 |
scheduler の接頭辞を指定する必要があります。たとえば、トリガー ID およびグループを設定するには、以下を実行します。
from("file:inbox?scheduler=quartz2&scheduler.cron=0/2+*+*+*+*+?&scheduler.triggerId=myId&scheduler.triggerGroup=myGroup")
.to("bean:process");
from("file:inbox?scheduler=quartz2&scheduler.cron=0/2+*+*+*+*+?&scheduler.triggerId=myId&scheduler.triggerGroup=myGroup")
.to("bean:process");
from("file:inbox?scheduler=spring&scheduler.cron=0/2+*+*+*+*+?")
.to("bean:process");
from("file:inbox?scheduler=spring&scheduler.cron=0/2+*+*+*+*+?")
.to("bean:process");
第131章 QuickFix リンクのコピーリンクがクリップボードにコピーされました!
QuickFix/J コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
pom.xml に以下の依存関係を追加する必要があります。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
quickfix:configFile[?sessionID=sessionID&lazyCreateEngine=true|false]
quickfix:configFile[?sessionID=sessionID&lazyCreateEngine=true|false]
(BeginString):(SenderCompID)[/(SenderSubID)[/(SenderLocationID)]]->(TargetCompID)[/(TargetSubID)[/(TargetLocationID)]]
(BeginString):(SenderCompID)[/(SenderSubID)[/(SenderLocationID)]]->(TargetCompID)[/(TargetSubID)[/(TargetLocationID)]]
lazyCreateEngine (Camel 2.12.3+)パラメーターを使用すると、QuickFIX/J エンジンをオンデマンドで作成できます。値 true は、最初のメッセージが送信されるか、ルート定義にコンシューマーが設定されている場合にエンジンが開始されることを意味します。false の場合、エンジンはエンドポイントの作成時に開始されます。このパラメーターがない場合、コンポーネントのプロパティー lazyCreateEngines の値が使用されます。
quickfix:config.cfg quickfix:config.cfg?sessionID=FIX.4.2:MyTradingCompany->SomeExchange quickfix:config.cfg?sessionID=FIX.4.2:MyTradingCompany->SomeExchange&lazyCreateEngine=true
quickfix:config.cfg
quickfix:config.cfg?sessionID=FIX.4.2:MyTradingCompany->SomeExchange
quickfix:config.cfg?sessionID=FIX.4.2:MyTradingCompany->SomeExchange&lazyCreateEngine=true
エンドポイント リンクのコピーリンクがクリップボードにコピーされました!
エクスチェンジの形式 リンクのコピーリンクがクリップボードにコピーされました!
| ヘッダー名 | 説明 |
|---|---|
EventCategory
|
AppMessageReceived、AppMessageSent、AdminMessageReceived、AdminMessageSent、SessionCreated、SessionLogon、SessionLogoff のいずれか。QuickfixjEventCategory enum を参照してください。
|
SessionID
|
FIX Message SessionID |
MessageType
|
FIX MsgType タグの値 |
DataDictionary
|
受信メッセージの解析に使用するデータディクショナリーを指定します。データディクショナリーのインスタンス、または QuickFIX/J データディクショナリーファイルのリソースパスを指定できます。 |
QuickFix/J Configuration Extensions リンクのコピーリンクがクリップボードにコピーされました!
通信コネクター リンクのコピーリンクがクリップボードにコピーされました!
| セッションの設定 | コンポーネントの動作 |
|---|---|
ConnectionType=initiator
|
イニシエーターコネクターの作成 |
ConnectionType=acceptor
|
アクセプターコネクターの作成 |
| デフォルト/グローバル設定 | コンポーネントの動作 |
|---|---|
ThreadModel=ThreadPerConnector
|
SocketInitiator または SocketAcceptor (デフォルト)の使用
|
ThreadModel=ThreadPerSession
|
ThreadedSocketInitiator または ThreadedSocketAcceptorの使用
|
ロギング リンクのコピーリンクがクリップボードにコピーされました!
ScreenLog がデフォルトになります。複数のログ実装を意味する設定を含めるのはエラーです。
| デフォルト/グローバル設定 | コンポーネントの動作 |
|---|---|
ScreenLogShowEvents
|
ScreenLogを使用する
|
ScreenLogShowIncoming
|
ScreenLogを使用する
|
ScreenLogShowOutgoing
|
ScreenLogを使用する
|
SLF4J*
|
Camel 2.6+SLF4JLog を使用します。SLF4J 設定のいずれかにより、このログが使用されます。
|
FileLogPath
|
FileLogを使用する
|
JdbcDriver
|
JdbcLogの使用
|
メッセージストア リンクのコピーリンクがクリップボードにコピーされました!
MemoryStore がデフォルトになります。複数のメッセージストアの実装を意味する設定を含めるのはエラーです。
| デフォルト/グローバル設定 | コンポーネントの動作 |
|---|---|
JdbcDriver
|
JdbcStoreの使用
|
FileStorePath
|
FileStoreの使用
|
SleepycatDatabaseDir
|
SleepcatStoreの使用
|
メッセージファクトリー リンクのコピーリンクがクリップボードにコピーされました!
DefaultMessageFactory です。ただし、高度なアプリケーションではカスタムメッセージファクトリーが必要になる場合があります。これは、QuickFIX/J コンポーネントに設定できます。
JMX リンクのコピーリンクがクリップボードにコピーされました!
| デフォルト/グローバル設定 | コンポーネントの動作 |
|---|---|
UseJmx
|
Y の場合は、QuickFIX/J JMX を有効にします。
|
その他のデフォルト リンクのコピーリンクがクリップボードにコピーされました!
SessionStartTime および SessionEndTime はデフォルトで 00:00:00 で、セッションは自動的に開始および停止されません。HeartBtInt (heartbeat 間隔)はデフォルトで 30 秒です。
最小限のイニシエーター設定の例 リンクのコピーリンクがクリップボードにコピーされました!
[SESSION] ConnectionType=initiator BeginString=FIX.4.4 SenderCompID=YOUR_SENDER TargetCompID=YOUR_TARGET
[SESSION]
ConnectionType=initiator
BeginString=FIX.4.4
SenderCompID=YOUR_SENDER
TargetCompID=YOUR_TARGET
InOut メッセージ交換パターンの使用 リンクのコピーリンクがクリップボードにコピーされました!
コンシューマーの InOut エクスチェンジの実装 リンクのコピーリンクがクリップボードにコピーされました!
MessageOrderStatusService は、同期サービスメソッドを持つ Bean です。メソッドはリクエストへの応答を返します(この場合は ExecutionReport)。その後、要求元セッションに送信されます。
from("quickfix:examples/inprocess.cfg?sessionID=FIX.4.2:MARKET->TRADER&exchangePattern=InOut")
.filter(header(QuickfixjEndpoint.MESSAGE_TYPE_KEY).isEqualTo(MsgType.ORDER_STATUS_REQUEST))
.bean(new MarketOrderStatusService());
from("quickfix:examples/inprocess.cfg?sessionID=FIX.4.2:MARKET->TRADER&exchangePattern=InOut")
.filter(header(QuickfixjEndpoint.MESSAGE_TYPE_KEY).isEqualTo(MsgType.ORDER_STATUS_REQUEST))
.bean(new MarketOrderStatusService());
プロデューサーの InOut エクスチェンジの実装 リンクのコピーリンクがクリップボードにコピーされました!
Exchange プロパティーを使用して指定できます。
| 説明 | キー文字列 | キー定数 | デフォルト | 相関基準 | "CorrelationCriteria" | QuickfixjProducer.CORRELATION_CRITERIA_KEY | なし | |
|---|---|---|---|---|---|---|---|---|
| 相関タイムアウト(Milliseconds) | "CorrelationTimeout" | QuickfixjProducer.CORRELATION_TIMEOUT_KEY | 1000 |
MessagePredicate オブジェクトで定義されます。以下の例では、トランザクションタイプが STATUS で、Order ID が要求に一致する指定のセッションの FIX ExecutionReport を処理します。セッション ID は 要求 側の、送信者とターゲットの CompID フィールドは、応答を検索する際に逆になります。
例 リンクのコピーリンクがクリップボードにコピーされました!
RequestReplyExample という例が含まれています。この例では、注文ステータスリクエストを受け入れる単純な HTTP サーバーエンドポイントを作成します。HTTP リクエストは FIX OrderStatusRequestMessage に変換され、相関基準で拡張され、クイックフィックスエンドポイントにルーティングされます。その後、応答は JSON 形式の文字列に変換され、Web 応答として提供される HTTP サーバーエンドポイントに送信されます。
Spring の設定 リンクのコピーリンクがクリップボードにコピーされました!
FactoryBean が含まれています。QuickFIX/J セッション ID 文字列の型コンバーターも含まれています。以下の例は、両方のセッションのデフォルト設定を持つアクセプターおよびイニシエーターセッションの簡単な設定を示しています。
QuickfixjConfiguration クラスが含まれています。QuickFIX/J セッション ID 文字列の型コンバーターも含まれています。以下の例は、両方のセッションのデフォルト設定を持つアクセプターおよびイニシエーターセッションの簡単な設定を示しています。
例外処理 リンクのコピーリンクがクリップボードにコピーされました!
RejectLogon 例外が出力された場合、ログオンは拒否されます。
修正シーケンス番号管理 リンクのコピーリンクがクリップボードにコピーされました!
SessionLogon イベントカテゴリーを処理し、メッセージの送信を開始するようにアプリケーションに通知するルートを設定します。
ルートの例 リンクのコピーリンクがクリップボードにコピーされました!
from("quickfix:examples/inprocess.cfg?sessionID=FIX.4.2:MARKET->TRADER").
filter(header(QuickfixjEndpoint.EVENT_CATEGORY_KEY).isEqualTo(QuickfixjEventCategory.AppMessageReceived)).
to("trade-executor:market");
from("quickfix:examples/inprocess.cfg?sessionID=FIX.4.2:MARKET->TRADER").
filter(header(QuickfixjEndpoint.EVENT_CATEGORY_KEY).isEqualTo(QuickfixjEventCategory.AppMessageReceived)).
to("trade-executor:market");
from("trade-executor:market").to("quickfix:examples/inprocess.cfg");
from("trade-executor:market").to("quickfix:examples/inprocess.cfg");
from("quickfix:examples/inprocess.cfg?sessionID=FIX.4.2:TRADER->MARKET").
filter(header(QuickfixjEndpoint.MESSAGE_TYPE_KEY).isEqualTo(MsgType.EXECUTION_REPORT)).
bean(new MyTradeExecutionProcessor());
from("quickfix:examples/inprocess.cfg?sessionID=FIX.4.2:TRADER->MARKET").
filter(header(QuickfixjEndpoint.MESSAGE_TYPE_KEY).isEqualTo(MsgType.EXECUTION_REPORT)).
bean(new MyTradeExecutionProcessor());
QuickFix/J Component Prior to Camel 2.5 リンクのコピーリンクがクリップボードにコピーされました!
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
quickfix-server:config file quickfix-client:config file
quickfix-server:config file
quickfix-client:config file
エクスチェンジデータ形式 リンクのコピーリンクがクリップボードにコピーされました!
QuickFix.Message インスタンスを作成する必要があります。
Lazy creating engines リンクのコピーリンクがクリップボードにコピーされました!
サンプル リンクのコピーリンクがクリップボードにコピーされました!
<route> <from uri="activemq:queue:fix"/> <bean ref="fixService" method="createFixMessage" /> // bean method in charge to transform message into a QuickFix.Message <to uri="quickfix-client:META-INF/quickfix/client.cfg" /> // Quickfix engine who will send the FIX messages to the gateway </route>
<route>
<from uri="activemq:queue:fix"/>
<bean ref="fixService" method="createFixMessage" /> // bean method in charge to transform message into a QuickFix.Message
<to uri="quickfix-client:META-INF/quickfix/client.cfg" /> // Quickfix engine who will send the FIX messages to the gateway
</route>
<route> <from uri="quickfix-server:META-INF/quickfix/server.cfg"/> // QuickFix engine who will receive the message from FIX gateway <bean ref="fixService" method="parseFixMessage" /> // bean method parsing the QuickFix.Message <to uri="uri="activemq:queue:fix"/>" /> </route>
<route>
<from uri="quickfix-server:META-INF/quickfix/server.cfg"/> // QuickFix engine who will receive the message from FIX gateway
<bean ref="fixService" method="parseFixMessage" /> // bean method parsing the QuickFix.Message
<to uri="uri="activemq:queue:fix"/>" />
</route>
第132章 RabbitMQ リンクのコピーリンクがクリップボードにコピーされました!
RabbitMQ コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
pom.xml に以下の依存関係を追加する必要があります。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
rabbitmq://hostname[:port]/exchangeName?[options]
rabbitmq://hostname[:port]/exchangeName?[options]
オプション リンクのコピーリンクがクリップボードにコピーされました!
| プロパティー | デフォルト | 説明 |
|---|---|---|
autoAck
|
true
|
メッセージを自動承認するかどうか。 |
autoDelete
|
true
|
true の場合、エクスチェンジは使用されなくなったときに削除されます。 |
durable
|
true
|
永続エクスチェンジを宣言する場合(エクスチェンジはサーバーの再起動後も維持されます)。 |
queue
|
ランダムな uuid
|
メッセージを受信するキュー。 |
routingKey
|
null
|
コンシューマーキューをエクスチェンジにバインドするときに使用するルーティングキー。プロデューサールーティングキーの場合は、ヘッダーを設定します(ヘッダーセクションを参照)。 |
threadPoolSize
|
10
|
コンシューマーは、一定数のスレッドを持つスレッドプールエグゼキューターを使用します。この設定により、そのスレッド数を設定できます。 |
username
|
null
|
アクセスが認証された場合のユーザー名。 |
password
|
null
|
認証されたアクセスのパスワード。 |
vhost
|
/
|
チャネルの vhost。 |
exchangeType
|
direct
|
Camel 2.12.2: direct や topic などのエクスチェンジタイプ。
|
bridgeEndpoint
|
false
|
Camel 2.12.3: bridgeEndpoint が true の場合、プロデューサーは rabbitmq.EXCHANGE_NAME および "rabbitmq.ROUTING_KEY" のメッセージヘッダーを無視します。
|
addresses
|
null
|
Camel 2.12.3: このオプションを設定すると、camel-rabbitmq はオプションアドレスの設定に基づいて接続の作成を試みます。addresses 値は、server1:12345、server2:12345 などの文字列です。
|
connectionTimeout
|
0
|
Camel 2.14: 接続のタイムアウト。
|
requestedChannelMax
|
0
|
Camel 2.14: 接続要求されたチャネルの最大数(提供されたチャネルの最大数)。
|
requestedFrameMax
|
0
|
Camel 2.14: Connection requested frame max (max size of frame)
|
requestedHeartbeat
|
0
|
Camel 2.14: 接続が要求されたハートビート(大ツは秒単位)。
|
sslProtocol
|
null
|
Camel 2.14: 接続時に SSL を有効にし、許可される値は 'true'、'TLS'、および 'SSLv3' です。
|
trustManager
|
null
|
Camel 2.14: SSL トラストマネージャーを設定します。このオプションを有効にするには、SSL を有効にする必要があります。
|
clientProperties
|
null
|
Camel 2.14: 接続クライアントプロパティー(サーバーとネゴシエートするために使用されるクライアント情報)。
|
connectionFactory
|
null
|
Camel 2.14: カスタムの RabbitMQ 接続ファクトリー。このオプションを設定すると、URI に設定されたすべての接続オプション(connectionTimeout、requestedChannelMax....)は使用されません。
|
automaticRecoveryEnabled
|
false
|
Camel 2.14: 接続の自動リカバリーを有効にします(接続シャットダウンがアプリケーションによって開始されていない場合に自動リカバリーを実行する接続実装を使用)。
|
networkRecoveryInterval
|
5000
|
Camel 2.14: ネットワークの回復間隔(ネットワーク障害からの復旧時に使用される間隔)。
|
topologyRecoveryEnabled
|
true
|
Camel 2.14: 接続トポロジーリカバリーを有効にします(トポロジーリカバリーは実行されませんか ?)。
|
prefetchEnabled
|
false
|
Camel 2.14: RabbitMQConsumer 側で QoS を有効にします。prefetchSize、prefetchCount、prefetchGlobal のオプションを同時に指定する必要があります。
|
prefetchSize
|
0
|
Camel 2.14: サーバーが配信するコンテンツの最大量(オクテットで測定)、無制限の場合は 0。
|
prefetchCount
|
0
|
Camel 2.14: サーバーが配信するメッセージの最大数。無制限の場合は 0。
|
prefetchGlobal
|
false
|
Camel 2.14: 設定を各コンシューマーではなくチャネル全体に適用する必要がある場合。
|
declare
|
true
|
Camel 2.14: オプションが true の場合、Camel はエクスチェンジとキューの名前を宣言し、それらをバインドします。オプションが false の場合、Camel はサーバー上でエクスチェンジおよびキュー名を宣言しません。 |
concurrentConsumers
|
1
|
Camel 2.14: ブローカーから消費する同時コンシューマーの数( JMS コンポーネントの同じオプションと同様)。 |
deadLetterRoutingKey
|
Camel 2.14: デッドレターエクスチェンジのルーティングキー。 | |
deadLetterExchange
|
Camel 2.14: デッドレターエクスチェンジの名前。 | |
deadLetterExchangeType
|
direct
|
Camel 2.14: デッドレターエクスチェンジのタイプ。 |
channelPoolMaxSize
|
10
|
Camel 2.14.1 (Producer のみ): メッセージの送信に使用されるチャネルの最大数。 |
channelPoolMaxWait
|
1000
|
Camel 2.14.1 (Producer のみ ): チャネルを待つ最大時間(ミリ秒単位)。 |
queueArgsConfigurer
|
null
|
Camel 2.15.1: キューを宣言するときに Args マップを設定するために使用できるカスタム ArgsConfigurer インスタンス。
|
exchangeArgsConfigurer
|
null
|
Camel 2.15.1: エクスチェンジの宣言時に Args マップを設定するために使用できるカスタム ArgsConfigurer インスタンス。
|
requestTimeout
|
20000
|
Camel 2.16: プロデューサーのみ。InOut Exchange Pattern (ミリ秒単位)の使用時に応答を待機するタイムアウト。デフォルトは 40 秒です。requestTimeoutCheckerInterval オプションも参照してください。
|
requestTimeoutCheckerInterval
|
1000
|
Camel 2.16: RabbitMQ 経由でリクエスト/リプライを行うときに Camel がタイムアウトしたエクスチェンジをチェックする頻度を設定します。デフォルトでは、Camel は 1 秒あたり 1 回チェックします。ただし、タイムアウトの発生時に迅速な反応が必要な場合は、この間隔を下げてより頻繁にチェックできます。タイムアウトは requestTimeout オプションによって決定されます。
|
transferException
|
false
|
Camel 2.16: 有効で、リクエスト応答メッセージング(InOut)を使用し、コンシューマー側でエクスチェンジが失敗した場合、原因となった例外は応答で byte[] として送り返されます。クライアントが Camel の場合、返される例外が再出力されます。これにより、Camel RabbitMQ をルーティングのブリッジとして使用できます。たとえば、永続キューを使用して堅牢なルーティングを有効にすることができます。キャッチされた例外はシリアライズ可能である必要があります。コンシューマー側の元の例外は、プロデューサーに返される場合に org.apache.camel.RuntimeCamelException などの外部例外でラップできます。
|
skipQueueDeclare
|
false
|
Camel 2.16.1: true の場合、プロデューサーはキューを宣言してバインドしません。これは、既存のルーティングキーを介してメッセージを転送するために使用できます。
|
publisherAcknowledgements
|
false
|
Camel 2.17: true の場合、メッセージはパブリッシャーの確認が有効になっている状態で公開されます。
|
publisherAcknowledgementsTimeout
|
0
|
Camel 2.17: RabbitMQ サーバーからの basic.ack 応答を待つ時間(ミリ秒単位)。
|
カスタム接続ファクトリー リンクのコピーリンクがクリップボードにコピーされました!
Headers リンクのコピーリンクがクリップボードにコピーされました!
| プロパティー | 値 |
|---|---|
rabbitmq.ROUTING_KEY
|
メッセージの受信に使用されたルーティングキー、またはメッセージの生成時に使用されるルーティングキー |
rabbitmq.EXCHANGE_NAME
|
メッセージが受信されたエクスチェンジ |
rabbitmq.DELIVERY_TAG
|
受信したメッセージの rabbitmq 配信タグ |
rabbitmq.REQUEUE
|
Camel 2.14.2: これは、コンシューマーがメッセージの拒否を制御するために使用されます。コンシューマーがエクスチェンジの処理を完了し、エクスチェンジが失敗した場合、コンシューマーは RabbitMQ ブローカーからのメッセージを拒否します。このヘッダーの値はこの動作を制御します。false の場合、メッセージは破棄/停止文字されます。true の場合、メッセージは再度キューに置かれます。デフォルトは false です。
|
| プロパティー | 値 |
|---|---|
rabbitmq.ROUTING_KEY
|
メッセージの送信時に使用されるルーティングキー |
rabbitmq.EXCHANGE_NAME
|
メッセージが受信された、または送信されたエクスチェンジ |
rabbitmq.CONTENT_TYPE
|
RabbitMQ メッセージに設定する contentType |
rabbitmq.PRIORITY
|
RabbitMQ メッセージに設定する優先度ヘッダー |
rabbitmq.CORRELATIONID
|
RabbitMQ メッセージに設定する correlationId |
rabbitmq.MESSAGE_ID
|
RabbitMQ メッセージに設定するメッセージ ID |
rabbitmq.DELIVERY_MODE
|
メッセージを永続化すべきかどうか |
rabbitmq.USERID
|
RabbitMQ メッセージに設定する userId |
rabbitmq.CLUSTERID
|
RabbitMQ メッセージに設定する clusterId |
rabbitmq.REPLY_TO
|
RabbitMQ メッセージに設定する replyTo |
rabbitmq.CONTENT_ENCODING
|
RabbitMQ メッセージに設定する contentEncoding |
rabbitmq.TYPE
|
RabbitMQ メッセージに設定するタイプ |
rabbitmq.EXPIRATION
|
RabbitMQ メッセージに設定する有効期限 |
rabbitmq.TIMESTAMP
|
RabbitMQ メッセージに設定するタイムスタンプ |
rabbitmq.APP_ID
|
RabbitMQ メッセージに設定する appId |
メッセージボディー リンクのコピーリンクがクリップボードにコピーされました!
サンプル リンクのコピーリンクがクリップボードにコピーされました!
from("rabbitmq://localhost/A?routingKey=B")
from("rabbitmq://localhost/A?routingKey=B")
from("rabbitmq://localhost/A?routingKey=B&threadPoolSize=1&autoAck=false")
from("rabbitmq://localhost/A?routingKey=B&threadPoolSize=1&autoAck=false")
...to("rabbitmq://localhost/B")
...to("rabbitmq://localhost/B")
第133章 Ref リンクのコピーリンクがクリップボードにコピーされました!
ref コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
ref:someName
ref:someName
someName は Spring レジストリー内のエンドポイントの Bean ID になります。
ランタイムルックアップ リンクのコピーリンクがクリップボードにコピーされました!
<camelContext id="camel" xmlns="http://activemq.apache.org/camel/schema/spring">
<endpoint id="normalOrder" uri="activemq:order.slow"/>
<endpoint id="bigspenderOrder" uri="activemq:order.high"/>
...
</camelContext>
<camelContext id="camel" xmlns="http://activemq.apache.org/camel/schema/spring">
<endpoint id="normalOrder" uri="activemq:order.slow"/>
<endpoint id="bigspenderOrder" uri="activemq:order.high"/>
...
</camelContext>
例 リンクのコピーリンクがクリップボードにコピーされました!
ref: を使用して、Spring ID endpoint2 でエンドポイントを参照します。
ref 属性を使用できます。
<to ref="endpoint2"/>
<to ref="endpoint2"/>
第134章 REST リンクのコピーリンクがクリップボードにコピーされました!
REST コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
rest://method:path[:uriTemplate]?[options]
rest://method:path[:uriTemplate]?[options]
URI オプション リンクのコピーリンクがクリップボードにコピーされました!
|
名前
|
デフォルト値
|
説明
|
method
|
|
get、post、put、patch、delete、head、trace、connect、または のいずれかのオプションである HTTP メソッド。
|
path
|
|
REST 構文をサポートするベースパス。例については、以下を参照してください。
|
uriTemplate
|
|
REST 構文をサポートする URI テンプレート。例については、以下を参照してください。
|
consumes
|
|
'text/xml' や application/json などのメディアタイプが、この REST サービスを受け付けます。デフォルトでは、すべての種類のタイプを受け入れます。
|
produces
|
|
'text/xml' または 'application/json' などのメディアタイプが、この REST サービスが返されます。
|
path および uriTemplate 構文 リンクのコピーリンクがクリップボードにコピーされました!
path および uriTemplate オプションは、パラメーターのサポートを使用して REST コンテキストパスを定義する REST 構文を使用して定義されます。
uriTemplate が設定されていない場合、path オプションも同じように動作します。path のみを設定する場合や、両方のオプションを設定した場合は問題ありません。REST では、path と uriTemplate の両方を設定するのが一般的なプラクティスです。
from("rest:get:hello")
.transform().constant("Bye World");
from("rest:get:hello")
.transform().constant("Bye World");
from("rest:get:hello/{me}")
.transform().simple("Bye ${header.me}");
from("rest:get:hello/{me}")
.transform().simple("Bye ${header.me}");
from("rest:get:hello:/{me}")
.transform().simple("Hi ${header.me}");
from("rest:get:hello:/french/{me}")
.transform().simple("Bonjour ${header.me}");
from("rest:get:hello:/{me}")
.transform().simple("Hi ${header.me}");
from("rest:get:hello:/french/{me}")
.transform().simple("Bonjour ${header.me}");
その他の例 リンクのコピーリンクがクリップボードにコピーされました!
第135章 Restlet リンクのコピーリンクがクリップボードにコピーされました!
Restlet コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
synchronous=true を設定してパフォーマンスを向上できます。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
restlet:restletUrl[?options]
restlet:restletUrl[?options]
protocol://hostname[:port][/resourcePattern]
protocol://hostname[:port][/resourcePattern]
?option=value&option=value&.. の形式で追加できます。
content-type を使用するには、Content-Type を使用します。location には Location などを使用します。
オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | デフォルト値 | 説明 |
|---|---|---|
headerFilterStrategy=#refName
|
RestletHeaderFilterStrategyのインスタンス
|
Camel Registry のヘッダーフィルターストラテジーを参照するには、# 表記(headerFilterStrategy=#refName)を使用します。ストラテジーは、HeaderFilterStrategyAware の場合、restlet バインディングにプラグインされます。
|
restletBinding=# refName
|
DefaultRestletBindingのインスタンス
|
Camel Registry の RestletBinding オブジェクトの Bean ID。
|
restletMethod
|
GET
|
プロデューサーエンドポイントでは、使用するリクエストメソッドを指定します。コンシューマーエンドポイントで、エンドポイントが restletMethod 要求のみを消費することを指定します。文字列値は Method.valueOf (String) メソッドによって org.restlet.data.Method に変換されます。
|
restletMethods
|
なし |
コンシューマーは、restlet コンシューマーエンドポイントによって提供されるコンマ( restletMethods=post,put)で区切られた 1 つ以上のメソッドのみ を指定します。restletMethod および restletMethods オプションの両方を指定すると、restletMethod 設定は無視されます。
|
restletRealm
|
null
|
# 表記(restletRealm=#refName)を使用して、Camel レジストリーでレルムマップの Bean ID を指定します。
|
restletUriPatterns=#refName
|
なし |
コンシューマーは restlet コンシューマーエンドポイントによって処理される 1 つ以上の URI テンプレートのみ を指定し、# 表記を使用して Camel レジストリーの List<String > を参照します。URI パターンがエンドポイント URI に定義されている場合、エンドポイントに定義された URI パターンと restletUriPatterns オプションの両方が受け入れられます。
|
throwExceptionOnFailure (2.6 以降)
|
true
|
プロデューサーは、プロデューサーの失敗時に例外 のみ を出力します。 |
connectionTimeout
|
300000
|
Camel 2.12.3 Producer のみ 以降、接続がタイムアウトした場合、クライアントは接続をタイムアウトし、無制限の待機時間は 0 になります。
|
socketTimeout
|
300000
|
Camel 2.12.3 Producer はクライアントソケット受信タイムアウトのみ であるため、無制限の待機時間は 0 になります。
|
disableStreamCache
|
false
|
Camel 2.14: Jetty からの raw 入力ストリームがキャッシュされているかどうかを判断します(Camel はストリームをファイル、ストリームキャッシュ)キャッシュにストリームします。http://camel.apache.org/stream-caching.htmlデフォルトでは、Camel は Jetty 入力ストリームをキャッシュして複数回読み取りし、Camel がストリームからすべてのデータを取得できるようにします。ただし、このオプションを
true に設定することができます。たとえば、ファイルや他の永続ストアに直接ストリーミングするなど、raw ストリームにアクセスする必要がある場合などです。DefaultRestletBinding は、リクエスト入力ストリームをストリームキャッシュにコピーし、このオプションが false の場合、ストリームを複数回読み取るようにメッセージボディーに配置します。
|
コンポーネントオプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | デフォルト値 | 説明 |
|---|---|---|
controllerDaemon
|
true
|
Camel 2.10: コントローラースレッドがデーモンであるべきかどうかを示します (JVM の終了をブロックしません)。 |
controllerSleepTimeMs
|
100
|
Camel 2.10: コントローラースレッドが各制御間でスリープ状態になる時間。 |
inboundBufferSize
|
8192
|
Camel 2.10: メッセージの読み取り時のバッファーのサイズ。 |
minThreads
|
1
|
Camel 2.10: サービス要求を待機する最小スレッド。 |
maxThreads
|
10
|
Camel 2.10: リクエストを処理するスレッドの最大数。 |
lowThreads
|
8
|
Camel 2.13: コネクターがオーバーロードされているとみなされるタイミングを決定するワーカースレッドの数。
|
maxQueued
|
0
|
Camel 2.13: サービスに利用可能なワーカースレッドがなかった場合にキューに入れることができる最大呼び出し数。値が 0 の場合、キューは使用されず、ワーカースレッドが即座に利用できない場合は呼び出しは拒否されます。値が -1 の場合、バインドされていないキューが使用され、呼び出しは拒否されます。
|
maxConnectionsPerHost
|
-1
|
Camel 2.10: ホストごとの同時接続の最大数(IP アドレス)。 |
maxTotalConnections
|
-1
|
Camel 2.10: 合計同時接続の最大数。 |
outboundBufferSize
|
8192
|
Camel 2.10: メッセージの書き込み時のバッファーのサイズ。 |
persistingConnections
|
true
|
Camel 2.10: 呼び出しの後に接続を維持する必要があるかどうかを示します。 |
pipeliningConnections
|
false
|
Camel 2.10: パイプライン接続をサポートされるかどうかを示します。 |
threadMaxIdleTimeMs
|
60000
|
Camel 2.10: 収集される前にアイドル状態のスレッドが操作を待機する時間。 |
useForwardedForHeader
|
false
|
Camel 2.10: 一般的なプロキシーおよびキャッシュでサポートされる X-Forwarded-For ヘッダーを検索し、それを使用して Request.getClientAddresses ()メソッドの結果を設定します。この情報は、ローカルネットワーク内の中間コンポーネントに対してのみ安全です。他のアドレスは偽のヘッダーを設定することで簡単に変更でき、深刻なセキュリティーチェックでは信頼できません。 |
reuseAddress
|
true
|
Camel 2.10.5/2.11.1: SO_REUSEADDR ソケットオプションを有効/無効にします。詳細は、java.io.ServerSocket#reuseAddress プロパティーを参照してください。 |
disableStreamCache
|
false
|
Camel 2. 14: Jetty からの raw 入力ストリームがキャッシュされているかどうかを判断します(Camel はストリームをファイル、ストリームキャッシュ)キャッシュにストリームを読み取ります。デフォルトでは、Camel は Jetty 入力ストリームをキャッシュして複数回読み取りし、Camel がストリームからすべてのデータを取得できるようにします。ただし、このオプションをファイルや他の永続ストアに直接ストリーミングするなど、raw ストリームにアクセスする必要がある場合などに設定することができます。
trueDefaultRestletBinding は、要求入力ストリームをストリームキャッシュにコピーし、このオプションが 複数回ストリームの読み取りをサポートする場合はメッセージボディーに配置します。 false
|
メッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | タイプ | 説明 |
|---|---|---|
CamelContentType
|
文字列
|
アプリケーション/プロセッサーによって OUT メッセージに設定できるコンテンツタイプを指定します。値は、応答メッセージの content-type です。このヘッダーが設定されていない場合、content-type は OUT メッセージボディーのオブジェクトタイプに基づきます。Camel 2.3 以降では、Camel IN メッセージに Content-Type ヘッダーが指定されている場合、ヘッダーの値は Restlet リクエストメッセージのコンテンツタイプを決定します。nbsp;それ以外の場合は、デフォルトで application/x-www-form-urlencoded' になります。リリース 2.3 よりも前のバージョンでは、要求コンテンツタイプのデフォルトを変更することはできません。
|
CamelAcceptContentType
|
文字列
|
Camel 2.9.3 以降: 2.10.0: HTTP Accept リクエストヘッダー。 |
CamelHttpMethod
|
文字列
|
HTTP リクエストメソッド。これは IN メッセージヘッダーで設定されます。 |
CamelHttpQuery
|
文字列
|
リクエスト URI のクエリー文字列。restlet コンポーネントがリクエストを受信すると、DefaultRestletBinding によって IN メッセージに設定されます。
|
CamelHttpResponseCode
|
文字列 または 整数
|
応答コードは、アプリケーション/プロセッサーによって OUT メッセージに設定できます。値は、応答メッセージの応答コードです。このヘッダーが設定されていない場合、応答コードは restlet ランタイムエンジンによって設定されます。 |
CamelHttpUri
|
文字列
|
HTTP 要求 URI。これは IN メッセージヘッダーで設定されます。 |
CamelRestletLogin
|
文字列
|
Basic 認証のログイン名。これは、アプリケーションによって IN メッセージで設定され、Apache Camel による restlet リクエストヘッダーの前にフィルターリングされます。 |
CamelRestletPassword
|
文字列
|
Basic 認証のパスワード名。これは、アプリケーションによって IN メッセージで設定され、Apache Camel による restlet リクエストヘッダーの前にフィルターリングされます。 |
CamelRestletRequest
|
Request
|
Camel 2.8: すべてのリクエスト詳細を保持する org.restlet.Request オブジェクト。
|
CamelRestletResponse
|
応答
|
Camel 2.8: org.restlet.Response オブジェクト。これを使用して、Restlet から API を使用して応答を作成できます。以下の例を参照してください。
|
org.restlet.*
|
Apache Camel IN ヘッダーに伝播される Restlet メッセージの属性。 | |
cache-control
|
文字列 または リスト<CacheDirective>
|
Camel 2.11: ユーザーは、camel メッセージヘッダーから、String 値または List of CacheDirective of Restlet で設定できます。 |
content-type ヘッダーを設定するには、Content-Type を指定し、location には Location を指定します。
メッセージボディー リンクのコピーリンクがクリップボードにコピーされました!
認証のある Restlet エンドポイント リンクのコピーリンクがクリップボードにコピーされました!
POST リクエストをリッスンする restlet コンシューマーエンドポイントを開始します。プロセッサーは、リクエストボディーと id ヘッダーの値をエコーする応答を作成します。
restletRealm 設定は、レジストリーで Realm Map を検索するために使用されます。このオプションを指定すると、restlet コンシューマーは情報を使用してユーザーログインを認証します。認証された 要求のみがリソースにアクセスできます。この例では、レジストリーとして機能する Spring アプリケーションコンテキストを作成します。レルムマップの Bean ID は restletRealmRef と一致する必要があります。
<util:map id="realm"> <entry key="admin" value="foo" /> <entry key="bar" value="foo" /> </util:map>
<util:map id="realm">
<entry key="admin" value="foo" />
<entry key="bar" value="foo" />
</util:map>
direct エンドポイントを開始します(つまり、restlet コンシューマーエンドポイント)。
// Note: restletMethod and restletRealmRef are stripped
// from the query before a request is sent as they are
// only processed by Camel.
from("direct:start-auth").to("restlet:http://localhost:9080/securedOrders?restletMethod=post");
// Note: restletMethod and restletRealmRef are stripped
// from the query before a request is sent as they are
// only processed by Camel.
from("direct:start-auth").to("restlet:http://localhost:9080/securedOrders?restletMethod=post");
direct:start-auth エンドポイントにリクエストを送信します。
CamelRestletLogin(Apache Camel によって内部で使用される)CamelRestletPassword(Apache Camel によって内部で使用される)id(アプリケーションヘッダー)
org.apache.camel.restlet.auth.login および org.apache.camel.restlet.auth.password は Restlet ヘッダーとして伝播されません。
received [<order foo='1'/>] as an order id = 89531
received [<order foo='1'/>] as an order id = 89531
単一の restlet エンドポイントから複数のメソッドおよび URI テンプレート(2.0 以降)を提供 リンクのコピーリンクがクリップボードにコピーされました!
restletMethods オプションを使用して、複数の HTTP メソッドを提供する単一のルートを作成できます。このスニペットには、ヘッダーからリクエストメソッドを取得する方法も示されています。
restletUriPatterns オプションを使用して複数の URI テンプレートをサポートするエンドポイントを作成する方法を示しています。リクエスト URI は IN メッセージのヘッダーでも利用できます。URI パターンがエンドポイント URI で定義されている場合(このサンプルでは)、エンドポイントに定義された URI パターンと restletUriPatterns オプションの両方が尊重されます。
restletUriPatterns=#uriTemplates オプションは、Spring XML 設定で定義され た List<String > Bean を参照します。
<util:list id="uriTemplates">
<value>/users/{username}</value>
<value>/atom/collection/{id}/component/{cid}</value>
</util:list>
<util:list id="uriTemplates">
<value>/users/{username}</value>
<value>/atom/collection/{id}/component/{cid}</value>
</util:list>
Restlet API を使用した応答の設定 リンクのコピーリンクがクリップボードにコピーされました!
org.restlet.Response API を使用して応答を設定することができます。これにより、Restlet API に完全にアクセスでき、応答を詳細に制御できます。インライン化された Camel プロセッサー からの応答を生成する以下のルートスニペットを参照してください。
コンポーネントの最大スレッドの設定 リンクのコピーリンクがクリップボードにコピーされました!
<bean id="restlet" class="org.apache.camel.component.restlet.RestletComponent"> <property name="maxThreads" value="100"/> </bean>
<bean id="restlet" class="org.apache.camel.component.restlet.RestletComponent">
<property name="maxThreads" value="100"/>
</bean>
webapp 内の Restlet サーブレットの使用 リンクのコピーリンクがクリップボードにコピーされました!
"Request type : GET and ID : 1234"
"Request type : GET and ID : 1234"
<dependency>
<groupId>org.restlet.jee</groupId>
<artifactId>org.restlet.ext.spring</artifactId>
<version>${restlet-version}</version>
</dependency>
<dependency>
<groupId>org.restlet.jee</groupId>
<artifactId>org.restlet.ext.spring</artifactId>
<version>${restlet-version}</version>
</dependency>
<repository>
<id>maven-restlet</id>
<name>Public online Restlet repository</name>
<url>http://maven.restlet.org</url>
</repository>
<repository>
<id>maven-restlet</id>
<name>Public online Restlet repository</name>
<url>http://maven.restlet.org</url>
</repository>
第136章 RMI リンクのコピーリンクがクリップボードにコピーされました!
RMI コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
Remote オブジェクトのいずれかである必要があります。
pom.xml に以下の依存関係を追加する必要があります。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
rmi://rmi-regisitry-host:rmi-registry-port/registry-path[?options]
rmi://rmi-regisitry-host:rmi-registry-port/registry-path[?options]
rmi://localhost:1099/path/to/service
rmi://localhost:1099/path/to/service
?option=value&option=value&.. の形式で追加できます。
オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | デフォルト値 | 説明 |
|---|---|---|
メソッド
|
null
|
Apache Camel 1.3 では、呼び出すメソッドの名前を設定できます。 |
remoteInterfaces
|
null
|
XML DSL では、Camel 2.7 からこのオプションを使用できるようになり ました。コンマで区切られたインターフェイス名の一覧を指定できます。 |
使用 リンクのコピーリンクがクリップボードにコピーされました!
from("pojo:foo").to("rmi://localhost:1099/foo");
from("pojo:foo").to("rmi://localhost:1099/foo");
RmiEndpoint endpoint= (RmiEndpoint) endpoint("rmi://localhost:1099/bar");
endpoint.setRemoteInterfaces(ISay.class);
from(endpoint).to("pojo:bar");
RmiEndpoint endpoint= (RmiEndpoint) endpoint("rmi://localhost:1099/bar");
endpoint.setRemoteInterfaces(ISay.class);
from(endpoint).to("pojo:bar");
リモート インターフェイスを指定する必要があります。
<camel:route>
<from uri="rmi://localhost:37541/helloServiceBean?remoteInterfaces=org.apache.camel.example.osgi.HelloService"/>
<to uri="bean:helloServiceBean"/>
</camel:route>
<camel:route>
<from uri="rmi://localhost:37541/helloServiceBean?remoteInterfaces=org.apache.camel.example.osgi.HelloService"/>
<to uri="bean:helloServiceBean"/>
</camel:route>
第137章 Routebox リンクのコピーリンクがクリップボードにコピーされました!
Routebox コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
pom.xml に以下の依存関係を追加する必要があります。
Camel Routebox エンドポイントの要件 リンクのコピーリンクがクリップボードにコピーされました!
- ルート と の大規模なコレクション
- さまざまな方法で統合を必要とするエンドポイントテクノロジーのセットが関係します。
- 粒度の細かいルートや、統合フォーカスエリアを表す Routebox エンドポイントとして公開される内部または下位レベルのルートの集約コレクション。以下に例を示します。
Expand フォーカスエリア 粒度の細かいルートの例 部門中心 HR ルート、営業ルートなど サプライチェーンと B2B Focus ルート、フィルフィルメントルート、サードパーティーサービスなどの配送 テクノロジーの焦点 データベースルート、JMS ルート、スケジュール済みバッチルートなど - 粒度の細かいルート:単数で特定のビジネスや統合パターンを実行するルート。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
routebox:routeboxname[?options]
routebox:routeboxname[?options]
?option=value&option=value&.. の形式で追加できます。
オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | デフォルト値 | 説明 |
|---|---|---|
dispatchStrategy
|
null
|
インターフェイス org.apache.camel.component.routebox.strategy.RouteboxDispatchStrategyを実装するオブジェクト値と一致する Camel レジストリーのキーを表す文字列 |
dispatchMap
|
null
|
HashMap<String, String> タイプのオブジェクト値と一致する Camel レジストリーのキーを表す文字列。HashMap キーには、エクスチェンジヘッダー ROUTE_DISPATCH_KEY に設定された値に対して一致する文字列が含まれている必要があります。HashMap 値には、リクエストを転送する必要のある内部ルートコンシューマー URI が含まれる必要があります。 |
innerContext
|
自動作成
|
org.apache.camel.CamelContext 型のオブジェクト値と一致する Camel レジストリーのキーを表す文字列。ユーザーによって CamelContext が提供されていない場合、内部ルートのデプロイのために CamelContext が自動的に作成されます。 |
innerRegistry
|
null
|
Camel レジストリーのキーを表す文字列は、インターフェイス org.apache.camel.spi.Registry を実装するオブジェクト値と一致します。エンドポイントを作成するために内部ルートで使用されるレジストリー値を使用する場合は、innerRegistry パラメーターを指定する必要があります。 |
routeBuilders
|
空のリスト
|
List<org.apache.camel.builder.RouteBuilder> タイプのオブジェクト値に一致する Camel レジストリーのキーを表す文字列。ユーザーが内部ルートに先行する innerContexts を提供しない場合、routeBuilders オプションは内部ルートを含む RouteBuilder の空でないリストとして指定する必要があります。 |
innerProtocol
|
Direct
|
Routebox コンポーネントによって内部で使用される Protocol。Direct または SEDA にすることができます。Routebox コンポーネントは、現在 JVM にバインドされるプロトコルを提供します。 |
sendToConsumer
|
true
|
Producer エンドポイントがリクエストを外部 routebox コンシューマーに送信するかどうかを指定します。設定が false の場合、Producer は埋め込みの内部コンテキストを作成し、内部で要求を処理します。 |
forkContext
|
true
|
Routebox コンポーネントによって内部で使用される Protocol。Direct または SEDA にすることができます。Routebox コンポーネントは、現在 JVM にバインドされるプロトコルを提供します。 |
threads
|
20
|
リクエストを受信するために routebox が使用するスレッドの数。innerProtocol SEDA のみに適用可能な設定。 |
queueSize
|
無制限
|
要求を受信する固定サイズキューを作成します。innerProtocol SEDA のみに適用可能な設定。 |
routebox へのメッセージの送受信 リンクのコピーリンクがクリップボードにコピーされました!
ステップ 1: レジストリーへの内部ルート詳細の読み込み リンクのコピーリンクがクリップボードにコピーされました!
ステップ 2: ディスパッチマップの代わりにディスパッチストラテジーを使用するオプション リンクのコピーリンクがクリップボードにコピーされました!
ステップ 2: routebox コンシューマーの起動 リンクのコピーリンクがクリップボードにコピーされました!
ステップ 3: routebox プロデューサーの使用 リンクのコピーリンクがクリップボードにコピーされました!
第138章 RSS リンクのコピーリンクがクリップボードにコピーされました!
RSS コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
Camel on EAP デプロイメント リンクのコピーリンクがクリップボードにコピーされました!
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
rss:rssUri
rss:rssUri
rssUri は、ポーリングする RSS フィードへの URI です。
?option=value&option=value&.. の形式で追加できます。
オプション リンクのコピーリンクがクリップボードにコピーされました!
| プロパティー | デフォルト | 説明 |
|---|---|---|
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
|
splitEntries が true の場合、エントリーを更新された日付でソートするかどうかを指定します。
|
consumer.delay
|
60000
|
各ポーリングの遅延(ミリ秒単位)。 |
consumer.initialDelay
|
1000
|
ポーリングが開始するまでの時間(ミリ秒単位)。 |
consumer.userFixedDelay
|
false
|
プール間の固定遅延を使用するには、true に設定します。それ以外の場合、固定レートが使用されます。詳細は、JDK の ScheduledExecutorService を参照してください。
|
username
|
Camel 2.16: HTTP フィードからポーリングする場合の基本認証用。 | |
password
|
Camel 2.16: HTTP フィードからポーリングする場合の基本認証用。 |
データ型の交換 リンクのコピーリンクがクリップボードにコピーされました!
SyndFeed を使用してエクスチェンジの In ボディーを初期化します。splitEntries フラグの値に応じて、Apache Camel は SyndEntry が 1 つある SyndFeed または SyndEntry オブジェクトの java.util.List のいずれかを返します。
| オプション | 値 | 動作 |
|---|---|---|
splitEntries
|
true
|
現在のフィードからの 1 つのエントリーがエクスチェンジに設定されます。 |
splitEntries
|
false
|
現在のフィードのエントリー一覧全体がエクスチェンジに設定されます。 |
メッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| ヘッダー | 説明 |
|---|---|
CamelRssFeed
|
Apache Camel 2.0: SyndFeed オブジェクト全体。
|
RSS Dataformat リンクのコピーリンクがクリップボードにコピーされました!
- marshal = ROME
SyndFeedから XMLStringへ - unmarshal = XML
Stringから ROMESyndFeed
from("rss:file:src/test/data/rss20.xml?splitEntries=false&consumer.delay=1000").marshal().rss().to("mock:marshal");
from("rss:file:src/test/data/rss20.xml?splitEntries=false&consumer.delay=1000").marshal().rss().to("mock:marshal");
// 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");
// 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");
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");を実行できます。
エントリーのフィルターリング リンクのコピーリンクがクリップボードにコピーされました!
// 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");
// 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");
その他の参考資料 リンクのコピーリンクがクリップボードにコピーされました!
第139章 Salesforce リンクのコピーリンクがクリップボードにコピーされました!
Salesforce コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
camel-salesforce コンポーネントを設定するには、Security Guide の Configuring Transport Security for Camel Components の章を参照してください。
pom.xml に追加する必要があります。
Camel on EAP デプロイメント リンクのコピーリンクがクリップボードにコピーされました!
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
salesforce:topic?options
salesforce:topic?options
?option=value&option=value&.. の形式で追加できます。
サポートされる Salesforce API リンクのコピーリンクがクリップボードにコピーされました!
Rest API リンクのコピーリンクがクリップボードにコピーされました!
getVersions- サポートされる Salesforce REST API バージョンの取得getResources- 利用可能な Salesforce REST リソースエンドポイントを取得します。getGlobalObjects: 利用可能なすべての SObject タイプのメタデータを取得します。getBasicInfo: 特定の SObject タイプの基本メタデータを取得します。getDescription: 特定の SObject タイプの包括的なメタデータを取得します。getSObject- Salesforce ID を使用して SObject を取得します。createSObject: SObject を作成しますupdateSObject: Id を使用して SObject を更新します。deleteSObject: Id を使用して SObject を削除します。getSObjectWithId: 外部(ユーザー定義)id フィールドを使用して SObject を取得します。upsertSObject: 外部 ID を使用して SObject を更新または挿入します。deleteSObjectWithId: 外部 ID を使用して SObject を削除します。query- Salesforce SOQL クエリーを実行します。queryMore: クエリー API から返された結果リンクを使用して、より多くの結果(大量の結果の場合)を取得します。search- Salesforce SOSL クエリーを実行します。
CreateSObjectResult、または新規オブジェクトの作成時のエラーの一覧のいずれかです。
...to("salesforce:upsertSObject?sObjectIdName=Name")...
...to("salesforce:upsertSObject?sObjectIdName=Name")...
REST Bulk API リンクのコピーリンクがクリップボードにコピーされました!
createJob- Salesforce 一括ジョブを作成します。getJob- Salesforce ID を使用してジョブを取得します。closeJob: ジョブを閉じるabortJob: ジョブを中止します。createBatch- 一括ジョブ内でバッチを送信します。getBatch- Id を使用してバッチを取得します。getAllBatches- 一括ジョブ ID のすべてのバッチを取得します。getRequest- バッチのリクエストデータ(XML/CSV)を取得します。getResults: バッチの完了時に結果を取得します。createBatchQuery: SOQL クエリーから Batch を作成します。getQueryResultIds- バッチクエリーの結果 ID の一覧を取得します。getQueryResult: 結果 ID の結果を取得します。
InputStream (通常は UTF-8 CSV または XML コンテンツ)および Job および contentType のヘッダーフィールド jobId に変換できるボディーが含まれている必要があります。put メッセージのボディーには、成功時に BatchInfo が含まれたり、SalesforceException をエラーに出力したりします。
...to("salesforce:createBatchJob")..
...to("salesforce:createBatchJob")..
REST Streaming API リンクのコピーリンクがクリップボードにコピーされました!
from("salesforce:CamelTestTopic?notifyForFields=ALL¬ifyForOperations=ALL&sObjectName=Merchandise__c&updateTopic=true&sObjectQuery=SELECT Id, Name FROM Merchandise__c")...
from("salesforce:CamelTestTopic?notifyForFields=ALL¬ifyForOperations=ALL&sObjectName=Merchandise__c&updateTopic=true&sObjectQuery=SELECT Id, Name FROM Merchandise__c")...
from("salesforce:CamelTestTopic&sObjectName=Merchandise__c")...
from("salesforce:CamelTestTopic&sObjectName=Merchandise__c")...
ContentWorkspace へのドキュメントのアップロード リンクのコピーリンクがクリップボードにコピーされました!
from("file:///home/camel/library")
.to(new ContentProcessor()) // convert bytes from the file into a ContentVersion SObject
// for the salesforce component
.to("salesforce:createSObject");
from("file:///home/camel/library")
.to(new ContentProcessor()) // convert bytes from the file into a ContentVersion SObject
// for the salesforce component
.to("salesforce:createSObject");
Camel Salesforce Maven プラグイン リンクのコピーリンクがクリップボードにコピーされました!
使用方法 リンクのコピーリンクがクリップボードにコピーされました!
| オプション | 説明 |
|---|---|
clientId
|
Salesforce client Id for Remote API access. |
clientSecret
|
リモート API アクセス用の Salesforce クライアントシークレット。 |
userName
|
Salesforce アカウントのユーザー名。 |
password
|
Salesforce アカウントパスワード(シークレットトークンを含む) |
version
|
Salesforce Rest API バージョン。デフォルトは 34.0 です。 |
outputDirectory
|
生成された DTO を配置するディレクトリー。デフォルトは ${project.build.directory}/generated-sources/camel-salesforce です。
|
includes
|
追加する SObject タイプのリスト。 |
excludes
|
除外する SObject タイプのリスト。 |
includePattern
|
含める SObject タイプの Java RegEx。 |
excludePattern
|
除外する SObject タイプの Java RegEx。 |
packageName
|
生成された DTO の Java パッケージ名。デフォルトは org.apache.camel.salesforce.dto です。
|
mvn camel-salesforce:generate -DclientId=<clientid> -DclientSecret=<clientsecret> -DuserName=<username> -Dpassword=<password>
mvn camel-salesforce:generate -DclientId=<clientid> -DclientSecret=<clientsecret> -DuserName=<username> -Dpassword=<password>
第140章 SAP コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
概要
140.1. 概要 リンクのコピーリンクがクリップボードにコピーされました!
Dependencies リンクのコピーリンクがクリップボードにコピーされました!
pom.xml ファイルに以下の依存関係を追加する必要があります。
<dependency>
<groupId>org.fusesource</groupId>
<artifactId>camel-sap</artifactId>
<version>x.x.x</version>
<dependency>
<dependency>
<groupId>org.fusesource</groupId>
<artifactId>camel-sap</artifactId>
<version>x.x.x</version>
<dependency>
SAP コンポーネントの追加プラットフォームの制限 リンクのコピーリンクがクリップボードにコピーされました!
SAP JCo および SAP IDoc ライブラリー リンクのコピーリンクがクリップボードにコピーされました!
lib/ ディレクトリーにインストールされていることです。ターゲットのオペレーティングシステムに適した SAP ライブラリーのセットを SAP Service Marketplace からダウンロードするようにしてください。
| SAP コンポーネント | Linux および UNIX | Windows |
|---|---|---|
|
SAP JCo 3
| sapjco3.jar
libsapjco3.so
| sapjco3.jar
sapjco3.dll
|
|
SAP IDoc
| sapidoc3.jar
| sapidoc3.jar
|
Fuse OSGi コンテナーへのデプロイ(Fabric 以外) リンクのコピーリンクがクリップボードにコピーされました!
- SAP JCo ライブラリーと SAP IDoc ライブラリーを SAP Service Marketplace からダウンロードし、ご使用のオペレーティングシステムのライブラリーの適切なバージョンを選択してください。http://service.sap.com/public/connectors注記これらのライブラリーをダウンロードして使用するには、SAP Service Marketplace アカウント が必要です。
sapjco3.jar、libsapjco3.so(Windows ではsapjco3.dll)、およびsapidoc3.jarライブラリーファイルを JBoss Fuse インストールのディレクトリーにコピーします。lib/- テキストエディターで、設定プロパティーファイル
etc/config.propertiesとカスタムプロパティーファイルetc/custom.propertiesの両方を開きます。etc/config.propertiesファイルで、org.osgi.framework.system.packages.extraプロパティーを検索し、完全なプロパティー設定をコピーします(この設定は複数の行に拡張され、バックスラッシュ文字\を使用して行継続行を示します)。ここで、この設定をetc/custom.propertiesファイルに貼り付けます。SAP ライブラリーをサポートするために必要なパッケージを追加できるようになりました。etc/custom.propertiesファイルで、以下のようにorg.osgi.framework.system.packages.extra設定に必要なパッケージを追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow ヒント新しいエントリーの前の各行の最後にコンマとバックスラッシュ, \を含めることを忘れないでください。これにより、リストが適切に継続されます。 - これらの変更を有効にするには、コンテナーを再起動する必要があります。
camel-sap機能をコンテナーにインストールする必要があります。Karaf コンソールで、以下のコマンドを入力します。JBossFuse:karaf@root> features:install camel-sap
JBossFuse:karaf@root> features:install camel-sapCopy to Clipboard Copied! Toggle word wrap Toggle overflow
Fuse Fabric でのデプロイ リンクのコピーリンクがクリップボードにコピーされました!
lib/ ディレクトリーにインストールされている必要があります。つまり、sapjco3.jar、libsapjco3.so (Windows では sapjco3.dll )、および NORMAL です。sapidoc3.jar
lib ディレクトリーに SAP ライブラリーをインストールすることはポイントはありません。正しいアプローチは、SAP JCo ライブラリーおよび SAP IDoc ライブラリーを実行する任意のホストにダウンロードおよびインストールできる特別なプロファイルを定義することです。
- JCo ライブラリーと IDoc ライブラリー-
sapjco3.jar、libsapjco3.so(Windows ではsapjco3.dll)、およびsapidoc3.jar- をネットワークにアクセスできる場所にデプロイします。たとえば、Web サーバーにライブラリーをインストールして、JCo ライブラリーおよび IDoc ライブラリーを HTTP URLhttp://mywebserver/sapjco3.jar、http://mywebserver/libsapjco3.so、およびhttp://mywebserver/sapidoc3.jarからダウンロードできます。 - 以下のコンソールコマンドを入力して、新しいプロファイル
camel-sap-profileを作成します。JBossFuse:karaf@root> profile-create camel-sap-profile
JBossFuse:karaf@root> profile-create camel-sap-profileCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 以下のコンソールコマンドを入力して、
camel-sap-profileプロファイルのエージェントプロパティーを編集します。JBossFuse:karaf@root> profile-edit camel-sap-profile
JBossFuse:karaf@root> profile-edit camel-sap-profileCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 組み込みプロファイルエディターが起動します。この組み込みテキストエディターを使用して、以下の内容をエージェントプロパティーに追加します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のようにプロパティー設定をカスタマイズします。lib.sapjco3.jar- HTTP URL を Web サーバー上の
sapjco3.jarファイルの実際の場所にカスタマイズします。 lib.sapjco3.so- HTTP URL を Web サーバーの
libsapjco3.soファイル(またはsapjco3.dll)の実際の場所にカスタマイズします。 lib.sapidoc3.jar- HTTP URL を Web サーバー上の
sapidoc3.jarファイルの実際の場所にカスタマイズします。 config.org.osgi.framework.system.packages.extra- JBoss Fuse インストールのコンテナー設定プロパティーファイル
etc/config.propertiesを開き、org.osgi.framework.system.packages.extraプロパティーの設定を見つけます。その設定のパッケージ一覧をコピーし、行を置き換えてプロファイルのエージェントプロパティーに貼り付けます。... Packages from etc/config.properties file ...\
... Packages from etc/config.properties file ...\Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記config.org.osgi.framework.system.packages.extraのconfig.*接頭辞は、プロファイルにコンテナー設定プロパティーを設定する Fabric を示します。注記バックスラッシュ\は行継続文字(UNIX 規則)で、直後に改行文字を追加する必要があります。
完了したら、Ctrl-S と入力してプロパティーを保存します。 camel-sap-profileプロファイルを、SAP コンポーネントを実行するすべての Fabric コンテナーにデプロイできます。たとえば、camel-sap-profileprofile をsap-instanceコンテナーにデプロイするには、以下を実行します。JBossFuse:karaf@root> container-add-profile sap-instance came-sap-profile
JBossFuse:karaf@root> container-add-profile sap-instance came-sap-profileCopy to Clipboard Copied! Toggle word wrap Toggle overflow
JBoss EAP コンテナーへのデプロイ リンクのコピーリンクがクリップボードにコピーされました!
- SAP JCo ライブラリーと SAP IDoc ライブラリーを SAP Service Marketplace からダウンロードし、ご使用のオペレーティングシステムのライブラリーの適切なバージョンを選択してください。http://service.sap.com/public/connectors注記これらのライブラリーをダウンロードして使用するには、SAP Service Marketplace アカウント が必要です。
- JCo ライブラリーファイルと IDoc ライブラリーファイルを JBoss EAP インストールの適切なサブディレクトリーにコピーします。たとえば、ホストプラットフォームが 64 ビットの Linux (
linux-x86_64)の場合は、以下のようにライブラリーファイルをインストールします。cp sapjco3.jar sapidoc3.jar $JBOSS_HOME/modules/system/layers/fuse/com/sap/conn/jco/main/ mkdir -p $JBOSS_HOME/modules/system/layers/fuse/com/sap/conn/jco/main/lib/linux-x86_64 cp libsapjco3.so $JBOSS_HOME/modules/system/layers/fuse/com/sap/conn/jco/main/lib/linux-x86_64/
cp sapjco3.jar sapidoc3.jar $JBOSS_HOME/modules/system/layers/fuse/com/sap/conn/jco/main/ mkdir -p $JBOSS_HOME/modules/system/layers/fuse/com/sap/conn/jco/main/lib/linux-x86_64 cp libsapjco3.so $JBOSS_HOME/modules/system/layers/fuse/com/sap/conn/jco/main/lib/linux-x86_64/Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要ネイティブライブラリー(例:libsapjco3.so)を JBoss EAP インストールにインストールする場合は、library サブディレクトリーに名前を付けるための標準化された規則があります。これに従う必要があります。64 ビットの Linux の場合、サブディレクトリーはlinux-x86_64になります。他のプラットフォームについては、を参照してください https://docs.jboss.org/author/display/MODULES/Native+Libraries。 - SwitchYard サブシステム設定の
org.switchyard.component.camel.sapモジュールのコメントを解除します。たとえば、JBoss EAP スタンドアロンモードで SAP コンポーネントを有効にするには、$JBOSS_HOME/standalone/configuration/standalone.xmlファイルを編集し、以下の行を検索してコメント解除します。<!-- Uncomment this module to enable camel-sap binding <module identifier="org.switchyard.component.camel.sap" implClass="org.switchyard.component.camel.sap.deploy.CamelSapComponent"/> -->
<!-- Uncomment this module to enable camel-sap binding <module identifier="org.switchyard.component.camel.sap" implClass="org.switchyard.component.camel.sap.deploy.CamelSapComponent"/> -->Copy to Clipboard Copied! Toggle word wrap Toggle overflow
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
sap-srfc-destination:destinationName:rfcName sap-trfc-destination:destinationName:rfcName sap-qrfc-destination:destinationName:queueName:rfcName sap-srfc-server:serverName:rfcName[?options] sap-trfc-server:serverName:rfcName[?options]
sap-srfc-destination:destinationName:rfcName
sap-trfc-destination:destinationName:rfcName
sap-qrfc-destination:destinationName:queueName:rfcName
sap-srfc-server:serverName:rfcName[?options]
sap-trfc-server:serverName:rfcName[?options]
sap-idoc-destination:destinationName:idocType[:idocTypeExtension[:systemRelease[:applicationRelease]]] sap-idoclist-destination:destinationName:idocType[:idocTypeExtension[:systemRelease[:applicationRelease]]] sap-qidoc-destination:destinationName:queueName:idocType[:idocTypeExtension[:systemRelease[:applicationRelease]]] sap-qidoclist-destination:destinationName:queueName:idocType[:idocTypeExtension[:systemRelease[:applicationRelease]]] sap-idoclist-server:serverName:idocType[:idocTypeExtension[:systemRelease[:applicationRelease]]][?options]
sap-idoc-destination:destinationName:idocType[:idocTypeExtension[:systemRelease[:applicationRelease]]]
sap-idoclist-destination:destinationName:idocType[:idocTypeExtension[:systemRelease[:applicationRelease]]]
sap-qidoc-destination:destinationName:queueName:idocType[:idocTypeExtension[:systemRelease[:applicationRelease]]]
sap-qidoclist-destination:destinationName:queueName:idocType[:idocTypeExtension[:systemRelease[:applicationRelease]]]
sap-idoclist-server:serverName:idocType[:idocTypeExtension[:systemRelease[:applicationRelease]]][?options]
sap-endpointKind-destination で始まる URI 形式は、宛先エンドポイント(つまり Camel プロデューサーエンドポイント)を定義するために使用され、destinationName は SAP インスタンスへの特定のアウトバウンド接続の名前です。アウトバウンド接続には、「宛先設定」 で説明されているように、コンポーネントレベルで名前が付けられ、設定されます。
sap-endpointKind-server で始まる URI 形式は、サーバーエンドポイント(つまり Camel コンシューマーエンドポイント)を定義するために使用され、serverName は SAP インスタンスからの特定の受信接続の名前です。「サーバー設定」 で説明されているように、受信接続にはコンポーネントレベルで名前が付けられ、設定されます。
rfcName- (必須) 宛先エンドポイント URI では、は接続された SAP インスタンスのエンドポイントによって呼び出される RFC の名前です。サーバーエンドポイント URI では、は接続された SAP インスタンスから呼び出されるときにエンドポイントによって処理される RFC の名前です。
queueName- このエンドポイントが SAP 要求を送信するキューを指定します。
idocType- (必須) このエンドポイントによって生成された IDoc の Basic IDoc タイプを指定します。
idocTypeExtension- このエンドポイントによって生成された IDoc の IDoc の IDoc がある場合は、それを指定します。
systemRelease- このエンドポイントによって生成された IDoc の関連する SAP Basis Release を指定します(ある場合)。
applicationRelease- 関連するアプリケーションリリースがある場合は、このエンドポイントによって生成された IDoc のように指定します。
queueName- このエンドポイントが SAP 要求を送信するキューを指定します。
RFC 宛先エンドポイントのオプション リンクのコピーリンクがクリップボードにコピーされました!
sap-srfc-destination、sap-trfc-destination、および sap-qrfc-destination)は、以下の URI オプションをサポートします。
| 名前 | デフォルト | 説明 |
|---|---|---|
stateful
|
false
|
true の場合、このエンドポイントが SAP ステートフルセッションを開始することを指定します。
|
transacted
|
false
|
true の場合、このエンドポイントが SAP トランザクションを開始することを指定します。
|
RFC サーバーエンドポイントのオプション リンクのコピーリンクがクリップボードにコピーされました!
sap-srfc-server および sap-trfc-server)は以下の URI オプションをサポートします。
| 名前 | デフォルト | 説明 |
|---|---|---|
stateful
|
false
|
true の場合、このエンドポイントが SAP ステートフルセッションを開始することを指定します。
|
propagateExceptions
|
false
|
(SAP-trfc-server エンドポイントのみ) true の場合、このエンドポイントがエクスチェンジの例外ハンドラーではなく、SAP の呼び出し元に再度伝播することを指定します。
|
IDoc List Server エンドポイントのオプション リンクのコピーリンクがクリップボードにコピーされました!
sap-idoclist-server)は、以下の URI オプションをサポートします。
| 名前 | デフォルト | 説明 |
|---|---|---|
stateful
|
false
|
true の場合、このエンドポイントが SAP ステートフルセッションを開始することを指定します。
|
propagateExceptions
|
false
|
true の場合、このエンドポイントがエクスチェンジの例外ハンドラーではなく、SAP の呼び出し元に例外を伝播することを指定します。
|
RFC および IDoc エンドポイントの概要 リンクのコピーリンクがクリップボードにコピーされました!
sap-srfc-destination- JBoss Fuse SAP Synchronous Remote Function Call Destination Camel コンポーネント。このエンドポイントは、Camel ルートが SAP システムに対するリクエストと応答の同期配信を必要とする場合に使用する必要があります。注記このコンポーネントによって使用される sRFC プロトコルは、ベストエフォート で SAP システムとの間で要求および制限を提供します。要求の送信中に通信エラーが発生した場合、受信側の SAP システムのリモート関数呼び出しの完了ステータスは未確定のまま になります。
sap-trfc-destination- JBoss Fuse SAP Transactional Remote Function Call Destination Camel コンポーネント。このエンドポイントは、リクエストを受信 SAP システムに 最大 1 回配信する必要がある 場合に使用する必要があります。そのために、コンポーネントはトランザクション ID
tidを生成します。このトランザクション ID は、ルートの交換でコンポーネントを介して送信されるすべての要求を処理します。受信側の SAP システムは、tidに要求を配信する前に記録します。SAP システムが同じtidで要求を再度受け取った場合は、リクエストを配信しません。そのため、このコンポーネントのエンドポイント経由で要求を送信する際にルートが通信エラーに遭遇すると、リクエストが配信されて 1 回のみ実行されるのと同じエクスチェンジ内で要求の送信を再試行できます。注記このコンポーネントによって使用される tRFC プロトコルは非同期であり、応答を返しません。そのため、このコンポーネントのエンドポイントは応答メッセージを返しません。注記このコンポーネントは、エンドポイント経由の一連の要求の順序を保証しません。これらの要求の配信および実行順序は、通信エラーおよび要求の再送信により受信側の SAP システムで異なる場合があります。Guaranteed Delivery order については、JBoss Fuse SAP Queued Remote Function Call Destination Camel component を参照してください。 sap-qrfc-destination- JBoss Fuse SAP Queued Remote Function Call Destination Camel コンポーネント。このコンポーネントは、エンドポイント経由でリクエストの配信を 順番に保証することで、JBoss Fuse Transactional Remote Function Call Destination camel コンポーネントの機能を拡張します。このエンドポイントは、一連の要求が相互に依存し、受信 SAP システムに 最大 1 回、かつ 順番に配信される必要がある 場合に使用する必要があり ます。コンポーネントは、JBoss Fuse SAP Transactional Remote Function Call Destination Camel コンポーネントと同じメカニズムを使用して配信の保証を 最大 1 度 実行します。順序の保証は、SAP システムによって受信された順序で受信された キュー に 要求をシリアライズすることで実現されます。インバウンドキューは、SAP 内の QIN スケジューラー によって処理されます。インバウンドキューが アクティブになる と、QIN スケジューラーはキュー要求を順番に実行します。注記このコンポーネントによって使用される qRFC プロトコルは非同期であり、応答を返しません。そのため、このコンポーネントのエンドポイントは応答メッセージを返しません。
sap-srfc-server- JBoss Fuse SAP Synchronous Remote Function Call Server Camel コンポーネント。このコンポーネントとそのエンドポイントは、Camel ルートが SAP システムとの間でリクエストと応答を同期的に処理する必要がある場合は使用する必要があります。
sap-trfc-server- JBoss Fuse SAP Transactional Remote Function Call Server Camel コンポーネント。このエンドポイントは、送信している SAP システムが要求を Camel ルートに 最大 1 度 配信する必要がある場合に使用する必要があります。これを実現するため、送信した SAP システムはトランザクション ID
tidを生成します。これは、コンポーネントのエンドポイントに送信するすべての要求に対応します。送信元の SAP システムは、tidに関連する一連のリクエストを送信する前に、tidが指定の を受信しているかどうかを最初にチェックします。コンポーネントは、受信したtidの一覧を確認し、そのリストにない場合は送信済みtidを記録し、tidがすでに記録されたかどうかを示します。その後、tidが記録されていない場合、送信している SAP システムは一連のリクエストのみを送信します。これにより、送信した SAP システムは一連のリクエストを Camel ルートに確実に送信できます。 sap-idoc-destination- JBoss Fuse SAP IDoc Destination Camel コンポーネント。このエンドポイントは、Camel ルートが Intermediate Documents (IDoc)のリストを SAP システムに送信するために必要な場合に使用する必要があります。
sap-idoclist-destination- JBoss Fuse SAP IDoc List Destination Camel コンポーネント。このエンドポイントは、Camel ルートが Intermediate ドキュメント(IDoc)リストのリストを SAP システムに送信するために必要な場合に使用する必要があります。
sap-qidoc-destination- JBoss Fuse SAP Queued IDoc Destination Camel コンポーネント。このコンポーネントとそのエンドポイントは、Camel ルートが Intermediate ドキュメント(IDoc)のリストを SAP システムに順番に送信する必要がある場合に使用する必要があります。
sap-qidoclist-destination- JBoss Fuse SAP Queued IDoc List Destination Camel component.このコンポーネントとそのエンドポイントは、Camel ルートが Intermediate ドキュメント(IDoc)リストのリストを SAP システムに順番に送信するために必要です。
sap-idoclist-server- JBoss Fuse SAP IDoc List Server Camel コンポーネント。このエンドポイントは、送信している SAP システムで中間ドキュメントリストの Camel ルートへの配信が必要な場合に使用してください。このコンポーネントは、'sap-trfc-server-standalone' クイックスタートで説明されているように、tRFC プロトコルを使用して SAP と通信します。
SAP RFC 宛先エンドポイント リンクのコピーリンクがクリップボードにコピーされました!
SAP RFC サーバーエンドポイント リンクのコピーリンクがクリップボードにコピーされました!
SAP IDoc および IDoc リスト宛先エンドポイント リンクのコピーリンクがクリップボードにコピーされました!
SAP IDoc list server endpoint リンクのコピーリンクがクリップボードにコピーされました!
メタデータリポジトリー リンクのコピーリンクがクリップボードにコピーされました!
- 関数モジュールに関するインターフェイスの説明
- このメタデータは JCo および ABAP ランタイムによって使用され、RFC 呼び出しをチェックして、これらの呼び出しをディスパッチする前に通信パートナー間のデータタイプセーフ転送を確認します。リポジトリーにはリポジトリーデータが入力されます。リポジトリーデータは名前付き関数テンプレートのマップです。関数テンプレートには、すべてのパラメーターと関数モジュールとの間で渡される入力情報を記述するメタデータが含まれ、記述する関数モジュールの一意の名前があります。
- IDoc タイプの説明
- このメタデータは IDoc ランタイムにより使用され、IDoc ドキュメントが通信パートナーに送信される前に正しくフォーマットされていることを確認します。基本的な IDoc タイプは、名前、許可されたセグメントの一覧、セグメント間の階層関係の説明で設定されます。セグメントに追加の制約を課すことができます。セグメントは必須または任意にすることができます。また、各セグメントの最小/最大範囲を指定できます(そのセグメントの許可される繰り返し回数を定義します)。
140.2. 設定 リンクのコピーリンクがクリップボードにコピーされました!
概要
SapConnectionConfiguration で設定され、自動的に SAP コンポーネントに注入されます(Blueprint XML 設定または Spring XML 設定ファイルのコンテキスト内)。リポジトリーデータストア は、関連する SAP コンポーネントに直接設定する必要があります。
140.2.1. 設定の概要 リンクのコピーリンクがクリップボードにコピーされました!
概要 リンクのコピーリンクがクリップボードにコピーされました!
destinationDataStore は、宛先名によってキーされる宛先データである serverDataStore を、サーバー名が鍵するサーバーデータを保存し、プロパティー repositoryDataStore はリポジトリー名で鍵されたリポジトリーデータを保存します。これらの設定は初期化中にコンポーネントに渡す必要があります。
例 リンクのコピーリンクがクリップボードにコピーされました!
sap-configuration Bean (タイプ SapConnectionConfigurationの)は、この XML ファイルで使用されるすべての SAP コンポーネントに自動的に挿入されます。
140.2.2. 宛先設定 リンクのコピーリンクがクリップボードにコピーされました!
概要 リンクのコピーリンクがクリップボードにコピーされました!
destinationDataStore プロパティーで維持されます。このマップの各エントリーは、SAP インスタンスへの個別のアウトバウンド接続を設定します。各エントリーのキーはアウトバウンド接続の名前であり、URI 形式セクション で説明されているように、宛先エンドポイント URI の destinationName コンポーネントで使用されます。
org.fusesource.camel.component.sap.model.rfc.impl.DestinationDataImpl です。
宛先設定のサンプル リンクのコピーリンクがクリップボードにコピーされました!
quickstartDest の名前でサンプル宛先を設定する方法を示しています。
quickstartDest 宛先で BAPI_FLCUST_GETLIST リモート関数呼び出しを呼び出すことができます。
sap-srfc-destination:quickstartDest:BAPI_FLCUST_GETLIST
sap-srfc-destination:quickstartDest:BAPI_FLCUST_GETLIST
tRFC および qRFC 宛先のインターセプター リンクのコピーリンクがクリップボードにコピーされました!
CurrentProcessorDefinitionInterceptStrategy オブジェクトのインスタンス化を示しています。このオブジェクトは、Camel ランタイムにインターセプターをインストールします。これにより、Camel SAP コンポーネントは RFC トランザクションの処理中に Camel ルート内の位置を追跡できます。詳細は、「トランザクション RFC 宛先エンドポイント」 を参照してください。
sap-trfc-destination や sap-qrfc-destinationなど)で重要であり、アウトバウンドトランザクション RFC 通信を適切に管理するために Camel ランタイムにインストールする必要があります。Destination RFC Transaction Handlers は、実行時にストラテジーが見つからない場合に Camel ログに警告を発行します。この場合、送信トランザクション RFC 通信を適切に管理するために Camel ランタイムを再プロビジョニングし、再起動する必要があります。
Logon および認証オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | デフォルト値 | 説明 |
|---|---|---|
client
|
SAP クライアント、必須の logon パラメーター | |
user
|
Logon user、パスワードベースの認証用の logon パラメーター | |
aliasUser
|
ログオンユーザーエイリアス(ログオンユーザーの代わりに使用できる) | |
userId
|
ABAP AS へのログインに使用されるユーザー ID。宛先設定が認証に SSO/assertion チケット、証明書、現在のユーザー、または SNC 環境を使用する場合、JCo ランタイムによって使用されます。ユーザー ID もユーザーエイリアスも設定されていない場合は、ユーザー ID が必須です。この ID は SAP バックエンドに送信されず、JCo ランタイムによってローカルで使用されます。 | |
passwd
|
Logon password、パスワードベース認証用の logon パラメーター | |
lang
|
Logon 言語(定義されていない場合は、デフォルトのユーザー言語が使用されます) | |
mysapsso2
|
指定された SAP Cookie Version 2 を SSO ベースの認証のログオンチケットとして使用します。 | |
x509cert
|
証明書ベースの認証には、指定された X509 証明書を使用します。 | |
lcheck
|
最初の呼び出し(有効化)まで認証を延期します。特別なケースでのみ使用されます。 | |
useSapGui
|
表示可能、非表示、または SAP GUI は使用しないでください。 | |
codePage
|
logon パラメーターを変換するために使用される codepage を定義する追加の logon パラメーター。特別なケースでのみ使用 | |
getsso2
|
ログオン後に SSO チケットの順序。取得したチケットが宛先属性で利用可能になります。 | |
denyInitialPassword
|
1 に設定すると、初期パスワードを使用すると例外が発生します(デフォルトは 0)。
|
接続オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | デフォルト値 | 説明 |
|---|---|---|
saprouter
|
SAP Router の背後にあるシステムに接続するための SAP Router 文字列。SAP Router 文字列には、SAP ルーターのチェーンとそのポート番号が含まれ、以下の形式があります。 (/H/<host>[/S/<port>])+
|
|
sysnr
|
SAP ABAP アプリケーションサーバーのシステム番号。直接接続に必要です。 | |
ashost
|
SAP ABAP アプリケーションサーバー(直接接続に必須) | |
mshost
|
SAP メッセージサーバー(ロードバランシング接続の必須プロパティー) | |
msserv
|
SAP メッセージサーバーポート、ロードバランシング接続の任意のプロパティー。サービス名 sapmsXXX を解決するには、etc/services のルックアップをオペレーティングシステムのネットワーク層で実行します。シンボリックサービス名の代わりにポート番号を使用する場合は、ルックアップは実行されず、追加のエントリーは必要ありません。
|
|
gwhost
|
アプリケーションサーバーへの接続を確立するために使用する具体的なゲートウェイを指定できます。指定しない場合は、アプリケーションサーバーのゲートウェイが使用されます。 | |
gwserv
|
gwhost を使用する場合は、設定する必要があります。そのゲートウェイで使用されるポートを指定できます。指定されていない場合は、アプリケーションサーバーのゲートウェイのポートが使用されます。サービス名 sapgwXXX を解決するには、etc/services のルックアップをオペレーティングシステムのネットワーク層で実行します。シンボリックサービス名の代わりにポート番号を使用する場合は、ルックアップは実行されず、追加のエントリーは必要ありません。 | |
r3name
|
SAP システムのシステム ID。負荷分散接続の必須プロパティー。 | |
group
|
SAP アプリケーションサーバーのグループ(ロードバランシング接続の必須プロパティー) |
接続プールのオプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | デフォルト値 | 説明 |
|---|---|---|
peakLimit
|
0
|
宛先に同時に作成できるアクティブなアウトバウンド接続の最大数。0 の値は、アクティブな接続を無制限に許可します。そうでないと、値が jpoolCapacity の値よりも低い場合は、この値に自動的に増えます。デフォルト設定は poolCapacity の値です。poolCapacity を指定しないと、デフォルトは 0 (無制限)です。
|
poolCapacity
|
1
|
宛先によって開いた状態で保持されるアイドルアウトバウンド接続の最大数。0 の値は、接続プールがないという効果があります(デフォルトは 1です)。
|
expirationTime
|
宛先によって内部で保持される空き接続を閉じるまでの時間(ミリ秒単位) | |
expirationPeriod
|
宛先がリリースされた接続の有効期限をチェックするまでの時間(ミリ秒単位)。 | |
maxGetTime
|
アプリケーションによって許可される接続の最大数がすでに割り当てられている場合、接続を待つ最大時間(ミリ秒単位)。 |
セキュアな接続オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | デフォルト値 | 説明 |
|---|---|---|
sncMode
|
セキュアな接続(SNC)モード、0 (オフ)または 1 (on)
|
|
sncPartnername
|
SNC パートナー(例:) p:CN=R3, O=XYZ-INC, C=EN
|
|
sncQop
|
SNC レベルのセキュリティー: 1 9
|
|
sncMyname
|
独自の SNC 名。環境設定の上書き | |
sncLibrary
|
SNC サービスを提供するライブラリーへのパス |
リポジトリーのオプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | デフォルト値 | 説明 |
|---|---|---|
repositoryDest
|
リポジトリーとして使用する宛先を指定します。 | |
repositoryUser
|
リポジトリーの宛先が設定されておらず、このプロパティーが設定されている場合、これはリポジトリー呼び出しのユーザーとして使用されます。これにより、リポジトリーの検索に別のユーザーを使用できます。 | |
repositoryPasswd
|
リポジトリーユーザーのパスワード。リポジトリーユーザーを使用する必要がある場合は必須です。 | |
repositorySnc
|
(オプション) この宛先に SNC を使用している場合は、このプロパティーが 0 に設定されている場合は、リポジトリー接続でオフにできます。デフォルト設定は jco.client.snc_mode の値です。特別なケースのみ。
|
|
repositoryRoundtripOptimization
|
1 つのラウンドトリップでリポジトリーデータを提供する
RFC_METADATA_GET API を有効にします。
プロパティーが設定されていない場合、宛先は最初にリモート呼び出しを行い、
RFC_METADATA_GET が利用可能かどうかを確認します。利用可能な場合、宛先はそれを使用します。
注記: リポジトリーがすでに初期化されている場合(たとえば、他の宛先で使用されるため)、このプロパティーは機能しません。通常、このプロパティーは ABAP システムに関連し、同じ ABAP システムを参照するすべての宛先に同じ値である必要があります。バックエンドの前提条件については、1456826 を参照してください。
|
トレース設定オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | デフォルト値 | 説明 |
|---|---|---|
trace
|
RFC トレースを有効/無効にします(0 または 1)
|
|
cpicTrace
|
CPIC トレースの有効化/無効化 [0..3]
|
140.2.3. サーバー設定 リンクのコピーリンクがクリップボードにコピーされました!
概要 リンクのコピーリンクがクリップボードにコピーされました!
serverDataStore プロパティーで維持されます。このマップの各エントリーは、SAP インスタンスからの個別の受信接続を設定します。各エントリーのキーはアウトバウンド接続の名前であり、URI 形式セクションで説明されているようにサーバーエンドポイント URI の serverName コンポーネントで使用されます。
org.fusesource.camel.component.sap.model.rfc.impl.ServerDataImpl です。
サーバーの設定例 リンクのコピーリンクがクリップボードにコピーされました!
quickstartServer という名前のサーバー設定例を作成する方法を示しています。
quickstartDest も設定します。この宛先は、repositoryDestination オプションを使用してサーバーデータで設定されます。このオプションを設定しない場合は、代わりにローカルのメタデータリポジトリーを作成する必要があります( 「リポジトリーの設定」を参照してください)。
BAPI_FLCUST_GETLIST リモート関数呼び出しを処理できます。
sap-srfc-server:quickstartServer:BAPI_FLCUST_GETLIST
sap-srfc-server:quickstartServer:BAPI_FLCUST_GETLIST
必須オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | デフォルト値 | 説明 |
|---|---|---|
gwhost
|
サーバー接続を登録する必要があるゲートウェイホスト。 | |
gwserv
|
ゲートウェイサービス:登録を実行できるポートです。サービス名 sapgwXXX を解決するために、etc/services の検索はオペレーティングシステムのネットワーク層で実行されます。シンボリックサービス名の代わりにポート番号を使用する場合は、ルックアップは実行されず、追加のエントリーは必要ありません。
|
|
progid
|
登録を行うプログラム ID。ゲートウェイ上の識別子および ABAP システムの宛先として機能します。 | |
repositoryDestination
|
リモートの SAP サーバーでホストされるメタデータリポジトリーからメタデータを取得するためにサーバーが使用できる宛先名を指定します。 | |
connectionCount
|
ゲートウェイで登録する必要のある接続の数。 |
セキュアな接続オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | デフォルト値 | 説明 |
|---|---|---|
sncMode
|
セキュアな接続(SNC)モード、0 (オフ)または 1 (on)
|
|
sncQop
|
SNC レベルのセキュリティー, 1 9
|
|
sncMyname
|
サーバーの SNC 名。デフォルトの SNC 名を上書きします。通常は p:CN=JCoServer, O=ACompany, C=EN のようになります。
|
|
sncLib
|
SNC サービスを提供するライブラリーへのパス。このプロパティーが指定されていない場合は、jco.middleware.snc_lib プロパティーの値が代わりに使用されます。
|
その他のオプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | デフォルト値 | 説明 |
|---|---|---|
saprouter
|
ファイアウォールで保護されたシステムに使用する SAP ルーター文字列。そのため、その ABAP システムのゲートウェイでサーバーを登録する際に、SAProuter 経由でのみアクセスできます。通常のルーター文字列は です。 /H/firewall.hostname/H/
|
|
maxStartupDelay
|
失敗時の 2 つの起動試行間の最大時間(秒単位)。待機時間は、各起動に失敗した後、最大値に達するか、サーバーを正常に起動するまで、最初の 1 秒から 2 倍になります。 | |
trace
|
RFC トレースを有効/無効にします(0 または 1)
|
|
workerThreadCount
|
サーバー接続によって使用されるスレッドの最大数。設定されていない場合は、connectionCount の値が workerThreadCount として使用されます。スレッドの最大数は 99 を超えることができません。
|
|
workerThreadMinCount
|
サーバー接続によって使用されるスレッドの最小数。設定されていない場合は、connectionCount の値が workerThreadMinCount として使用されます。
|
140.2.4. リポジトリーの設定 リンクのコピーリンクがクリップボードにコピーされました!
概要 リンクのコピーリンクがクリップボードにコピーされました!
repositoryDataStore プロパティーで維持されます。このマップの各エントリーは、個別のリポジトリーを設定します。各エントリーのキーはリポジトリーの名前で、このキーはこのリポジトリーが割り当てられているサーバー名にも対応します。
org.fusesource.camel.component.sap.model.rfc.impl.RepositoryDataImpl です。リポジトリーデータオブジェクトは、関数テンプレート設定オブジェクト org.fuesource.camel.component.sap.model.rfc.impl.FunctionTemplateImpl のマップです。このマップの各エントリーは、関数モジュールのインターフェイスを指定し、各エントリーのキーは指定された関数モジュールの名前です。
リポジトリーデータの例 リンクのコピーリンクがクリップボードにコピーされました!
関数テンプレートのプロパティー リンクのコピーリンクがクリップボードにコピーされました!
- import パラメーター一覧 には、RFC 呼び出しの関数モジュールに送信されるパラメーター値が含まれます。
- export パラメーター一覧 には、RFC 呼び出しの function モジュールによって返されるパラメーター値が含まれます。
- 変更パラメーター一覧 には、RFC 呼び出しの関数モジュールとの間で送受信されるパラメーター値が含まれます。
- table パラメーター一覧 には、RFC 呼び出しの関数モジュールに送信され、返される内部テーブル値が含まれます。
- 関数モジュールのインターフェイスは、RFC 呼び出しでモジュールが呼び出されたときに発生する可能性がある ABAP 例外の例外 リスト で設定されます。
| プロパティー | 説明 |
|---|---|
importParameterList
|
list フィールドメタデータオブジェクト org.fusesource.camel.component.sap.model.rfc.impl.ListFieldMeataDataImpl の一覧。関数モジュールへの RFC 呼び出しで送信されるパラメーターを指定します。
|
changingParameterList
|
list フィールドメタデータオブジェクト org.fusesource.camel.component.sap.model.rfc.impl.ListFieldMeataDataImpl の一覧。関数モジュールとの間で RFC 呼び出しで送受信されるパラメーターを指定します。
|
exportParameterList
|
list フィールドメタデータオブジェクト org.fusesource.camel.component.sap.model.rfc.impl.ListFieldMeataDataImpl の一覧。関数モジュールから RFC 呼び出しで返されるパラメーターを指定します。
|
tableParameterList
|
list フィールドメタデータオブジェクト org.fusesource.camel.component.sap.model.rfc.impl.ListFieldMeataDataImpl の一覧。関数モジュールとの間の RFC 呼び出しで送受信されるテーブルパラメーターを指定します。
|
exceptionList
|
ABAP 例外メタデータオブジェクトの一覧 org.fusesource.camel.component.sap.model.rfc.impl.AbapExceptionImpl関数モジュールの RFC 呼び出しで発生する可能性のある ABAP 例外を指定します。
|
関数テンプレートの例 リンクのコピーリンクがクリップボードにコピーされました!
フィールドメタデータプロパティーを一覧表示します。 リンクのコピーリンクがクリップボードにコピーされました!
org.fusesource.camel.component.sap.model.rfc.impl.ListFieldMeataDataImpl は、パラメーター一覧のフィールドの名前とタイプを指定します。要素的なパラメーターフィールド(CHAR, DATE, BCD, TIME, ----------|-----, splunk, splunk, splunk, splunk, splunk, splunk, ----------|-----, ----------|-----, ----------|-----, list field meta-data object: 通表は、リストフィールドの meta-data オブジェクトに設定できる設定プロパティーを示しています。BYTE NUM FLOAT INT INT1 INT2 DECF16 DECF34 STRING XSTRING
| 名前 | デフォルト値 | 説明 |
|---|---|---|
name
|
- | パラメーターフィールドの名前。 |
type
|
- | フィールドのパラメータータイプ。 |
byteLength
|
- | Unicode 以外のレイアウトのフィールドの長さ(バイト単位)。この値は、パラメーターのタイプによって異なります。「RFC のメッセージボディー」 を参照してください。 |
unicodeByteLength
|
- | Unicode レイアウトのフィールドの長さ(バイト単位)。この値は、パラメーターのタイプによって異なります。「RFC のメッセージボディー」 を参照してください。 |
decimals
|
0
|
フィールド値の 10 進数数。パラメータータイプ BCD および FLOAT にのみ必要です。「RFC のメッセージボディー」 を参照してください。 |
optional
|
false
|
true の場合、フィールドはオプションであり、RFC 呼び出しで設定する必要はありません。
|
name、type、byteLength、および unicodeByteLength プロパティーを meta-data オブジェクトで指定する必要があります。さらに、BCD、FLOAT、DECF16、および DECF34 フィールドには、meta-data オブジェクトで decimal プロパティーを指定する必要があります。
TABLE または STRUCTURE タイプの複雑なパラメーターフィールドの場合、以下の表には、list フィールド meta-data オブジェクトに設定できる設定プロパティーが記載されています。
| 名前 | デフォルト値 | 説明 |
|---|---|---|
name
|
- | パラメーターフィールドの名前 |
type
|
- | フィールドのパラメータータイプ |
recordMetaData
|
- |
構造またはテーブルのメタデータ。レコードメタデータオブジェクト org.fusesource.camel.component.sap.model.rfc.impl.RecordMetaDataImpl は、構造行またはテーブル行にフィールドを指定するために渡されます。
|
optional
|
false
|
true の場合、フィールドはオプションであり、RFC 呼び出しで設定する必要はありません。
|
name、type および recordMetaData プロパティーをフィールドの meta-data オブジェクトに指定する必要があることに注意してください。recordMetaData プロパティーの値はレコードフィールドのメタデータオブジェクト org.fusesource.camel.component.sap.model.rfc.impl.RecordMetaDataImpl で、ネストされた構造またはテーブル行の構造を指定します。
elementary list field meta-data example リンクのコピーリンクがクリップボードにコピーされました!
TICKET_PRICE という名前の小数点を指定します。
複雑なリストフィールドのメタデータの例 リンクのコピーリンクがクリップボードにコピーされました!
TABLE レコードメタデータオブジェクトで指定された行構造を持つ CONNINFO という名前の必須パラメーターを指定します。connectionInfo
<bean class="org.fusesource.camel.component.sap.model.rfc.impl.ListFieldMetaDataImpl">
<property name="name" value="CONNINFO" />
<property name="type" value="TABLE" />
<property name="recordMetaData" ref="connectionInfo" />
</bean>
<bean class="org.fusesource.camel.component.sap.model.rfc.impl.ListFieldMetaDataImpl">
<property name="name" value="CONNINFO" />
<property name="type" value="TABLE" />
<property name="recordMetaData" ref="connectionInfo" />
</bean>
レコードのメタデータ属性 リンクのコピーリンクがクリップボードにコピーされました!
org.fusesource.camel.component.sap.model.rfc.impl.RecordMetaDataImpl は、ネストされた STRUCTURE または TABLE パラメーターの名前および内容を指定します。レコードの meta-data オブジェクトは、レコードフィールドのメタデータオブジェクト org.fusesource.camel.component.sap.model.rfc.impl.FieldMetaDataImpl の一覧を維持します。これは、ネストされた構造またはテーブル行にあるパラメーターを指定します。
| 名前 | デフォルト値 | 説明 |
|---|---|---|
name
|
- | レコードの名前。 |
recordFieldMetaData
|
- |
レコードフィールドのメタデータオブジェクトの一覧 org.fusesource.camel.component.sap.model.rfc.impl.FieldMetaDataImpl構造内に含まれるフィールドを指定します。
|
レコードのメタデータの例 リンクのコピーリンクがクリップボードにコピーされました!
レコードフィールドのメタデータプロパティー リンクのコピーリンクがクリップボードにコピーされました!
org.fusesource.camel.component.sap.model.rfc.impl.FieldMetaDataImpl は、構造を持つパラメーターフィールドの名前およびタイプを指定します。
CHAR, DATE, BCD, TIME, ----------|-----, splunk, splunk, splunk, splunk, splunk, NORMAL, ----------|-----, ----------|-----, ----------|-----, …" には、レコードフィールドの meta-data オブジェクトに設定できる設定プロパティーが記載されています。BYTE NUM FLOAT INT INT1 INT2 DECF16 DECF34 STRING XSTRING
| 名前 | デフォルト値 | 説明 |
|---|---|---|
name
|
- | パラメーターフィールドの名前 |
type
|
- | フィールドのパラメータータイプ |
byteLength
|
- | Unicode 以外のレイアウトのフィールドの長さ(バイト単位)。この値は、パラメーターのタイプによって異なります。「RFC のメッセージボディー」 を参照してください。 |
unicodeByteLength
|
- | Unicode レイアウトのフィールドの長さ(バイト単位)。この値は、パラメーターのタイプによって異なります。「RFC のメッセージボディー」 を参照してください。 |
byteOffset
|
- | Unicode 以外のレイアウトのフィールドオフセット(バイト単位)。このオフセットは、エンクロージング構造内のフィールドのバイトロケーションです。 |
unicodeByteOffset
|
- | Unicode レイアウトのフィールドオフセット(バイト単位)。このオフセットは、エンクロージング構造内のフィールドのバイトロケーションです。 |
decimals
|
0
|
フィールド値の 10 進数数。パラメータータイプ BCD および FLOAT にのみ必要です。「RFC のメッセージボディー」 を参照してください。
|
TABLE または STRUCTURE タイプの複雑なパラメーターフィールドの場合、以下の表には、レコードフィールドのメタデータオブジェクトに設定できる設定プロパティーが記載されています。
| 名前 | デフォルト値 | 説明 |
|---|---|---|
name
|
- | パラメーターフィールドの名前 |
type
|
- | フィールドのパラメータータイプ |
byteOffset
|
- | Unicode 以外のレイアウトのフィールドオフセット(バイト単位)。このオフセットは、エンクロージング構造内のフィールドのバイトロケーションです。 |
unicodeByteOffset
|
- | Unicode レイアウトのフィールドオフセット(バイト単位)。このオフセットは、エンクロージング構造内のフィールドのバイトロケーションです。 |
recordMetaData
|
- |
構造またはテーブルのメタデータ。レコードメタデータオブジェクト org.fusesource.camel.component.sap.model.rfc.impl.RecordMetaDataImpl は、構造行またはテーブル行にフィールドを指定するために渡されます。
|
要素のレコードフィールドのメタデータの例 リンクのコピーリンクがクリップボードにコピーされました!
DATE フィールドパラメーターを指定します。ARRDATE
複雑なレコードフィールドのメタデータの例 リンクのコピーリンクがクリップボードにコピーされました!
flightInfo レコードメタデータオブジェクトで指定された構造を持つ FLTINFO という名前の STRUCTURE フィールドパラメーターを指定します。このパラメーターは、Unicode レイアウトと Unicode レイアウトの両方の場合、エンクロージング構造の先頭にあります。
140.3. RFC のメッセージボディー リンクのコピーリンクがクリップボードにコピーされました!
要求および応答オブジェクト リンクのコピーリンクがクリップボードにコピーされました!
構造オブジェクト リンクのコピーリンクがクリップボードにコピーされました!
org.fusesource.camel.component.sap.model.rfc.Structure インターフェイスをサポートする構造オブジェクトとして Java で表されます。このインターフェイスは、java.util.Map インターフェイスと org.eclipse.emf.ecore.EObject インターフェイスの両方を拡張します。
EObject インターフェイスをサポートします。構造オブジェクトのインスタンスには、提供するフィールドのマッピングの構造および内容を定義し、制限するメタデータが割り当てられます。このメタデータは、EMF が提供する標準の方法を使用してアクセスおよびイントロスペクションできます。詳細は、EMF のドキュメント を参照してください。
STRUCTURE および TABLE )の値が含まれるフィールドを含めることができます。これらのタイプのインスタンスを作成し、そのインスタンスを 構造に追加する必要はありません。これらのフィールド値のインスタンスは、エンクロージング構造でアクセスする際に必要な場合にオンデマンドで作成されます。
フィールドタイプ リンクのコピーリンクがクリップボードにコピーされました!
要素のフィールドタイプ リンクのコピーリンクがクリップボードにコピーされました!
| フィールドタイプ | 対応する Java タイプ | Byte Length | Unicode バイトの長さ | Number Decimals Digits | 説明 |
|---|---|---|---|---|---|
CHAR
|
java.lang.String
|
1 から 65535 | 1 から 65535 | - | ABAP Type 'C': Fixed sized character string |
DATE
|
java.util.Date
|
8 | 16 | - | ABAP Type 'D': Date (format: YYYYMMDD) |
BCD
|
java.math.BigDecimal
|
1 から 16 | 1 から 16 | 0 から 14 | ABAP Type 'P': Packed BCD 番号。BCD 番号には、バイトごとに 2 桁の数字が含まれます。 |
TIME
|
java.util.Date
|
6 | 12 | - | ABAP Type 'T': Time (形式:HHMMSS) |
BYTE
|
byte[]
|
1 から 65535 | 1 から 65535 | - | ABAP Type 'X':Fixed sized byte array |
NUM
|
java.lang.String
|
1 から 65535 | 1 から 65535 | - | ABAP Type 'N': Fixed sized numeric character string |
FLOAT
|
java.lang.Double
|
8 | 8 | 0 から 15 | ABAP Type 'F': Floating point number |
INT
|
java.lang.Integer
|
4 | 4 | - | ABAP Type 'I': 4-byte Integer |
INT2
|
java.lang.Integer
|
2 | 2 | - | ABAP Type 'S': 2-byte Integer |
INT1
|
java.lang.Integer
|
1 | 1 | - | ABAP Type 'B': 1-byte Integer |
DECF16
|
java.match.BigDecimal
|
8 | 8 | 16 | ABAP Type 'decfloat16': 8 -byte Decimal Floating Point Number |
DECF34
|
java.math.BigDecimal
|
16 | 16 | 34 | ABAP Type 'decfloat34': 16-byte Decimal Floating Point Number |
STRING
|
java.lang.String
|
8 | 8 | - | ABAP Type 'G': Variable length character string |
XSTRING
|
byte[]
|
8 | 8 | - | ABAP Type 'Y': Variable length byte array |
文字フィールドタイプ リンクのコピーリンクがクリップボードにコピーされました!
java.lang.String オブジェクトとして表され、基礎となる JCo ランタイムは ABAP 表現への変換を行います。
byteLength および unicodeByteLength プロパティーでフィールドの長さを宣言します。これは、各エンコーディングシステムでフィールドの文字文字列の長さを決定します。
CHARCHAR文字フィールドは英数字が含まれるテキストフィールドで、ABAP タイプ C に対応します。NUMNUM文字フィールドは数値文字のみを含む数値テキストフィールドで、ABAP タイプ N に対応します。DATEDATE文字フィールドは、年、月、および日がYYYYMMDDとしてフォーマットされた 8 文字の日付フィールドで、ABAP タイプ D に対応します。TIMETIME文字フィールドは、時間、分、秒がHHMMSSとしてフォーマットされた 6 文字の時間フィールドで、ABAP タイプ T に対応します。
数値フィールドタイプ リンクのコピーリンクがクリップボードにコピーされました!
INTINTnumeric フィールドは、基礎となる JCo および ABAP ランタイムの 4 バイトの整数値として保存される整数フィールドで、ABAP タイプ I に対応します。INTフィールドの値は、Java でjava.lang.Integerオブジェクトとして表されます。INT2INT2numeric フィールドは、基礎となる JCo および ABAP ランタイムの 2 バイトの整数値として保存される整数フィールドで、ABAP タイプ S に対応します。INT2フィールドの値は、Java でjava.lang.Integerオブジェクトとして表されます。INT1INT1フィールドは、基礎となる JCo および ABAP ランタイム値の 1 バイトの整数値として保存される整数フィールドで、ABAP タイプ B に対応します。INT1フィールドの値は、Java でjava.lang.Integerオブジェクトとして表されます。FLOATFLOATフィールドは、基礎となる JCo および ABAP ランタイムの 8 バイトの 2 つの値として保存されるバイナリー浮動小数点数フィールドで、ABAP タイプ F に対応します。FLOATフィールドは、フィールドの値が関連する 10 進数のプロパティーに含まれる 10 進数の数を宣言します。FLOATフィールドでは、この 10 進数のプロパティーの値は 1 から 15 桁の値になります。FLOATフィールド値は Java でjava.lang.Doubleオブジェクトとして表されます。BCDBCDフィールドは、基礎となる JCo および ABAP ランタイムの 1 から 16 バイトパックの数字として保存されたバイナリーコード 10 進数フィールドで、ABAP タイプ P に対応します。パックされた数字は、1 バイトに 2 桁の数字を保存します。BCDフィールドは、関連付けられたbyteLengthおよびunicodeByteLengthプロパティーでフィールドの長さを宣言します。BCDフィールドの場合、これらのプロパティーの値は 1 ~ 16 バイトになり、いずれのプロパティーも同じ値になります。BCDフィールドは、関連する decimal プロパティーでフィールドの値に含まれる 10 進数の数を宣言します。BCDフィールドでは、この 10 進数のプロパティーの値は 1 から 14 桁の値になります。BCDフィールド値は Java でjava.math.BigDecimalとして表されます。DECF16DECF16フィールドは、基礎となる JCo ランタイムおよび ABAP ランタイムの浮動小数点値 8 バイトの IEEE 754 decimal64 浮動小数点値として保存され、ABAP タイプdecfloat16に対応します。DECF16フィールドの値には、16 桁の数字が含まれます。DECF16フィールドの値は Java でjava.math.BigDecimalとして表されます。DECF34DECF34フィールドは、基礎となる JCo ランタイムおよび ABAP ランタイムの浮動小数点値 16 バイト IEEE 754 decimal128 として保存され、ABAP タイプdecfloat34に対応します。DECF34フィールドの値には、34 桁の数字が含まれます。DECF34フィールドの値は Java でjava.math.BigDecimalとして表されます。
16 進数フィールドタイプ リンクのコピーリンクがクリップボードにコピーされました!
BYTEBYTEフィールドは、基礎となる JCo および ABAP ランタイムのバイト配列として保存される固定サイズのバイト文字列で、ABAP タイプ X に対応します。BYTEフィールドは関連するbyteLengthおよびunicodeByteLengthプロパティーでフィールドの長さを宣言します。BYTEフィールドの場合、これらのプロパティーの値は 1 ~ 65535 バイトになり、両方のプロパティーの値が同じになります。BYTEフィールドの値は、Java でbyte[]オブジェクトとして表されます。
文字列フィールドタイプ リンクのコピーリンクがクリップボードにコピーされました!
STRINGSTRINGフィールドは文字文字列を参照し、基礎となる JCo および ABAP ランタイムを 8 バイトの値として格納されます。ABAP タイプ G に対応します。STRINGフィールドの値は Java でjava.lang.Stringオブジェクトとして表されます。XSTRINGXSTRINGフィールドはバイト文字列を参照し、基礎となる JCo および ABAP ランタイムを 8 バイトの値として格納されます。ABAP タイプ Y に対応します。STRINGフィールドの値は Java でbyte[]オブジェクトとして表されます。
複雑なフィールドタイプ リンクのコピーリンクがクリップボードにコピーされました!
| フィールドタイプ | 対応する Java タイプ | Byte Length | Unicode バイトの長さ | Number Decimals Digits | 説明 |
|---|---|---|---|---|---|
STRUCTURE
|
org.fusesource.camel.component.sap.model.rfc.Structure
|
個々のフィールドバイト長の合計 | 個々のフィールド Unicode バイト長の合計 | - | ABAP Type 'u' & 'v': Heterogeneous Structure |
TABLE
|
org.fusesource.camel.component.sap.model.rfc.Table
|
行構造のバイト長 | Unicode バイト長の行構造 | - | ABAP タイプ 'h': テーブル |
構造化フィールドタイプ リンクのコピーリンクがクリップボードにコピーされました!
STRUCTURE フィールドには構造オブジェクトが含まれ、下層の JCo および ABAP ランタイムに ABAP 構造レコードとして保存されます。ABAP タイプ u または v に対応します。STRUCTURE フィールドの値は、Java でインターフェイス org.fusesource.camel.component.sap.model.rfc.Structure を持つ構造オブジェクトとして表されます。
テーブルフィールドタイプ リンクのコピーリンクがクリップボードにコピーされました!
TABLE フィールドにはテーブルオブジェクトが含まれ、下層の JCo および ABAP ランタイムに ABAP 内部テーブルとして保存されます。ABAP タイプ h に対応します。フィールドの値は、インターフェイス org.fusesource.camel.component.sap.model.rfc.Table のあるテーブルオブジェクトによって Java で表されます。
テーブルオブジェクト リンクのコピーリンクがクリップボードにコピーされました!
java.util.List インターフェイスと org.eclipse.emf.ecore.EObject インターフェイスの両方を拡張します。
140.4. IDoc のメッセージボディー リンクのコピーリンクがクリップボードにコピーされました!
IDoc メッセージタイプ リンクのコピーリンクがクリップボードにコピーされました!
sap-idoc-destination エンドポイントまたは sap-qidoc-destination エンドポイントの場合、メッセージボディーは Document タイプになります。
org.fusesource.camel.component.sap.model.idoc.Document
org.fusesource.camel.component.sap.model.idoc.Document
sap-idoclist-destination エンドポイント、sap-qidoclist-destination エンドポイント、または sap-idoclist-server エンドポイントの場合、メッセージボディーは DocumentList タイプになります。
org.fusesource.camel.component.sap.model.idoc.DocumentList
org.fusesource.camel.component.sap.model.idoc.DocumentList
IDoc ドキュメントモデル リンクのコピーリンクがクリップボードにコピーされました!
org.fusesource.camel.component.sap.model.idoc.Document org.fusesource.camel.component.sap.model.idoc.Segment
org.fusesource.camel.component.sap.model.idoc.Document
org.fusesource.camel.component.sap.model.idoc.Segment
Document タイプは IDoc ドキュメントインスタンスを表します。概要として、Document インターフェイスは以下のメソッドを公開します。
Document インターフェイスによって公開されます。
- コントロールレコードにアクセスする方法
- メソッドのほとんどは、IDoc 制御レコードのフィールド値にアクセスまたは変更するためのものです。これらのメソッドは
getAttributeName、setAttributeNameの形式を取ります。AttributeNameはフィールド値の名前です( 表140.2「IDoc ドキュメントの属性」を参照)。 - ドキュメントの内容にアクセスする方法
getRootSegmentメソッドは、ドキュメントコンテンツ(IDoc データレコード)へのアクセスを提供し、コンテンツをSegmentオブジェクトとして返します。各Segmentオブジェクトには任意の数の子セグメントを含めることができ、セグメントを任意のレベルでネストできます。ただし、セグメント階層の正確なレイアウトは、ドキュメントの特定の IDoc タイプ で定義されることに注意してください。したがって、セグメント階層を作成(または読み取り)する場合、IDoc タイプで定義されている正確な構造に従うようにしてください。
Segment タイプは、IDoc ドキュメントのデータレコードにアクセスするために使用されます。セグメントは、ドキュメントの IDoc タイプで定義された構造に従って配置されます。概要として、Segment インターフェイスは以下のメソッドを公開します。
getChildren(String segmentType) メソッドは、新しい(ネストされた)子をセグメントに追加する場合に特に便利です。以下のように定義されるタイプ SegmentList のオブジェクトを返します。
E1SCU_CRE タイプのデータレコードを作成するには、以下のような Java コードを使用します。
Segment rootSegment = document.getRootSegment();
Segment E1SCU_CRE_Segment = rootSegment.getChildren("E1SCU_CRE").add();
Segment rootSegment = document.getRootSegment();
Segment E1SCU_CRE_Segment = rootSegment.getChildren("E1SCU_CRE").add();
IDoc が Document オブジェクトにどのように関連しているか リンクのコピーリンクがクリップボードにコピーされました!
- 制御レコード
- 制御レコード(IDoc ドキュメントのメタデータを含む)は、
Documentオブジェクトの属性で表されます。詳細は、表140.2「IDoc ドキュメントの属性」 を参照してください。 - データレコード
- データレコードは、
Segmentオブジェクトによって表され、セグメントのネストされた階層として構築されます。Document.getRootSegmentメソッドを使用してルートセグメントにアクセスできます。 - ステータスレコード
- Camel SAP コンポーネントでは、ステータスレコードはドキュメントモデルによって表され ません。ただし、コントロールレコードの
status属性を使用して、最新のステータス値にアクセスできます。
ドキュメントインスタンスの作成例 リンクのコピーリンクがクリップボードにコピーされました!
FLCUSTOMER_CREATEFROMDATA01 で IDoc ドキュメントを作成する方法を示しています。
例140.1 Java での IDoc ドキュメントの作成
ドキュメント属性 リンクのコピーリンクがクリップボードにコピーされました!
Document オブジェクトに設定できる制御レコード属性を示しています。
| 属性 | 長さ | SAP フィールド | 説明 |
|---|---|---|---|
archiveKey
|
70 |
ARCKEY
|
EDI アーカイブキー
|
client
|
3 |
MANDT
|
クライアント
|
creationDate
|
8 |
CREDAT
|
日付 IDoc が作成されました
|
creationTime
|
6 |
CRETIM
|
時間 IDoc が作成されました
|
direction
|
1 |
DIRECT
|
方向
|
eDIMessage
|
14 |
REFMES
|
メッセージへの参照
|
eDIMessageGroup
|
14 |
REFGRP
|
メッセージグループへの参照
|
eDIMessageType
|
6 |
STDMES
|
EDI メッセージタイプ
|
eDIStandardFlag
|
1 |
STD
|
EDI 標準
|
eDIStandardVersion
|
6 |
STDVRS
|
EDI 標準のバージョン
|
eDITransmissionFile
|
14 |
REFINT
|
ファイル間の参照
|
iDocCompoundType
|
8 |
DOCTYP
|
IDoc タイプ
|
iDocNumber
|
16 |
DOCNUM
|
IDoc number
|
iDocSAPRelease
|
4 |
DOCREL
|
IDoc の SAP リリース
|
iDocType
|
30 |
IDOCTP
|
基本 IDoc タイプの名前
|
iDocTypeExtension
|
30 |
CIMTYP
|
エクステンションタイプの名前
|
messageCode
|
3 |
MESCOD
|
論理メッセージコード
|
messageFunction
|
3 |
MESFCT
|
論理メッセージ関数
|
messageType
|
30 |
MESTYP
|
論理メッセージタイプ
|
outputMode
|
1 |
OUTMOD
|
出力モード
|
recipientAddress
|
10 |
RCVSAD
|
受信者アドレス(SADR)
|
recipientLogicalAddress
|
70 |
RCVLAD
|
レシーバーの論理アドレス
|
recipientPartnerFunction
|
2 |
RCVPFC
|
レシーバーのパートナー機能
|
recipientPartnerNumber
|
10 |
RCVPRN
|
受信者のパートナー数
|
recipientPartnerType
|
2 |
RCVPRT
|
パートナータイプの受信者
|
recipientPort
|
10 |
RCVPOR
|
レシーバーポート(SAP System、EDI サブシステム)
|
senderAddress
|
SNDSAD
|
送信者アドレス(SADR)
|
|
senderLogicalAddress
|
70 |
SNDLAD
|
送信者の論理アドレス
|
senderPartnerFunction
|
2 |
SNDPFC
|
送信者のパートナーの機能
|
senderPartnerNumber
|
10 |
SNDPRN
|
パートナーの送信者数
|
senderPartnerType
|
2 |
SNDPRT
|
パートナータイプの送信者
|
senderPort
|
10 |
SNDPOR
|
送信者ポート(SAP System、EDI サブシステム)
|
serialization
|
20 |
SERIAL
|
EDI/ALE: シリアル化フィールド
|
status
|
2 |
STATUS
|
IDoc のステータス
|
testFlag
|
1 |
TEST
|
test フラグ
|
Java でのドキュメント属性の設定 リンクのコピーリンクがクリップボードにコピーされました!
name 属性は、属性値を取得および設定するには、getName および setName メソッドを使用してアクセスできます。たとえば、iDocType、iDocTypeExtension、および messageType 属性は、Document オブジェクトで以下のように設定できます。
// Java
document.setIDocType("FLCUSTOMER_CREATEFROMDATA01");
document.setIDocTypeExtension("");
document.setMessageType("FLCUSTOMER_CREATEFROMDATA");
// Java
document.setIDocType("FLCUSTOMER_CREATEFROMDATA01");
document.setIDocTypeExtension("");
document.setMessageType("FLCUSTOMER_CREATEFROMDATA");
XML でのドキュメント属性の設定 リンクのコピーリンクがクリップボードにコピーされました!
idoc:Document 要素に属性を設定する必要があります。たとえば、iDocType、iDocTypeExtension、および messageType 属性は以下のように設定できます。
140.5. トランザクションサポート リンクのコピーリンクがクリップボードにコピーされました!
BAPI トランザクションモデル リンクのコピーリンクがクリップボードにコピーされました!
true に設定された URL を持つ宛先エンドポイントは、必要な場合は、エンドポイントのアウトバウンド接続でステートフルセッションを開始し、Camel Synchronization オブジェクトをエクスチェンジに登録します。この同期オブジェクトは BAPI サービスメソッド BAPI_TRANSACTION_COMMIT を呼び出して、メッセージ交換の処理が完了するとステートフルセッションを終了します。メッセージ交換の処理に失敗すると、同期オブジェクトは BAPI サーバーメソッド BAPI_TRANSACTION_ROLLBACK を呼び出してステートフルセッションを終了します。
RFC トランザクションモデル リンクのコピーリンクがクリップボードにコピーされました!
使用するトランザクションモデル リンクのコピーリンクがクリップボードにコピーされました!
トランザクション RFC 宛先エンドポイント リンクのコピーリンクがクリップボードにコピーされました!
sap-trfc-destinationsap-qrfc-destination
Exchange オブジェクトごとに 多数 のトランザクション ID (TID)を追跡する必要があることを意味します。ルート処理に失敗し、再試行する必要がある場合、状況はかなり複雑になります。RFC トランザクションセマンティクスでは、ルートを介した各 RFC 宛先が、最初に使用されたのと 同じ TID を使用して呼び出す必要があります(および各宛先の TID が相互に区別されます)。つまり、Camel SAP コンポーネントは、ルートにどの TID が使用されたかを追跡し、TID が正しい順序で再生できるようにこの情報を覚えておく必要があります。
Exchange がルート内の場所を認識できるようにするメカニズムを提供しません。このようなメカニズムを提供するには、CurrentProcessorDefinitionInterceptStrategy インターセプターを Camel ランタイムにインストールする必要があります。Camel SAP コンポーネントがルート内の TID を追跡するには、このインターセプターを Camel ランタイムにインストールする必要があります。インターセプターの設定方法の詳細は、「tRFC および qRFC 宛先のインターセプター」 を参照してください。
トランザクション RFC サーバーエンドポイント リンクのコピーリンクがクリップボードにコピーされました!
sap-trfc-server
140.6. RFC の XML シリアライゼーション リンクのコピーリンクがクリップボードにコピーされました!
概要 リンクのコピーリンクがクリップボードにコピーされました!
XML namespace リンクのコピーリンクがクリップボードにコピーされました!
http://sap.fusesource.org/rfc/<Repository Name>/<RFC Name>
http://sap.fusesource.org/rfc/<Repository Name>/<RFC Name>
http://sap.fusesource.org/rfc 接頭辞があり、その後に RFC のメタデータが定義されているリポジトリーの名前が続きます。URL の最後のコンポーネントは RFC 自体の名前です。
リクエストおよび応答 XML ドキュメント リンクのコピーリンクがクリップボードにコピーされました!
<?xml version="1.0" encoding="ASCII"?>
<BOOK_FLIGHT:Request
xmlns:BOOK_FLIGHT="http://sap.fusesource.org/rfc/nplServer/BOOK_FLIGHT">
...
</BOOK_FLIGHT:Request>
<?xml version="1.0" encoding="ASCII"?>
<BOOK_FLIGHT:Request
xmlns:BOOK_FLIGHT="http://sap.fusesource.org/rfc/nplServer/BOOK_FLIGHT">
...
</BOOK_FLIGHT:Request>
<?xml version="1.0" encoding="ASCII"?>
<BOOK_FLIGHT:Response
xmlns:BOOK_FLIGHT="http://sap.fusesource.org/rfc/nplServer/BOOK_FLIGHT">
...
</BOOK_FLIGHT:Response>
<?xml version="1.0" encoding="ASCII"?>
<BOOK_FLIGHT:Response
xmlns:BOOK_FLIGHT="http://sap.fusesource.org/rfc/nplServer/BOOK_FLIGHT">
...
</BOOK_FLIGHT:Response>
構造フィールド リンクのコピーリンクがクリップボードにコピーされました!
<BOOK_FLIGHT:FLTINFO
xmlns:BOOK_FLIGHT="http://sap.fusesource.org/rfc/nplServer/BOOK_FLIGHT">
...
</BOOK_FLIGHT:FLTINFO>
<BOOK_FLIGHT:FLTINFO
xmlns:BOOK_FLIGHT="http://sap.fusesource.org/rfc/nplServer/BOOK_FLIGHT">
...
</BOOK_FLIGHT:FLTINFO>
テーブルフィールド リンクのコピーリンクがクリップボードにコピーされました!
_TABLE のテーブルの行構造を定義するレコードメタデータオブジェクトの名前に対応していることに注意してください。RFC 名の table row 要素の type 名は、以下の例のようにテーブルの行構造を定義するレコードメタデータの名前に対応します。
要素フィールド リンクのコピーリンクがクリップボードにコピーされました!
日付と時刻の形式 リンクのコピーリンクがクリップボードにコピーされました!
yyyy-MM-dd'T'HH:mm:ss.SSSZ
yyyy-MM-dd'T'HH:mm:ss.SSSZ
DEPDATE="2014-03-19T00:00:00.000-0400"
DEPDATE="2014-03-19T00:00:00.000-0400"
DEPTIME="1970-01-01T16:00:00.000-0500"
DEPTIME="1970-01-01T16:00:00.000-0500"
140.7. IDoc の XML シリアライゼーション リンクのコピーリンクがクリップボードにコピーされました!
概要 リンクのコピーリンクがクリップボードにコピーされました!
XML namespace リンクのコピーリンクがクリップボードにコピーされました!
http://sap.fusesource.org/idoc/repositoryName/idocType/idocTypeExtension/systemRelease/applicationRelease
http://sap.fusesource.org/idoc/repositoryName/idocType/idocTypeExtension/systemRelease/applicationRelease
repositoryName (リモート SAP メタデータリポジトリーの名前)と idocType (IDoc ドキュメントタイプ)の両方は必須ですが、名前空間の他のコンポーネントは空白のままにすることができます。たとえば、以下のような XML 名前空間を使用できます。
http://sap.fusesource.org/idoc/MY_REPO/FLCUSTOMER_CREATEFROMDATA01///
http://sap.fusesource.org/idoc/MY_REPO/FLCUSTOMER_CREATEFROMDATA01///
組み込み型コンバーター リンクのコピーリンクがクリップボードにコピーされました!
Document 型との間で DocumentList オブジェクトまたは String オブジェクトを変換できる組み込み型コンバーターがあります。
Document オブジェクトを XML 文字列にシリアライズするには、以下の行を XML DSL のルートに追加するだけです。
<convertBodyTo type="java.lang.String"/>
<convertBodyTo type="java.lang.String"/>
Document オブジェクトにすることもできます。たとえば、現在のメッセージボディーがシリアライズされた XML 文字列である場合、以下の行を XML DSL のルートに追加して、Document オブジェクトに戻すことができます。
<convertBodyTo type="org.fusesource.camel.component.sap.model.idoc.Document"/>
<convertBodyTo type="org.fusesource.camel.component.sap.model.idoc.Document"/>
XML 形式の IDoc メッセージのボディーの例 リンクのコピーリンクがクリップボードにコピーされました!
String に変換すると、XML ドキュメントにシリアライズされます。ルート要素は idoc:Document (単一ドキュメント用)または idoc:DocumentList (ドキュメントのリスト用)です。例140.2「XML の IDoc メッセージボディー」 は、idoc:Document 要素にシリアライズされた単一の IDoc ドキュメントを示しています。
例140.2 XML の IDoc メッセージボディー
140.8. 例 1: SAP からのデータの読み取り リンクのコピーリンクがクリップボードにコピーされました!
概要 リンクのコピーリンクがクリップボードにコピーされました!
FlightCustomer ビジネスオブジェクトデータを読み取るルートを示しています。ルートは、SAP 同期 RFC 宛先エンドポイントを使用して FlightCustomer BAPI メソッドを呼び出し、データを取得します。BAPI_FLCUST_GETLIST
ルートの Java DSL リンクのコピーリンクがクリップボードにコピーされました!
from("direct:getFlightCustomerInfo")
.to("bean:createFlightCustomerGetListRequest")
.to("sap-srfc-destination:nplDest:BAPI_FLCUST_GETLIST")
.to("bean:returnFlightCustomerInfo");
from("direct:getFlightCustomerInfo")
.to("bean:createFlightCustomerGetListRequest")
.to("sap-srfc-destination:nplDest:BAPI_FLCUST_GETLIST")
.to("bean:returnFlightCustomerInfo");
ルートの XML DSL リンクのコピーリンクがクリップボードにコピーされました!
createFlightCustomerGetListRequest bean リンクのコピーリンクがクリップボードにコピーされました!
createFlightCustomerGetListRequest Bean は、後続の SAP エンドポイント の RFC 呼び出しで使用されるエクスチェンジメソッドで SAP 要求オブジェクトを構築します。以下のコードスニペットは、要求オブジェクトを構築するための操作シーケンスを示しています。
returnFlightCustomerInfo bean リンクのコピーリンクがクリップボードにコピーされました!
returnFlightCustomerInfo Bean は、以前の SAP エンドポイント から受信するエクスチェンジメソッドで SAP 応答オブジェクトからデータを抽出します。以下のコードスニペットは、応答オブジェクトからデータを抽出する操作シーケンスを示しています。
140.9. 例 2: SAP へのデータの書き込み リンクのコピーリンクがクリップボードにコピーされました!
概要 リンクのコピーリンクがクリップボードにコピーされました!
FlightTrip ビジネスオブジェクトインスタンスを作成するルートを示しています。ルートは、FlightTrip BAPI メソッド BAPI_FLTRIP_CREATE を呼び出し、宛先エンドポイントを使用してオブジェクトを作成します。
ルートの Java DSL リンクのコピーリンクがクリップボードにコピーされました!
from("direct:createFlightTrip")
.to("bean:createFlightTripRequest")
.to("sap-srfc-destination:nplDest:BAPI_FLTRIP_GETLIST?transacted=true")
.to("bean:returnFlightTripResponse");
from("direct:createFlightTrip")
.to("bean:createFlightTripRequest")
.to("sap-srfc-destination:nplDest:BAPI_FLTRIP_GETLIST?transacted=true")
.to("bean:returnFlightTripResponse");
ルートの XML DSL リンクのコピーリンクがクリップボードにコピーされました!
トランザクションサポート リンクのコピーリンクがクリップボードにコピーされました!
transacted オプションが true に設定されていることに注意してください。「トランザクションサポート」 で説明されているように、このオプションを有効にすると、RFC 呼び出しを呼び出す前に SAP トランザクションセッションが開始されるようにします。このエンドポイントの RFC は SAP で新しいデータを作成するため、このオプションを使用してルートの変更を SAP で永続化する必要があります。
要求パラメーターの設定 リンクのコピーリンクがクリップボードにコピーされました!
createFlightTripRequest および returnFlightTripResponse Bean は、前述の例と同じ操作シーケンスに従って、SAP リクエストにリクエストパラメーターを設定し、SAP 応答から応答パラメーターを抽出するロールを果たします。
140.10. 例 3: SAP からのリクエストの処理 リンクのコピーリンクがクリップボードにコピーされました!
概要 リンクのコピーリンクがクリップボードにコピーされました!
BOOK_FLIGHT RFC への要求を処理するルートを示しています。これはルートによって実装されます。さらに、JAXB を使用して SAP リクエストオブジェクトおよび応答オブジェクトをカスタム Bean にアンマーシャリングおよびマーシャリングし、コンポーネントの XML シリアライゼーションサポートも示しています。
FlightCustomer の代わりに FlightTrip ビジネスオブジェクトを作成します。ルートが最初に SAP サーバーエンドポイントによって受信された SAP リクエストオブジェクトをカスタム JAXB Bean にアンマーシャリングします。このカスタム Bean は、3 つのサブルートへの交換でマルチキャストされ、フライトのトリップの作成に必要な移動エージェント、フライト接続、および乗客情報を収集します。最後のサブルートは、前の例に示すように、SAP でフライトトリップオブジェクトを作成します。最後のサブルートは、SAP 応答オブジェクトにマーシャリングされ、サーバーエンドポイントによって返されるカスタム JAXB Bean も作成および返します。
ルートの Java DSL リンクのコピーリンクがクリップボードにコピーされました!
ルートの XML DSL リンクのコピーリンクがクリップボードにコピーされました!
BookFlightRequest bean リンクのコピーリンクがクリップボードにコピーされました!
BOOK_FLIGHT リクエストオブジェクトのシリアル化形式からアンマーシャリングする JAXB Bean を示しています。
BookFlightResponse Bean リンクのコピーリンクがクリップボードにコピーされました!
BOOK_FLIGHT 応答オブジェクトのシリアル化形式にマーシャリングする JAXB Bean を示しています。
FlightInfo ビーン リンクのコピーリンクがクリップボードにコピーされました!
FLTINFO。
ConnectionInfoTable Bean リンクのコピーリンクがクリップボードにコピーされました!
CONNINFO )にマーシャリングする JAXB Bean を示しています。JAXB Bean のルート要素タイプの名前は、_TABLE で接尾辞が付けられた行構造タイプの名前に対応し、Bean には行要素のリストが含まれることに注意してください。
ConnectionInfo bean リンクのコピーリンクがクリップボードにコピーされました!
第141章 SAP NetWeaver リンクのコピーリンクがクリップボードにコピーされました!
SAP NetWeaver Gateway コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
pom.xml に以下の依存関係を追加する必要があります。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
sap-netweaver:https://host:8080/path?username=foo&password=secret
sap-netweaver:https://host:8080/path?username=foo&password=secret
?option=value&option=value&.. の形式で追加できます。
前提条件 リンクのコピーリンクがクリップボードにコピーされました!
コンポーネントおよびエンドポイントオプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | デフォルト値 | 説明 |
|---|---|---|
username
|
アカウントのユーザー名。これは必須です。 | |
password
|
アカウントのパスワードこれは必須です。 | |
json
|
true
|
JSON 形式でデータを返すかどうか。このオプションが false の場合、XML は Atom 形式で返されます。 |
jsonAsMap
|
true
|
JSON を文字列からメッセージボディーの Map に変換するには、以下を行います。 |
flatternMap
|
true
|
JSON Map に単一のエントリーのみが含まれる場合、その単一のエントリー値をメッセージボディーとして保存し、フラット化します。 |
メッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | タイプ | 説明 |
|---|---|---|
CamelNetWeaverCommand
|
文字列
|
必須: MS ADO.Net Data Service 形式で実行するコマンド。 |
例 リンクのコピーリンクがクリップボードにコピーされました!
https://sapes1.sapdevcenter.com/sap/opu/odata/IWBEP/RMTSAMPLEFLIGHT_2/
https://sapes1.sapdevcenter.com/sap/opu/odata/IWBEP/RMTSAMPLEFLIGHT_2/
FlightCollection(AirLineID='AA',FlightConnectionID='0017',FlightDate=datetime'2012-08-29T00%3A00%3A00')
FlightCollection(AirLineID='AA',FlightConnectionID='0017',FlightDate=datetime'2012-08-29T00%3A00%3A00')
from("direct:start")
.toF("sap-netweaver:%s?username=%s&password=%s", url, username, password)
.to("log:response")
.to("velocity:flight-info.vm")
from("direct:start")
.toF("sap-netweaver:%s?username=%s&password=%s", url, username, password)
.to("log:response")
.to("velocity:flight-info.vm")
private String username = "P1909969254";
private String password = "TODO";
private String url = "https://sapes1.sapdevcenter.com/sap/opu/odata/IWBEP/RMTSAMPLEFLIGHT_2/";
private String command = "FlightCollection(AirLineID='AA',FlightConnectionID='0017',FlightDate=datetime'2012-08-29T00%3A00%3A00')";
private String username = "P1909969254";
private String password = "TODO";
private String url = "https://sapes1.sapdevcenter.com/sap/opu/odata/IWBEP/RMTSAMPLEFLIGHT_2/";
private String command = "FlightCollection(AirLineID='AA',FlightConnectionID='0017',FlightDate=datetime'2012-08-29T00%3A00%3A00')";
第142章 スケジューラー リンクのコピーリンクがクリップボードにコピーされました!
スケジューラーコンポーネント リンクのコピーリンクがクリップボードにコピーされました!
ScheduledExecutorService を使用します。タイマーは JDK Timer を使用します。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
scheduler:name[?options]
scheduler:name[?options]
name はスケジューラーの名前で、エンドポイント間で作成および共有されます。したがって、すべてのタイマーエンドポイントに同じ名前を使用する場合は、1 つのスケジューラースレッドプールとスレッドのみが使用されます。ただし、スレッドプールは、より多くの同時スレッドを許可するように設定できます。
?option=value&option=value&...
null です。exchange.getIn().getBody() は null を返します。
オプション リンクのコピーリンクがクリップボードにコピーされました!
|
名前
|
デフォルト値
|
説明
|
|---|---|---|
initialDelay
|
1000
|
最初のポーリングが開始するまでの時間(ミリ秒単位) |
delay
|
500
|
次のポーリングまでの時間(ミリ秒単位)
|
timeUnit
|
MILLISECONDS
|
initialDelay および delay オプションの時間単位。
|
useFixedDelay
|
true
|
固定遅延または固定レートを使用するかどうかを制御します。詳細は、JDK の ScheduledExecutorService を参照してください。 |
pollStrategy
|
プラグ可能な org.apache.camel.PollingConsumerPollingStrategy により、エクスチェンジ が作成され、Camel でルーティングされる 前 に、通常 poll 操作中に発生するエラー処理を制御するカスタム実装を提供できます。つまり、ポーリングにより情報を収集しているときにエラーが発生し (例えばファイルネットワークへのアクセスに失敗した)、Camel はそれにアクセスしてファイルをスキャンできません。デフォルトの実装は、WARN レベルで原因となった例外をログに記録し、無視します。
|
|
runLoggingLevel
|
TRACE
|
コンシューマーはポーリング時に開始/完了のログ行を記録します。このオプションを使用すると、ログレベルを設定できます。 |
sendEmptyMessageWhenIdle
|
false
|
ポーリングコンシューマーがファイルをポーリングしなかった場合、このオプションを有効にして、代わりに空のメッセージ (ボディーなし) を送信できます。 |
greedy
|
false
|
greedy が有効で、以前の実行が 1 つ以上のメッセージをポーリングした場合、ScheduledPollConsumer は即座に再度実行されます。 |
scheduler
|
ポーリングコンシューマーの実行時に実行するスケジューラーとして使用するカスタム org.apache.camel.spi.ScheduledPollConsumerScheduler をプラグインできるようにします。デフォルトの実装はScheduledExecutorService を使用し、CRON 式をサポートする Quartz2 および Spring ベースがあります。注記: カスタムスケジューラーを使用する場合は、initialDelay、useFixedDelay、timeUnit、およびscheduledExecutorService のオプションが使用されていない可能性があります。テキスト quartz2 を使用して Quartz2 スケジューラーを使用し、テキスト spring を使用して Spring ベースを使用し、テキスト #myScheduler を使用してレジストリー の ID でカスタムスケジューラーを参照し ます。例については、Quartz2 ページを参照してください。
|
|
scheduler.xxx
|
カスタム scheduler または Quartz2、Spring ベースのスケジューラーのいずれかを使用する場合に追加のプロパティーを設定します。たとえば、Spring ベースのスケジューラーに cron 値を指定するには、scheduler.cron を使用します。
|
|
backoffMultiplier
|
0
|
後続のアイドル状態/エラーが連続して発生した場合に、スケジュールされたポーリングコンシューマーのバックオフを許可します。乗数は、実際に次の試行が行われる前にスキップされるポーリングの数です。このオプションを使用する場合は、backoffIdleThreshold や backoffErrorThreshold も設定する必要があります。
|
backoffIdleThreshold
|
0
|
backoffMultipler が開始する前に発生する必要のある後続のアイドルポーリングの数
|
backoffErrorThreshold
|
0
|
backoffMultipler が開始する前に発生すべき後続のエラーポーリングの数(エラーにより失敗する)。
|
補足情報 リンクのコピーリンクがクリップボードにコピーされました!
エクスチェンジプロパティー リンクのコピーリンクがクリップボードにコピーされました!
Exchange に追加します。
|
名前
|
タイプ
|
説明
|
|---|---|---|
Exchange.TIMER_NAME
|
String
|
name オプションの値。
|
Exchange.TIMER_FIRED_TIME
|
Date
|
コンシューマーが実行した時間。
|
例 リンクのコピーリンクがクリップボードにコピーされました!
from("scheduler://foo?period=60s").to("bean:myBean?method=someMethodName");
from("scheduler://foo?period=60s").to("bean:myBean?method=someMethodName");
<route> <from uri="scheduler://foo?period=60s"/> <to uri="bean:myBean?method=someMethodName"/> </route>
<route>
<from uri="scheduler://foo?period=60s"/>
<to uri="bean:myBean?method=someMethodName"/>
</route>
完了するとスケジューラーが即座にトリガーされるように強制します。 リンクのコピーリンクがクリップボードにコピーされました!
スケジューラーがアイドル状態になる リンクのコピーリンクがクリップボードにコピーされました!
Exchange.SCHEDULER_POLLED_MESSAGES を持つエクスチェンジでプロパティーをブール値 false に設定する必要があります。これにより、コンシューマーはポーリングされたメッセージがないことを示します。
第143章 Schematron リンクのコピーリンクがクリップボードにコピーされました!
Schematron コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
schematron://path?[options]
schematron://path?[options]
URI オプション リンクのコピーリンクがクリップボードにコピーされました!
|
名前
|
デフォルト値
|
説明
|
|
path
|
必須
|
schematron ルールファイルへのパス。ファイルシステムのクラスパスまたは場所のいずれかになります。
|
|
強制終了
|
false
|
ルートを中止し、スキーマ検証例外を出力するフラグ。
|
Headers リンクのコピーリンクがクリップボードにコピーされました!
|
名前
|
説明
|
タイプ
|
In/Out
|
|
CamelSchematronValidationStatus
|
schematron 検証ステータス:SUCCESS / FAILED
|
文字列
|
IN
|
|
CamelSchematronValidationReport
|
XML 形式のスキーマレポートボディー。以下の例を参照してください。
|
文字列
|
IN
|
URI およびパス構文 リンクのコピーリンクがクリップボードにコピーされました!
from("direct:start").to("schematron://sch/schematron.sch").to("mock:result")
from("direct:start").to("schematron://sch/schematron.sch").to("mock:result")
Schematron ルールおよびレポートサンプル リンクのコピーリンクがクリップボードにコピーされました!
- Mulleberry テクノロジー による Schematron の概要Schematron を使い始めるための優れたドキュメントです。
- Schematron の公式サイトこれには他のリソースへのリンクが含まれます。
第144章 SEDA リンクのコピーリンクがクリップボードにコピーされました!
SEDA コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
CamelContext インスタンス(Web アプリケーション間の通信など)間で通信する場合は、仮想マシン コンポーネントを参照してください。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
seda:queueName[?options]
seda:queueName[?options]
queueName には、現在の CamelContext 内のエンドポイントを一意に識別する任意の文字列を指定できます。
?option=value&option=value&.. の形式で追加できます。
queueName のみが考慮され、オプション設定は無視されます。つまり、コンシューマーエンドポイントのアイデンティティーは queueName にのみ依存します。複数のコンシューマーを同じキューに割り当てる場合は、「multipleConsumers の使用」 で説明されている方法を使用します。
オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | デフォルト | 説明 |
|---|---|---|
size
|
unbounded | SEDA キューの最大容量(つまり、保持できるメッセージの数)。注: このオプションを使用する場合、キュー名で最初のエンドポイントが作成され、サイズを決定するのは最小限です。すべてのエンドポイントが同じサイズを使用するようにするには、すべてのエンドポイントで size オプションを設定するか、作成される最初のエンドポイントを設定します。Camel 2.11 以降では、同じキュー名に混合キューサイズを使用すると、Camel はこれを検出し、エンドポイントの作成に失敗するように検証が行われます。 |
concurrentConsumers
|
1
|
Apache Camel 1.6.1/2.0: 同時スレッド処理エクスチェンジの数。 |
waitForTaskToComplete
|
IfReplyExpected
|
非同期タスクが完了するまで呼び出し元が待機するかどうかを指定するオプション。Always、Never、または IfReplyExpected の 3 つのオプションがサポートされます。最初の 2 つの値は自己説明です。最後の値 IfReplyExpected は、メッセージが Request Reply-based である場合にのみ待機します。デフォルトのオプションは IfReplyExpected です。非同期メッセージングの詳細は、非同期 メッセージング を参照してください。
|
timeout
|
30000
|
Apache Camel 2.0: Timeout in millis a seda producer will at most waiting for an async task to complete.詳細は、waitForTaskToComplete および Async を参照してください。Camel 2.2 では、0 または負の値を使用してタイムアウトを無効にできるようになりました。
|
multipleConsumers
|
false
|
Camel 2.2: 複数のコンシューマーを許可するかどうかを指定します。有効にすると、メッセージングの公開/サブスクライブスタイルに SEDA を使用できます。SEDA キューにメッセージを送信し、複数のコンシューマーがメッセージのコピーを受信します。 |
limitConcurrentConsumers
|
true
|
Camel 2.3: concurrentConsumers を最大 500 に制限するかどうか。数値が大きい で設定された場合は、例外が発生します。このオプションをオフにすると、このチェックを無効にできます。 |
blockWhenFull
|
false
|
メッセージを完全な SEDA キューに送信するスレッドが、キューの容量が枯渇しなくなるまでブロックされるかどうか。デフォルトでは、キューがいっぱいであることを示す例外が出力されます。このオプションを有効にすると、呼び出しスレッドは代わりにブロックされ、メッセージが受け入れられるまで待機します。 |
queueSize
|
コンポーネントのみ: SEDA キューのデフォルトサイズ(保持可能なメッセージ数の容量)。このオプションは、サイズ が使用されていない場合に使用されます。
|
|
pollTimeout
|
1000
|
コンシューマーのみ: ポーリング時に使用されるタイムアウト。タイムアウトが発生すると、コンシューマーは実行を継続できるかどうかを確認できます。値を低く設定すると、シャットダウン時にコンシューマーがより迅速に対応できるようになります。 |
purgeWhenStopping
|
false
|
コンシューマー/ルートを停止するときにタスクキューをパージするかどうか。キューの保留中のメッセージは破棄されるため、はより迅速に停止できます。 |
queue
|
null
|
seda エンドポイントで使用されるキューインスタンスを定義します。 |
queueFactory
|
null
|
seda エンドポイントのキューを作成できる QueueFactory を定義します。 |
failIfNoConsumers
|
false
|
アクティブなコンシューマーのない SEDA キューに送信する際に、プロデューサーが例外を出力して失敗するかどうか。オプション discardIfNoConsumers と failIfNoConsumers を同時に有効にできるのは 1 つだけです。
|
discardIfNoConsumers
|
false
|
アクティブなコンシューマーのない SEDA キューに送信する際に、プロデューサーがメッセージを破棄するかどうか(メッセージをキューに追加しないでください)。オプション discardIfNoConsumers と failIfNoConsumers を同時に有効にできるのは 1 つだけです。
|
BlockingQueue 実装の選択 リンクのコピーリンクがクリップボードにコピーされました!
リクエスト応答の使用 リンクのコピーリンクがクリップボードにコピーされました!
from("mina:tcp://0.0.0.0:9876?textline=true&sync=true").to("seda:input");
from("seda:input").to("bean:processInput").to("bean:createResponse");
from("mina:tcp://0.0.0.0:9876?textline=true&sync=true").to("seda:input");
from("seda:input").to("bean:processInput").to("bean:createResponse");
seda:input キューにルーティングされます。Request Reply メッセージであるため、応答を待ちます。seda:input キューのコンシューマーが完了すると、応答が元のメッセージの応答にコピーされます。
同時コンシューマー リンクのコピーリンクがクリップボードにコピーされました!
from("seda:stageName?concurrentConsumers=5").process(...)
from("seda:stageName?concurrentConsumers=5").process(...)
スレッドプールと同時コンシューマーの違い リンクのコピーリンクがクリップボードにコピーされました!
スレッドプール リンクのコピーリンクがクリップボードにコピーされました!
from("seda:stageName").thread(5).process(...)
from("seda:stageName").thread(5).process(...)
BlockQueues と、スレッドプールの workqueue からの 1 つで優先され、望ましいものではない可能性があります。代わりに、スレッドプールで Direct エンドポイントを設定することを検討してください。これは、同期的かつ非同期的にメッセージを処理できます。以下に例を示します。
from("direct:stageName").thread(5).process(...)
from("direct:stageName").thread(5).process(...)
concurrentConsumers オプションを使用して SEDA エンドポイントでメッセージを処理するスレッド数を直接設定することもできます。
例 リンクのコピーリンクがクリップボードにコピーされました!
Object out = template.requestBody("direct:start", "Hello World");
assertEquals("OK", out);
Object out = template.requestBody("direct:start", "Hello World");
assertEquals("OK", out);
モック エンドポイントに送信されます。
multipleConsumers の使用 リンクのコピーリンクがクリップボードにコピーされました!
キュー情報の抽出。 リンクのコピーリンクがクリップボードにコピーされました!
SedaEndpoint seda = context.getEndpoint("seda:xxxx");
int size = seda.getExchanges().size()
SedaEndpoint seda = context.getEndpoint("seda:xxxx");
int size = seda.getExchanges().size()
第145章 ServiceNow リンクのコピーリンクがクリップボードにコピーされました!
ServiceNow コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-servicenow</artifactId>
<version>${camel-version}</version>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-servicenow</artifactId>
<version>${camel-version}</version>
</dependency>
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
servicenow://InstanceName[?Options]
servicenow://InstanceName[?Options]
オプション リンクのコピーリンクがクリップボードにコピーされました!
|
名前
|
デフォルト値
|
説明
|
|---|---|---|
userName
|
null
|
認証に使用するユーザー名
|
password
|
null
|
認証に使用するパスワード |
oauthClientId
|
null
|
OAuth2 クライアント ID |
oauthClientSecret
|
null
|
OAuth2 クライアントシークレット |
oauthTokenUrl
|
https://incenceName.service-now.com/oauth_token.do
|
OAuth2 トークン URL |
apiUrl
|
https://incenceName.service-now.com/api/now
|
ServiceNow API URL |
table
|
null
|
デフォルトのテーブルはヘッダー CamelServiceNowTable で上書きできます。 |
excludeReferenceLink
|
false
|
true: 参照フィールドのテーブル API リンクを除外する |
suppressAutoSysField
|
false
|
True: システムフィールドの自動生成を抑制します。 |
displayValue
|
false
|
参照フィールドの表示値(true)、実際の値(false)、またはその両方(すべて)を返します(デフォルト:false)。
|
inputDisplayValue
|
false
|
true: 入力フィールドに raw 値を設定します。 |
models
|
null
|
テーブルに使用するデフォルトのモデルを定義します(model.incident = my.company.model.Incident)。 |
mapper
|
ServiceNow コンポーネントは Jackson Databind を使用してリクエスト/応答を Json との間で変換し、カスタム ObjectMapper を指定してその実行方法をカスタマイズできます。 |
Headers リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | タイプ | 説明 |
|---|---|---|
CamelServiceNowResource
|
String
|
TABLE、AGGREGATE、IMPORTにアクセスするためのリソース |
CamelServiceNowTable
|
String
|
アクセスするテーブル
|
CamelServiceNowAction
|
String
|
RETRIEVE、CREATE、MODIFY、DELETE、UPDATE を実行するアクション
|
CamelServiceNowModel
|
Class
|
データモデル |
CamelServiceNowSysId
|
String
|
ServiceNow sysy_id |
CamelServiceNowQuery
|
String
|
エンコードされたクエリー |
CamelServiceNowDisplayValue
|
String
|
参照フィールドの表示値(true)、実際の値(false)、またはその両方(すべて)を返します(デフォルト:false)。 |
CamelServiceNowInputDisplayValue
|
Boolean
|
true: 入力フィールドに raw 値を設定します。 |
CamelServiceNowExcludeReferenceLink
|
Boolean
|
true: 参照フィールドのテーブル API リンクを除外する |
CamelServiceNowFields
|
String
|
応答で返すコンマ区切りのフィールド名 |
CamelServiceNowMinFields
|
String
|
最小値を計算するフィールドのコンマ区切りリスト |
CamelServiceNowMaxFields
|
String
|
最大値を計算するフィールドのコンマ区切りリスト |
CamelServiceNowSumFields
|
String
|
値の合計を計算するフィールドのコンマ区切りリスト |
CamelServiceNowLimit
|
Integer
|
ページネーションに適用される制限 |
CamelServiceNowView
|
String
|
UI ビュー。応答で返されるフィールドを決定します。 |
CamelServiceNowSuppressAutoSysField
|
Boolean
|
True: システムフィールドの自動生成を抑制します。 |
CamelServiceNowAvgFields
|
String
|
平均値を計算するフィールドのコンマ区切りリスト |
CamelServiceNowCount
|
Boolean
|
ブール値フラグ。クエリーによって返されるレコードの数については、このパラメーターを true に設定します。 |
CamelServiceGroupBy
|
String
|
返されたデータをグループ化するフィールド |
CamelServiceOrderBy
|
String
|
グループ化された結果を順序付ける値の一覧 |
CamelServiceHaving
|
String
|
集約操作に基づいてデータをフィルターリングできる追加のクエリー |
使用例 リンクのコピーリンクがクリップボードにコピーされました!
第146章 SERVLET リンクのコピーリンクがクリップボードにコピーされました!
Servlet コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
pom.xml に以下の依存関係を追加する必要があります。
Camel on EAP デプロイメント リンクのコピーリンクがクリップボードにコピーされました!
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
servlet://relative_path[?options]
servlet://relative_path[?options]
?option=value&option=value&.. の形式で追加できます。
オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | デフォルト値 | 説明 |
|---|---|---|
httpBindingRef
|
null
|
レジストリーの org.apache.camel.component.http.HttpBinding への参照。HttpBinding 実装を使用して、応答の作成方法をカスタマイズできます。
|
httpBinding
|
null
|
Camel 2.16: レジストリー の org.apache.camel.component.http.HttpBinding への 参照。HttpBinding 実装を使用して、応答の作成方法をカスタマイズできます。
|
matchOnUriPrefix
|
false
|
完全に一致するものが見つからない場合に、CamelServlet が URI 接頭辞と一致することでターゲットコンシューマーの検索を試みるかどうか。
|
servletName
|
CamelServlet
|
サーブレットエンドポイントがバインドするサーブレット名を指定します。サーブレット名が指定されていない場合、サーブレットエンドポイントは最初に公開されたサーブレットにバインドされます。 |
httpMethodRestrict
|
null
|
Camel 2.11: (コンシューマーのみ) HttpMethod が一致する場合にのみ消費できるようにするために使用されます(例: GET/POST/PUT など)。Camel 2.15 以降では、複数のメソッドをコンマで区切って指定できます。
|
メッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
request.parameter および request.headers も設定します。たとえば、クライアント要求に URL http://myserver/myserver?orderid=123 がある場合、エクスチェンジには orderid という名前のヘッダー(値が 123)が含まれます。
使用方法 リンクのコピーリンクがクリップボードにコピーされました!
Camel JAR のアプリケーションサーバーブートクラスパスへの配置 リンクのコピーリンクがクリップボードにコピーされました!
camel-core、camel-servlet などの Camel JAR を配置する場合、サーブレットマッピングリストがアプリケーションサーバーの複数のデプロイ済み Camel アプリケーション間で共有されることに注意してください。
web.xml では以下を定義します。
<route> <from uri="servlet://foo?servletName=MyServlet"/> ... </route>
<route>
<from uri="servlet://foo?servletName=MyServlet"/>
...
</route>
例 リンクのコピーリンクがクリップボードにコピーされました!
http://localhost:8080/camel/services/hello で HTTP サービスを公開するルートを定義します。まず、通常の Web コンテナーまたは OSGi サービスを介して CamelHttpTransportServlet を公開する必要があります。Web.xml ファイルを使用して、以下のように CamelHttpTransportServlet を公開します。
camel-servlet エンドポイントは相対パスを使用してエンドポイントの URL を指定します。クライアントはサーブレットパブリッシュアドレス ("http://localhost:8080/camel/services")+ RELATIVE_PATH ("/hello") を介して camel-servlet エンドポイントにアクセスできます。
Spring 3.x を使用する場合の例 リンクのコピーリンクがクリップボードにコピーされました!
examples/camel-example-servlet-tomcat ディレクトリーにあります。Web コンテナーに Servlet コンポーネントをデプロイする場合は、WEB-INF/web.xml ファイルに Spring ContextLoaderListener インスタンスを作成して、Spring アプリケーションコンテキストを明示的に作成する必要があります。
camel-config.xml ファイルから Spring 定義( camelContext およびルート定義を含む)を読み込む Spring アプリケーションコンテキストを作成するには、以下のように web.xml ファイルを定義します。
Spring 2.x を使用する場合の例 リンクのコピーリンクがクリップボードにコピーされました!
ContextLoaderListener の代わりに Spring の ContextLoaderServlet を使用して実行できます。その場合、以下のように CamelHttpTransportServlet の後に ContextLoaderServlet を起動する必要があります。
OSGi を使用する場合の例 リンクのコピーリンクがクリップボードにコピーされました!
Activator を使用して、OSGi プラットフォームで CamelHttpTransportServlet を公開できます。
第147章 ServletListener Component リンクのコピーリンクがクリップボードにコピーされました!
ServletListener Component リンクのコピーリンクがクリップボードにコピーされました!
pom.xml に以下の依存関係を追加する必要があります。
使用 リンクのコピーリンクがクリップボードにコピーされました!
org.apache.camel.component.servletlistener.CamelServletContextListener の以下の実装のいずれかを選択する必要があります。
JndiRegistryを使用してレジストリーに JNDI を利用するJndiCamelServletContextListener。SimpleRegistryを使用してjava.util.Mapをレジストリーとして使用するSimpleCamelServletContextListener。
WEB-INF/web.xml ファイルで org.apache.camel.component.servletlistener.CamelServletContextListener を設定する必要があります。
オプション リンクのコピーリンクがクリップボードにコピーされました!
org.apache.camel.component.servletlistener.CamelServletContextListener は、web.xml ファイルで context-param として設定できる以下のオプションをサポートします。
| オプション | タイプ | 説明 |
|---|---|---|
| propertyPlaceholder.XXX | Camel で プロパティープレースホルダー を設定します。オプションの前に "propertyPlaceholder." を付ける必要があります。たとえば、場所を設定するには、propertyPlaceholder.location を名前として使用します。Properties コンポーネントからすべてのオプションを設定できます。 | |
| jmx.XXX |
JMX を設定します。JMX を無効にするには、オプションの前に "jmx." を付ける必要があります。たとえば、jmx.disabled を名前として使用します。org.apache.camel.spi.ManagementAgent からすべてのオプションを設定できます。JMX ページに記載されているオプションも併せて参照してください。
|
|
| name |
文字列
|
CamelContext の名前を設定するには、以下を行います。 |
| messageHistory |
ブール値
|
Camel 2.12.2: メッセージ 履歴を有効または無効に するかどうか(デフォルトで有効)。 |
| streamCache |
ブール値
|
Stream Caching を有効にするかどうか。 |
| trace |
ブール値
|
トレーサー を有効にするかどうか。 |
| delayer |
Long
|
Delay Interceptor の遅延値を設定するには、以下を実行します。 |
| handleFault |
ブール値
|
障害の処理を有効にするかどうか。 |
| errorHandlerRef |
文字列
|
使用するコンテキストスコープの エラーハンドラー を参照します。 |
| autoStartup |
ブール値
|
Camel の起動時にすべてのルートを起動するかどうか。 |
| useMDCLogging |
ブール値
|
MDC ロギング を使用するかどうか。 |
| useBreadcrumb |
ブール値
|
ブレッドクラム を使用するかどうか。 |
| managementNamePattern |
文字列
|
JMX MBean のカスタム命名パターンを設定します。 |
| threadNamePattern |
文字列
|
スレッドにカスタムの命名パターンを設定します。 |
| properties.XXX |
CamelContext.getProperties にカスタムプロパティーを設定するには、以下を行います。これはほとんど使用されません。
|
|
| routebuilder.XXX | 使用するルートを設定します。詳細は、こちらを参照してください。 | |
| CamelContextLifecycle |
org.apache.camel.component.servletlistener.CamelContextLifecycle の実装の FQN クラス名を参照します。これにより、CamelContext が起動または停止された前後にカスタムコードを実行できます。詳細は、以下を参照してください。
|
|
| XXX | CamelContext にオプションを設定するには、以下を行います。 |
例 リンクのコピーリンクがクリップボードにコピーされました!
ルートの設定 リンクのコピーリンクがクリップボードにコピーされました!
RouteBuilder クラスの使用 リンクのコピーリンクがクリップボードにコピーされました!
<context-param>
<param-name>routeBuilder-MyRoute</param-name>
<param-value>org.apache.camel.component.servletlistener.MyRoute</param-value>
</context-param>
<context-param>
<param-name>routeBuilder-MyRoute</param-name>
<param-value>org.apache.camel.component.servletlistener.MyRoute</param-value>
</context-param>
パッケージスキャンの使用 リンクのコピーリンクがクリップボードにコピーされました!
XML ファイルの使用 リンクのコピーリンクがクリップボードにコピーされました!
<context-param>
<param-name>routeBuilder-MyRoute</param-name>
<param-value>classpath:routes/myRoutes.xml</param-value>
</context-param>
<context-param>
<param-name>routeBuilder-MyRoute</param-name>
<param-value>classpath:routes/myRoutes.xml</param-value>
</context-param>
適切なプレースホルダーの設定 リンクのコピーリンクがクリップボードにコピーされました!
myproperties.properties を読み込むプロパティープレースホルダーを設定するための web.xml 設定のスニペットです。
JMX の設定 リンクのコピーリンクがクリップボードにコピーされました!
JNDI または Camel レジストリーとしての Simple リンクのコピーリンクがクリップボードにコピーされました!
org.apache.camel.component.servletlistener.CamelContextLifecycle を実装して Java コードから実行されます。
カスタム CamelContextLifecycle の使用 リンクのコピーリンクがクリップボードにコピーされました!
beforeStart および afterStop コールバックを使用して Simple レジストリーでカスタム Bean を登録し、停止時にクリーンアップします。
org.apache.camel.component.servletlistener.CamelContextLifecycle インターフェイスを実装するクラスを参照する FQN である必要があります。
<context-param>
<param-name>CamelContextLifecycle</param-name>
<param-value>org.apache.camel.component.servletlistener.MyLifecycle</param-value>
</context-param>
<context-param>
<param-name>CamelContextLifecycle</param-name>
<param-value>org.apache.camel.component.servletlistener.MyLifecycle</param-value>
</context-param>
org.apache.camel.component.servletlistener.JndiCamelServletContextListener を使用する場合は、CamelContextLifecycle も JndiRegistry を使用する必要があります。サーブレットが org.apache.camel.component.servletlistener.SimpleCamelServletContextListener の場合と同様に、CamelContextLifecycle は SimpleRegistryを使用する必要があります。
第148章 Shiro セキュリティー リンクのコピーリンクがクリップボードにコピーされました!
Shiro セキュリティーコンポーネント リンクのコピーリンクがクリップボードにコピーされました!
pom.xml に以下の依存関係を追加する必要があります。
Shiro セキュリティーの基本 リンクのコピーリンクがクリップボードにコピーされました!
ShiroSecurityPolicy オブジェクトのインスタンス化 リンクのコピーリンクがクリップボードにコピーされました!
ShiroSecurityPolicy Options リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | デフォルト値 | 型 | 説明 |
|---|---|---|---|
iniResourcePath または ini
|
none
|
リソース文字列または Ini オブジェクト | iniResourcePath または Ini オブジェクトのインスタンスの必須の Resource String をセキュリティーポリシーに渡す必要があります。"file:, classpath:, url:" で始まる場合は、ファイルシステム、クラスパス、または URL からそれぞれリソースを取得できます。例:"classpath:shiro.ini" |
passPhrase
|
AES 128 ベースのキー
|
byte[] | メッセージエクスチェンジとともに送信される ShiroSecurityToken (s)を復号化する passPhrase |
alwaysReauthenticate
|
true
|
boolean | を設定して、個々のリクエストで再認証できるようにします。false に設定すると、ユーザーは認証され、今後実行する同じユーザーからの要求のみではなく認証およびロックされます。 |
permissionsList
|
none
|
List<Permission> | 認証されたユーザーが追加のアクションを実行できるようにするために必要なパーミッションのリスト。つまり、ルートでさらに続行されます。ShiroSecurityPolicy オブジェクトに Permissions リストが提供されていない場合、承認は不要であると判断されます。 |
cipherService
|
AES
|
org.apache.shiro.crypto.CipherService | Shiro には AES および Blowfish ベースの CipherServices が同梱されています。これらは 1 つ使用することも、独自の暗号実装で渡すこともできます。 |
base64
|
false
|
boolean
|
Camel 2.12: セキュリティートークンヘッダーに base64 エンコーディングを使用します。これにより、JMS でのヘッダーの転送が可能になります。このオプションは ShiroSecurityTokenInjector でも設定する必要があります。
|
Camel ルートでの Shiro 認証の適用 リンクのコピーリンクがクリップボードにコピーされました!
Camel ルートでの Shiro 承認の適用 リンクのコピーリンクがクリップボードにコピーされました!
ShiroSecurityToken を作成し、メッセージエクスチェンジに注入する リンクのコピーリンクがクリップボードにコピーされました!
ShiroSecurityPolicy でセキュリティーが保護されたルートへのメッセージ送信 リンクのコピーリンクがクリップボードにコピーされました!
ShiroSecurityPolicy によってセキュリティーが保護されたルートへのメッセージ送信(Camel 2.12 以降により簡単) リンクのコピーリンクがクリップボードにコピーされました!
ShiroSecurityToken の使用 リンクのコピーリンクがクリップボードにコピーされました!
org.apache.camel.component.shiro.security.Shiro.security.ShiroSecurityToken タイプのキー ShiroSecurityConstants. SHIRO_SECURITY_TOKEN のヘッダーを持つ Camel ルートにメッセージを送信することができます。以下に例を示します。
ShiroSecurityToken shiroSecurityToken = new ShiroSecurityToken("ringo", "starr");
template.sendBodyAndHeader("direct:secureEndpoint", "Beatle Mania", ShiroSecurityConstants.SHIRO_SECURITY_TOKEN, shiroSecurityToken);
ShiroSecurityToken shiroSecurityToken = new ShiroSecurityToken("ringo", "starr");
template.sendBodyAndHeader("direct:secureEndpoint", "Beatle Mania", ShiroSecurityConstants.SHIRO_SECURITY_TOKEN, shiroSecurityToken);
Map<String, Object> headers = new HashMap<String, Object>();
headers.put(ShiroSecurityConstants.SHIRO_SECURITY_USERNAME, "ringo");
headers.put(ShiroSecurityConstants.SHIRO_SECURITY_PASSWORD, "starr");
template.sendBodyAndHeaders("direct:secureEndpoint", "Beatle Mania", headers);
Map<String, Object> headers = new HashMap<String, Object>();
headers.put(ShiroSecurityConstants.SHIRO_SECURITY_USERNAME, "ringo");
headers.put(ShiroSecurityConstants.SHIRO_SECURITY_PASSWORD, "starr");
template.sendBodyAndHeaders("direct:secureEndpoint", "Beatle Mania", headers);
ShiroSecurityToken インスタンスです(後者は base64=true を設定する場合です)。
第149章 sip リンクのコピーリンクがクリップボードにコピーされました!
SIP コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
pom.xml に以下の依存関係を追加する必要があります。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
sip://johndoe@localhost:99999[?options] sips://johndoe@localhost:99999/[?options]
sip://johndoe@localhost:99999[?options]
sips://johndoe@localhost:99999/[?options]
?option=value&option=value&.. の形式で追加できます。
オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | デフォルト値 | 説明 |
|---|---|---|
stackName
|
NAME_NOT_SET
|
SIP エンドポイントに関連付けられた SIP Stack インスタンスの名前。 |
transport
|
tcp
|
Configuring for choice of transport potocol.有効な選択肢は tcp またはudp です。 |
fromUser
|
メッセージの送信元のユーザー名。レジストリーベースのカスタム FromHeader が指定されていない限り、必須設定。 | |
fromHost
|
メッセージの送信元のホスト名。レジストリーベースの FromHeader が指定されていない限りの設定 | |
fromPort
|
メッセージの送信元のポート。レジストリーベースの FromHeader が指定されていない限りの設定 | |
toUser
|
メッセージレシーバーのユーザー名。レジストリーベースのカスタム ToHeader が指定されていない限りの設定。 | |
toHost
|
メッセージレシーバーのホスト名。レジストリーベースの ToHeader が指定されていない限りの設定 | |
toPort
|
メッセージレシーバーの portName。レジストリーベースの ToHeader が指定されていない限りの設定 | |
maxforwards
|
0 | メッセージをメッセージの受信者に転送することができる中間者の数。オプションの設定。または、をレジストリーベースの MaxForwardsHeader として使用して設定することもできます。 |
eventId
|
文字列ベースのイベント ID の設定。レジストリーベースの FromHeader が指定されていない限りの設定 | |
eventHeaderName
|
文字列ベースのイベント ID の設定。レジストリーベースの FromHeader が指定されていない限りの設定 | |
maxMessageSize
|
1048576
|
最大許容メッセージサイズ(バイト単位)の設定。 |
cacheConnections
|
false
|
接続作成のコストを削減するには、SipStack が接続をキャッシュする必要があります。これは、接続が長時間実行される会話に使用される場合に便利です。 |
consumer
|
false
|
この設定は、このエンドポイントに作成する必要があるヘッダーの種類(FromHeader、ToHeader など)を決定するために使用されます。 |
automaticDialogSupport
|
off
|
を設定し、すべての通信をダイアログに関連付けるかどうかを指定します。 |
contentType
|
text
|
contentType の設定は、有効な MimeType に設定できます。 |
contentSubType
|
xml
|
contentSubType の設定は、有効な MimeSubType に設定できます。 |
receiveTimeoutMillis
|
10000
|
応答や確認応答を待機する時間を指定するための設定は、別の SIP スタックから受信できます。 |
useRouterForAllUris
|
false
|
この設定は、要求がプロキシー経由で Presence Agent に送信される場合に使用されます。 |
msgExpiration
|
3600
|
エンドポイントで受信されるメッセージが有効とみなされる時間 |
presenceAgent
|
false
|
この設定は、Presence Agent とコンシューマー間の非表示に使用されます。これは、SIP Camel コンポーネントに基本的な Presence Agent (テスト目的のみ)が同梱されるという事実によるものです。コンシューマーはこのフラグを true に設定する必要があります。 |
レジストリーベースのオプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 説明 |
|---|---|
fromHeader
|
メッセージ送信元設定を含むカスタム Header オブジェクト。タイプ javax.sip.header.FromHeader を実装する必要があります。 |
toHeader
|
メッセージのレシーバー設定を含むカスタム Header オブジェクト。タイプ javax.sip.header.ToHeader を実装する必要があります。 |
viaHeaders
|
javax.sip.header.ViaHeader タイプのカスタム Header オブジェクトのリスト。各 ViaHeader には要求転送のプロキシーアドレスが含まれます。(リクエストがリスナーに到達すると、このヘッダーは各プロキシーによって自動的に更新されます) |
contentTypeHeader
|
メッセージコンテンツの詳細を含むカスタム Header オブジェクト。タイプ javax.sip.header.ContentTypeHeader を実装する必要があります。 |
callIdHeader
|
呼び出しの詳細を含むカスタム Header オブジェクト。タイプ javax.sip.header.CallIdHeader を実装する必要があります。 |
maxForwardsHeader
|
最大プロキシー転送の詳細を含むカスタム Header オブジェクト。このヘッダーは viaHeaders に上限を設定します。タイプ javax.sip.header.MaxForwardsHeader を実装する必要があります。 |
eventHeader
|
イベントの詳細を含むカスタム Header オブジェクト。タイプ javax.sip.header.EventHeader を実装する必要があります。 |
contactHeader
|
詳細な連絡先情報が含まれるオプションのカスタム Header オブジェクト(メール、電話番号など)。タイプ javax.sip.header.ContactHeader を実装する必要があります。 |
expiresHeader
|
メッセージの有効期限情報が含まれるカスタム Header オブジェクト。タイプ javax.sip.header.ExpiresHeader を実装する必要があります。 |
extensionHeader
|
ユーザー/アプリケーション固有の詳細を含むカスタム Header オブジェクト。タイプ javax.sip.header.ExtensionHeader を実装する必要があります。 |
SIP エンドポイントとの間でメッセージを送信 リンクのコピーリンクがクリップボードにコピーされました!
Camel SIP パブリッシャーの作成 リンクのコピーリンクがクリップボードにコピーされました!
- client という名前の SIP スタックの使用
- evtHdrName というレジストリーベースの eventHeader の使用
- evtId というレジストリーベースの eventId の使用
- リスナーが user2@localhost:3534 として設定された SIP スタックから
- 公開されるイベントは EVENT_A です。
- REQUEST_METHOD と呼ばれる必須ヘッダーは Request.Publish に設定され、エンドポイントを Event パブリッシャーとして設定します。
Camel SIP Subscriber の作成 リンクのコピーリンクがクリップボードにコピーされました!
- Subscriber という名前の SIP スタックの使用
- agent@localhost:5152 という Presence Agent ユーザーへの登録
- evtHdrName というレジストリーベースの eventHeader の使用。evtHdrName には、Event_A に属するイベントが含まれます。
- evtId というレジストリーベースの eventId の使用
第150章 SJMS リンクのコピーリンクがクリップボードにコピーされました!
SJMS コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
- 標準キューとトピックサポート(Durable & Non-Durable)
- InOnly & InOut MEPのサポート
- 非同期プロデューサーおよびコンシューマー処理
- 内部 JMS トランザクションサポート
- プラグイン可能な接続リソース管理
- セッション、コンシューマー、プロデューサープーリングおよびキャッシング管理
- バッチコンシューマーおよびプロデューサー
- トランザクションバッチコンシューマーおよびプロデューサー
- カスタマイズ可能なトランザクションのコミットストラテジーのサポート(ローカル JMS トランザクションのみ)
pom.xml に以下の依存関係を追加する必要があります。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
sjms:[queue:|topic:]destinationName[?options]
sjms:[queue:|topic:]destinationName[?options]
destinationName は JMS キューまたはトピック名です。デフォルトでは、destinationName はキュー名として解釈されます。たとえば、キューに接続するには、FOO.BAR を次のように使用します。
sjms:FOO.BAR
sjms:FOO.BAR
queue: 接頭辞を含めることができます。
sjms:queue:FOO.BAR
sjms:queue:FOO.BAR
topic: 接頭辞を含める 必要があり ます。たとえば、Stocks.Prices トピックに接続するには、以下を使用します。
sjms:topic:Stocks.Prices
sjms:topic:Stocks.Prices
?option=value&option=value&.. という形式を使用して、URI にクエリーオプションを追加します。
コンポーネントのオプションおよび設定 リンクのコピーリンクがクリップボードにコピーされました!
| オプション | 必須 | デフォルト値 | 説明 |
|---|---|---|---|
connectionCount
|
1
|
このコンポーネントで起動したエンドポイントが使用できる接続の最大数 | |
connectionFactory
|
(/) |
null
|
SjmsComponent を有効にするには ConnectionFactory が必要です。これは直接設定するか、ConnectionResource の一部として設定できます。 |
connectionResource
|
null
|
ConnectionResource は、ConnectionFactory のカスタマイズおよびコンテナー制御を可能にするインターフェイスです。詳細は、プラグイン可能な接続リソース管理 を参照してください。 | |
headerFilterStrategy
|
DefaultJmsKeyFormatStrategy
|
||
jmsKeyFormatStrategy
|
DefaultJmsKeyFormatStrategy
|
Camel 2.16: JMS キーをエンコードおよびデコードするための Pluggable ストラテジー。JMS 仕様に準拠できるようにします。Camel は、追加設定なしで default と passthrough の 2 つの実装を提供します。default ストラテジーは、ドットとハイフン(. および -)を安全にマーシャリングします。passthrough ストラテジーはキーをそのまま残します。JMS ヘッダーキーに不正な文字が含まれているかどうかは問題にならない JMS ブローカーに使用できます。org.apache.camel.component.jms.JmsKeyFormatStrategy の独自の実装を提供し、# 表記を使用して参照できます。
|
|
transactionCommitStrategy
|
null
|
||
DestinationCreationStrategy
|
DefaultDestinationCreationStrategy
|
Camel 2.15.0: SJMS コンポーネントでカスタム DestinationCreationStrategy を設定できる ようにします。
|
|
messageCreatedStrategy
|
Camel 2.16: Camel が JMS メッセージを送信するときに Camel が javax.jms.Message オブジェクトの新規インスタンスを作成する際に呼び出される指定の MessageCreatedStrategy を使用します。
|
SjmsComponent component = new SjmsComponent();
component.setConnectionFactory(new ActiveMQConnectionFactory("tcp://localhost:61616"));
getContext().addComponent("sjms", component);
SjmsComponent component = new SjmsComponent();
component.setConnectionFactory(new ActiveMQConnectionFactory("tcp://localhost:61616"));
getContext().addComponent("sjms", component);
プロデューサー設定オプション リンクのコピーリンクがクリップボードにコピーされました!
| オプション | デフォルト値 | 説明 |
|---|---|---|
acknowledgementMode
|
AUTO_ACKNOWLEDGE
|
SESSION_TRANSACTED、AUTO_ACKNOWLEDGE または DUPS_OK_ACKNOWLEDGE のいずれかである JMS の確認名。現時点では、CLIENT_ACKNOWLEDGE はサポートされません。
|
consumerCount
|
1
|
InOut のみ。応答コンシューマー用の MessageListener インスタンスの数を定義します。 |
exchangePattern
|
InOnly
|
Producers メッセージ交換パターンを設定します。 |
namedReplyTo
|
null
|
InOut のみ。応答の宛先への名前付き応答を指定します。 |
永続
|
true
|
メッセージを永続化を有効にして配信するかどうか。 |
producerCount
|
1
|
MessageProducer インスタンスの数を定義します。 |
responseTimeOut
|
5000
|
InOut のみ。InOut Producer が応答を待つ時間を指定します。 |
同期
|
true
|
Endpoint が同期または非同期処理を使用するかどうかを設定します。 |
transacted
|
false
|
エンドポイントが JMS セッショントランザクションを使用する場合。 |
ttl
|
-1
|
デフォルトでは無効にされています。Message time を live ヘッダーに設定します。 |
prefillPool
|
true
|
Camel 2.14: 起動時にプロデューサー接続プールを事前に入力するか、または必要に応じてコネクションの遅延を作成するかどうか。 |
allowNullBody
|
true
|
Camel 2.15.1: ボディーのないメッセージの送信を許可するかどうか。false とメッセージボディーが null の場合は、JMSException が出力されます。
|
mapJmsMessage
|
true
|
Camel 2.16: Camel が受信した JMS メッセージを javax.jms.TextMessage や String などの適切なペイロードタイプに自動的にマップするかどうかを指定します。
|
messageCreatedStrategy
|
Camel 2.16: Camel が JMS メッセージを送信するときに Camel が javax.jms.Message オブジェクトの新規インスタンスを作成する際に呼び出される指定の MessageCreatedStrategy を使用します。
|
|
jmsKeyFormatStrategy
|
Camel 2.16: JMS キーをエンコードおよびデコードするための Pluggable ストラテジー。JMS 仕様に準拠できるようにします。Camel は、追加設定なしで default と passthrough の 2 つの実装を提供します。default ストラテジーは、ドットとハイフン(. および -)を安全にマーシャリングします。passthrough ストラテジーはキーをそのまま残します。JMS ヘッダーキーに不正な文字が含まれているかどうかは問題にならない JMS ブローカーに使用できます。org.apache.camel.component.jms.JmsKeyFormatStrategy の独自の実装を提供し、# 表記を使用して参照できます。
|
|
includeAllJMSXProperties
|
Camel 2.16: JMS から Camel Message にマッピングするときに、すべての JMSXxxx プロパティーを含めるかどうか。これを true に設定すると、JMSXAppID や JMSXUserID などのプロパティーが含まれます。注記:カスタムの headerFilterStrategy を使用している場合、このオプションは適用されません。
|
プロデューサーの使用 リンクのコピーリンクがクリップボードにコピーされました!
InOnly Producer -(デフォルト) リンクのコピーリンクがクリップボードにコピーされました!
from("direct:start")
.to("sjms:queue:bar");
from("direct:start")
.to("sjms:queue:bar");
InOut プロデューサー リンクのコピーリンクがクリップボードにコピーされました!
exchangePattern 属性を追加します。デフォルトでは、コンシューマーごとに専用の TemporaryQueue を使用します。
from("direct:start")
.to("sjms:queue:bar?exchangePattern=InOut");
from("direct:start")
.to("sjms:queue:bar?exchangePattern=InOut");
namedReplyTo を指定できますが、これによりモニターポイントが改善されます。
from("direct:start")
.to("sjms:queue:bar?exchangePattern=InOut&namedReplyTo=my.reply.to.queue");
from("direct:start")
.to("sjms:queue:bar?exchangePattern=InOut&namedReplyTo=my.reply.to.queue");
コンシューマー設定オプション リンクのコピーリンクがクリップボードにコピーされました!
| オプション | デフォルト値 | 説明 |
|---|---|---|
acknowledgementMode
|
AUTO_ACKNOWLEDGE
|
TRANSACTED、AUTO_ACKNOWLEDGE または DUPS_OK_ACKNOWLEDGE のいずれかである JMS の確認名。現時点では、CLIENT_ACKNOWLEDGE はサポートされません。
|
consumerCount
|
1
|
MessageListener インスタンスの数を定義します。 |
durableSubscriptionId
|
null
|
永続サブスクリプションに必要です。 |
exchangePattern
|
InOnly
|
Consumers メッセージ交換パターンを設定します。 |
messageSelector
|
null
|
メッセージセレクターを設定します。 |
同期
|
true
|
Endpoint が同期または非同期処理を使用するかどうかを設定します。 |
transacted
|
false
|
エンドポイントが JMS セッショントランザクションを使用する場合。 |
transactionBatchCount
|
1
|
ローカル JMS トランザクションをコミットする前に処理するエクスチェンジの数。トランザクション プロパティーも true に設定する必要があります。そうしないと、このプロパティーは無視されます。
|
transactionBatchTimeout
|
5000
|
消費済み内容をコミットする前にトランザクションがメッセージ間で開いたままになる時間。最小値は 1000ms です。 |
ttl
|
\-1
|
デフォルトでは無効にされています。Message time を live ヘッダーに設定します。 |
コンシューマーの使用 リンクのコピーリンクがクリップボードにコピーされました!
InOnly Consumer: (デフォルト) リンクのコピーリンクがクリップボードにコピーされました!
from("sjms:queue:bar")
.to("mock:result");
from("sjms:queue:bar")
.to("mock:result");
InOut コンシューマー リンクのコピーリンクがクリップボードにコピーされました!
exchangePattern 属性を追加します。
from("sjms:queue:in.out.test?exchangePattern=InOut")
.transform(constant("Bye Camel"));
from("sjms:queue:in.out.test?exchangePattern=InOut")
.transform(constant("Bye Camel"));
高度な使用方法に関する注意点 リンクのコピーリンクがクリップボードにコピーされました!
プラグイン可能な接続リソース管理 リンクのコピーリンクがクリップボードにコピーされました!
CamelContext camelContext = new DefaultCamelContext();
AMQConnectionResource pool = new AMQConnectionResource("tcp://localhost:33333", 1);
SjmsComponent component = new SjmsComponent();
component.setConnectionResource(pool);
camelContext.addComponent("sjms", component);
CamelContext camelContext = new DefaultCamelContext();
AMQConnectionResource pool = new AMQConnectionResource("tcp://localhost:33333", 1);
SjmsComponent component = new SjmsComponent();
component.setConnectionResource(pool);
camelContext.addComponent("sjms", component);
セッション、コンシューマー、プロデューサープーリングおよびキャッシング管理 リンクのコピーリンクがクリップボードにコピーされました!
バッチメッセージのサポート リンクのコピーリンクがクリップボードにコピーされました!
template.sendBody("sjms:queue:batch.queue", messages);
template.sendBody("sjms:queue:batch.queue", messages);
カスタマイズ可能なトランザクションのコミットストラテジー(ローカル JMS トランザクションのみ) リンクのコピーリンクがクリップボードにコピーされました!
トランザクションバッチコンシューマーおよびプロデューサー リンクのコピーリンクがクリップボードにコピーされました!
transacted パラメーターを true に設定し、transactionBatchCount を追加し、これを 0 より大きい値に設定します。たとえば、以下の設定は 10 メッセージごとに Session をコミットします。
sjms:queue:transacted.batch.consumer?transacted=true&transactionBatchCount=10
sjms:queue:transacted.batch.consumer?transacted=true&transactionBatchCount=10
transactionBatchTimeout パラメーターを設定します。
sjms:queue:transacted.batch.consumer?transacted=true&transactionBatchCount=10&transactionBatchTimeout=2000
sjms:queue:transacted.batch.consumer?transacted=true&transactionBatchCount=10&transactionBatchTimeout=2000
template.sendBody("sjms:queue:batch.queue?transacted=true", messages);
template.sendBody("sjms:queue:batch.queue?transacted=true", messages);
追記 リンクのコピーリンクがクリップボードにコピーされました!
メッセージヘッダーの形式 リンクのコピーリンクがクリップボードにコピーされました!
- は、Camel がメッセージを消費するときに DOT と逆の置換に置き換えられます。
- は、Camel がメッセージを消費するときに HYPHEN に置き換えられ、逆の置換です。鍵のフォーマットに独自のカスタムストラテジーを使用できるオプション jmsKeyFormatStrategy も参照してください。
メッセージの内容 リンクのコピーリンクがクリップボードにコピーされました!
クラスタリング リンクのコピーリンクがクリップボードにコピーされました!
トランザクションサポート リンクのコピーリンクがクリップボードにコピーされました!
Springless Mean I can't use Spring? リンクのコピーリンクがクリップボードにコピーされました!
<route id="inout.named.reply.to.producer.route"> <from uri="direct:invoke.named.reply.to.queue" /> <to uri="sjms:queue:named.reply.to.queue?namedReplyTo=my.response.queue&xchangePattern=InOut" /> </route>
<route id="inout.named.reply.to.producer.route">
<from uri="direct:invoke.named.reply.to.queue" />
<to uri="sjms:queue:named.reply.to.queue?namedReplyTo=my.response.queue&xchangePattern=InOut" />
</route>
第151章 SJMS Batch リンクのコピーリンクがクリップボードにコピーされました!
SJMS バッチコンポーネント リンクのコピーリンクがクリップボードにコピーされました!
AggregationRepository に保存されたデータを集約します。
AggregationRepository からデータを取得し、後で結果を書き込みます。性質的に、集計されたアーティファクトの数が増えると、読み取りおよび書き込みは徐々に長くなります。これの影響を示す任意の時間単位を使用したこの例は次のとおりです。
| 項目 | 読み取り時間 | 書き込み時間 | 合計時間 |
|---|---|---|---|
| 0 | 0 | 1 | 1 |
| 1 | 1 | 2 | 4 |
| 2 | 2 | 3 | 9 |
| 3 | 3 | 4 | 16 |
| 4 | 4 | 5 | 25 |
| 5 | 5 | 6 | 36 |
| 6 | 6 | 7 | 49 |
| 7 | 7 | 8 | 64 |
| 8 | 8 | 9 | 81 |
| 9 | 9 | 10 | 100 |
AggregationStrategy を使用して集約されます。すべての消費と集約が単一の JMS トランザクションで実行されるため、中間状態を永続化するために外部ストレージは必要ありません。これにより、上記の読み取りおよび書き込みコストを回避します。実際には、これにより複数の順番でより高いスループットが得られます。
Exchange がルートに渡されます。この Exchange の処理中に例外が出力された場合、またはシステムがシャットダウンすると、元のメッセージがすべてキューに戻されます(または、ブローカーの設定に応じてデッドレターキューに配置されます)。
pom.xml に追加する必要があります。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
sjms:[queue:]destinationName[?options]
sjms:[queue:]destinationName[?options]
destinationName は JMS キューです。デフォルトでは、destinationName はキュー名として解釈されます。
sjms:FOO.BAR
sjms:FOO.BAR
queue: 接頭辞を含めることができます。
sjms:queue:FOO.BAR
sjms:queue:FOO.BAR
コンポーネントのオプションおよび設定 リンクのコピーリンクがクリップボードにコピーされました!
|
オプション
|
必須
|
デフォルト値
|
説明
|
|---|---|---|---|
aggregationStrategy
|
Yes
|
null
|
Camel レジストリーでの
AggregationStrategy への参照(例: #myAggregationStrategy)
|
completionSize
|
|
200
|
集約するバッチのサイズ。
これが JMS コンシューマーの事前フェッチバッファー、またはブローカーのキューの最大ページサイズよりも大きくならないように注意する必要があります。タイムアウトを使用しない場合は、コンシューマーがハングする可能性があります。
0 または less の値は、
completionTimeout のみを使用する必要があることを示します。
|
completionTimeout
|
|
500
|
エクスチェンジを生成する前に最初のメッセージの受信から待機する最大時間。
0 または less の値は、
completionSize のみを使用する必要があることを示します。
完了タイムアウトと完了間隔を同時に使用することはできません。設定できるのは 1 つのみです。
|
completionTimeout
|
Camel 2.17: 完了間隔(ミリ秒単位)。これにより、バッチが間隔ごとにスケジュールされる固定レートで完了されます。タイムアウトがトリガーされ、バッチにメッセージがない場合、バッチは空になる可能性があります。完了タイムアウトと完了間隔を同時に使用することはできません。設定できるのは 1 つのみです。 | ||
sendEmptyMessageWhenIdle
|
false
|
Camel 2.17: 完了タイムアウトまたは間隔を使用する場合、タイムアウトがトリガーされ、バッチにメッセージがない場合にバッチが空になることがあります。このオプションが true であり、バッチが空の場合、空のメッセージがバッチに追加され、空のメッセージがルーティングされます。 | |
pollDuration
|
|
1000
|
MessageConsumer.receive() への呼び出しの最大長。タイムアウトの残りはバッチ内で優先されます。
この値は、実質的にバッチ間のポーリング時間です。
|
timeoutCheckerExecutorService
|
Camel 2.17: completionInterval オプションを使用すると、バックグラウンドスレッドが作成され、完了間隔がトリガーされます。すべてのコンシューマーに新しいスレッドを作成するのではなく、カスタムスレッドプールを提供するには、このオプションを設定します。 |
completionSize endpoint 属性は completionTimeout とともに使用され、最初に満たされる条件により、集約された Exchange がルートに出力されます。
第152章 Slack リンクのコピーリンクがクリップボードにコピーされました!
Slack コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
pom.xml に追加する必要があります。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
slack:#channel[?options]
slack:#channel[?options]
slack:@username[?options]
slack:@username[?options]
オプション リンクのコピーリンクがクリップボードにコピーされました!
|
名前
|
説明
| 例 |
|---|---|---|
|
username
|
これは、チャネルまたはユーザーにメッセージを送信するときにボットが必要とするユーザー名です。
|
username=CamelUser |
| iconUrl | メッセージをチャネルまたはユーザーに送信する際にコンポーネントが使用するアバター。 | iconUrl=http://somehost.com/avatar.gif |
| iconEmoji | Slack 絵文字をアバターとして使用する | iconEmoji=:camel: |
SlackComponent リンクのコピーリンクがクリップボードにコピーされました!
<bean id="slack" class="org.apache.camel.component.slack.SlackComponent">
<property name="webhookUrl" value="https://hooks.slack.com/services/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"/>
</bean>
<bean id="slack" class="org.apache.camel.component.slack.SlackComponent">
<property name="webhookUrl" value="https://hooks.slack.com/services/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"/>
</bean>
例 リンクのコピーリンクがクリップボードにコピーされました!
第153章 SMPP リンクのコピーリンクがクリップボードにコピーされました!
SMPP コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
ReplaceSm、QuerySm、SubmitMulti、および CancelSm を実行することもできます。DataSm
pom.xml に追加する必要があります。
SMS の制限 リンクのコピーリンクがクリップボードにコピーされました!
- 信頼性: SMPP 標準はエラーを示すさまざまなフィードバックメカニズムを提供していますが、再配信や配信の確認は、モバイルネットワークがこれらの応答を非表示またはシミュレートする一般的ではありません。たとえば、一部のネットワークは、宛先番号が無効であるか、切り替えされていない場合でも、すべてのメッセージの配信確認を自動的に送信します。一部のネットワークは、スパムだと判断すると、メッセージを警告なしでドロップします。ネットワークでのスパム検出ルールは非常に困難である可能性があり、1 つの送信者の 1 日あたり 100 個以上のメッセージがスパムとみなされる場合があります。
- セキュリティー: ラジオ Tower から受信者ハンドセットまで最後のホップに基本的な暗号化があります。SMS メッセージは、ネットワークの他の部分で暗号化されず、認証されません。一部のオペレーターでは、スタッフのアウトレットや電話センターによる SMS メッセージ履歴の閲覧を許可するものもあります。メッセージ送信者のアイデンティティーは簡単に偽装できます。レギュレーターやモバイル電話業界でも、二要素認証スキームやセキュリティーが重要なその他の目的で SMS の使用には注意が必要です。
データコーディング、アルファベット、および国際文字セット リンクのコピーリンクがクリップボードにコピーされました!
- ヘッダーに指定されたデータコーディング
- ヘッダーに指定されたアルファベット
- エンドポイント設定(URI パラメーター)に指定されたデータコーディング。
String の一部の文字を選択したアルファベットで表示できない場合は、疑問符 ?, 記号に置き換えることができます。API のユーザーは、メッセージボディーをコンポーネントに渡す前に ISO-8859-1 に変換できるかどうかを確認したい場合があり、そうでない場合は、alphabet ヘッダーを UCS-2 エンコーディングを要求するように設定します。アルファベットおよびデータコーディングオプションがまったく指定されていない場合、コンポーネントは必要なエンコーディングを検出し、データコーディングを設定することがあります。
メッセージの分割とスロットリング リンクのコピーリンクがクリップボードにコピーされました!
String から byte 配列に変換すると、Camel コンポーネントは JSMPP に渡す前にメッセージを分割します(140 バイトの SMS サイズ制限内)。これは自動的に完了します。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
smpp://[username@]hostname[:port][?options] smpps://[username@]hostname[:port][?options]
smpp://[username@]hostname[:port][?options]
smpps://[username@]hostname[:port][?options]
smppclient を提供します。ポート 番号が指定されていない場合、Apache Camel はデフォルト値の 2775 を提供します。Camel 2.3: プロトコル名が smpps の場合、SSLSocket を使用してサーバーへの接続を開始します。
?option=value&option=value&.. の形式で追加できます。
URI オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | デフォルト値 | 説明 |
|---|---|---|
password
|
password
|
SMSC へのログインに使用するパスワードを指定します。 |
systemType
|
cp
|
このパラメーターは、SMSC (max. 13 文字)にバインドする ESME (外部ショートカットメッセージエンティティー)のタイプを分類するために使用されます。 |
dataCoding
|
0
|
Camel 2.11 は、SMPP 3.4 仕様のセクション 5.2.19 に従って、データのコーディングを定義します。( Camel 2.9 より前は、このオプションもサポートされます。) データエンコーディングの例は次のとおりです。
|
alphabet
|
0
|
Camel 2.5 は、SMPP 3.4 仕様、セクション 5.2.19 に従ってデータのエンコーディングを定義します。このオプションは
Alphabet.java にマッピングされ、SMSC に送信される byte[] を作成するために使用されます。例: 0: SMSC Default Alphabet 4: 8 ビットアルファベット 8: UCS2 Alphabet
|
encoding
|
ISO-8859-1
|
SubmitSm のみ、ReplaceSm および SubmitMulti は、短いメッセージユーザーデータのエンコーディングスキームを定義します。 |
enquireLinkTimer
|
5000
|
自信チェックの間隔をミリ秒単位で定義します。自信チェックは、ESME と SMSC の間の通信パスをテストするために使用されます。 |
transactionTimer
|
10000
|
トランザクションの後に許容される最大非アクティブ期間を定義します。その後、SMPP エンティティーはセッションがアクティブでなくなったと仮定する可能性があります。このタイマーは、SMPP エンティティーの通信(SMSC または ESME)のいずれかでアクティブになります。 |
initialReconnectDelay
|
5000
|
接続が失われた場合にコンシューマー/プロデューサーが SMSC への再接続を試みた後の最初の遅延をミリ秒単位で定義します。 |
reconnectDelay
|
5000
|
SMSC への接続が失われ、以前の成功していない場合に、再接続試行の間隔をミリ秒単位で定義します。 |
registeredDelivery
|
1
|
SubmitSm、replaceSm、SubmitMulti、および DataSm Is は、SMSC 配信受信および SME による確認応答の要求に使用されます。
0: No SMSC delivery receipt requested の値を定義します。1: SMSC 配信受信が要求され、最終的な配信結果が成功または失敗します。2: SMSC 配信応答が要求され、最終的な配信結果が配信に失敗しました。
|
serviceType
|
CMT
|
サービスタイプパラメーターを使用して、メッセージに関連付けられた SMS アプリケーションサービスを指定できます。以下の汎用 service_types が定義されます。
|
sourceAddr
|
1616
|
このメッセージを発信した SME (Short Message Entity)のアドレスを定義します。 |
destAddr
|
1717
|
SubmitSm、SubmitMulti、CancelSm、および DataSm のみ が宛先 SME アドレスを定義します。モバイル終端メッセージの場合、これは受信者 MS のディレクトリー番号です。 |
sourceAddrTon
|
0
|
SME 送信元アドレスパラメーターで使用される番号(TON)のタイプを定義します。以下の TON 値を定義します。
|
destAddrTon
|
0
|
SubmitSm、SubmitMulti、CancelSm、および DataSm にのみ、SME 宛先アドレスパラメーターで使用される番号のタイプ(TON)を定義します。以下の TON 値を定義します。
|
sourceAddrNpi
|
0
|
SME 送信元アドレスパラメーターで使用される数値計画インジケーター(NPI)を定義します。以下の NPI 値を定義します。
|
destAddrNpi
|
0
|
SubmitSm、SubmitMulti、CancelSm、および DataSm にのみ、SME 宛先アドレスパラメーターで使用される数値計画インジケーター(NPI)を定義します。以下の NPI 値を定義します。
|
priorityFlag
|
1
|
SubmitSm および SubmitMulti にのみ、送信元の SME が短いメッセージに優先度レベルを割り当てることができます。4 つの優先度レベルがサポートされます。
|
replaceIfPresentFlag
|
0
|
SubmitSm および SubmitMulti Used が SMSC を要求する場合にのみ、以前に送信されたメッセージを置き換えます。これは、配信が保留されています。SMSC は、ソースアドレス、宛先アドレス、およびサービスタイプが新しいメッセージの同じフィールドと一致する場合に、既存のメッセージを置き換えます。フラグ値が定義されている場合は、以下の置換を行います。
|
dataCoding
|
0
|
Camel 2.5 onwarts は、SMPP 3.4 仕様セクション 5.2.19 に従ってデータのエンコーディングを定義します。データエンコーディングの例:
0: SMSC Default Alphabet 4: 8 ビットアルファベット 8: UCS2 Alphabet
|
typeOfNumber
|
0
|
SME で使用される番号(TON)のタイプを定義します。以下の TON 値を定義します。
|
numberingPlanIndicator
|
0
|
SME で使用される数値計画インジケーター(NPI)を定義します。以下の NPI 値を定義します。
|
lazySessionCreation
|
false
|
Camel 2.8 以降 の Sessions は、Camel プロデューサーの開始時に SMSC が利用できない場合に例外を回避するために遅延して作成できます。Camel 2.11 以降 の Camel は、最初のエクスチェンジのメッセージヘッダー 'CamelSmppSystemId' および 'CamelSmppPassword' で を確認します。存在する場合は、Camel はこれらのデータを使用して SMSC に接続します。
|
httpProxyHost
|
null
|
Camel 2.9.1: HTTP プロキシー経由で SMPP をトンネルする必要がある場合は、この属性を HTTP プロキシーのホスト名または IP アドレスに設定します。 |
httpProxyPort
|
3128
|
Camel 2.9.1: HTTP プロキシー経由で SMPP をトンネルする必要がある場合は、この属性を HTTP プロキシーのポートに設定します。 |
httpProxyUsername
|
null
|
Camel 2.9.1: HTTP プロキシーに Basic 認証が必要な場合は、この属性を HTTP プロキシーに必要なユーザー名に設定します。 |
httpProxyPassword
|
null
|
Camel 2.9.1: HTTP プロキシーに Basic 認証が必要な場合は、この属性を HTTP プロキシーに必要なパスワードに設定します。 |
sessionStateListener
|
null
|
Camel 2.9.3: Registry の org.jsmpp.session.SessionStateListener を参照して、セッション状態が変更されたときにコールバックを受け取ることができます。
|
addressRange
|
""
|
Camel 2.11: SMPP 3.4 仕様のセクション 5.2.7 で定義されているように SmppConsumer のアドレス範囲を指定できます。SmppConsumer は、この範囲内のアドレス(MSISDN または IP アドレス)をターゲットにする SMSC からのみメッセージを受信します。
|
splittingPolicy
|
ALLOW
|
Camel 2.14.1 および 2.15.0: 以下のように、長いメッセージを処理するポリシーを指定できます。
|
proxyHeaders
|
null
|
Camel 2.17: 接続の確立中にこれらのヘッダーがプロキシーサーバーに渡されます。 |
smpp://smppclient@localhost:2775?password=password&enquireLinkTimer=3000&transactionTimer=5000&systemType=consumer
smpp://smppclient@localhost:2775?password=password&enquireLinkTimer=3000&transactionTimer=5000&systemType=consumer
プロデューサーメッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| ヘッダー | タイプ | 説明 |
|---|---|---|
CamelSmppDestAddr
|
List/String
|
SubmitSm、SubmitMulti、CancelSm、および DataSm のみ が宛先 SME アドレスを定義します。モバイル終端メッセージの場合、これは受信者 MS のディレクトリー番号です。SubmitMulti の場合は List<String> で あり、それ以外の場合は String である必要があります。
|
CamelSmppDestAddrTon
|
Byte
|
SubmitSm、SubmitMulti、CancelSm、および DataSm にのみ、SME 宛先アドレスパラメーターで使用される番号のタイプ(TON)を定義します。以下の TON 値を定義します。
|
CamelSmppDestAddrNpi
|
Byte
|
SubmitSm、SubmitMulti、CancelSm、および DataSm にのみ、SME 宛先アドレスパラメーターで使用される数値計画インジケーター(NPI)を定義します。以下の NPI 値を定義します。
|
CamelSmppSourceAddr
|
文字列
|
このメッセージを発信した SME (Short Message Entity)のアドレスを定義します。 |
CamelSmppSourceAddrTon
|
Byte
|
SME 送信元アドレスパラメーターで使用される番号(TON)のタイプを定義します。以下の TON 値を定義します。
|
CamelSmppSourceAddrNpi
|
Byte
|
SME 送信元アドレスパラメーターで使用される数値計画インジケーター(NPI)を定義します。以下の NPI 値を定義します。
|
CamelSmppServiceType
|
文字列
|
サービスタイプパラメーターを使用して、メッセージに関連付けられた SMS アプリケーションサービスを指定できます。以下の汎用 service_types が定義されます。
|
CamelSmppRegisteredDelivery
|
Byte
|
SubmitSm、replaceSm、SubmitMulti、および DataSm Is は、SMSC 配信受信および SME による確認応答の要求に使用されます。以下の値が定義されます。
|
CamelSmppPriorityFlag
|
Byte
|
SubmitSm および SubmitMulti にのみ、送信元の SME が短いメッセージに優先度レベルを割り当てることができます。4 つの優先度レベルがサポートされます。
|
CamelSmppValidityPeriod
|
string/{{Date}}
|
SubmitSm、SubmitMulti、および ReplaceSm のみ。validity period パラメーターは SMSC の有効期限を示します。その後、宛先に配信されない場合はメッセージを破棄する必要があります。日付 として提供されている場合は、絶対時間として解釈されます。Camel 2.9.1 以降: smpp 仕様 v3.4 の章 7.1.1 で指定されている 文字列 として指定する場合は、絶対時間形式または相対時間形式で定義できます。
|
CamelSmppReplaceIfPresentFlag
|
Byte
|
SubmitSm および SubmitMulti にのみ、replaces フラグパラメーターを使用して、以前に送信されたメッセージを置き換えるように SMSC を要求します。これは、配信が保留されています。SMSC は、ソースアドレス、宛先アドレス、およびサービスタイプが新しいメッセージの同じフィールドと一致する場合に、既存のメッセージを置き換えます。以下の値が定義されます。
|
CamelSmppAlphabet / CamelSmppDataCoding
|
Byte
|
Camel 2.5For SubmitSm, SubmitMulti and ReplaceSm ( Camel 2.9 の場合は、CamelSmppAlphabet の代わりに CamelSmppDataCoding を使用します。) SMPP 3.4 仕様、セクション 5.2.19 に準拠したデータのコーディング。上記の URI オプション アルファベット 設定を使用してください。
|
CamelSmppOptionalParameters
|
Map<String, String>
|
非推奨および は Camel 2.13.0/3.0.0 Camel 2.10.5 および 2.11.1 以降で削除され、SubmitSm、SubmitMulti、および DataSm に対してのみ削除されます。オプションのパラメーターは SMSC によって返信されます。
|
CamelSmppOptionalParameter
|
Map<Short, Object>
|
Camel 2.10.7 および 2.11.2 以降、SubmitSm、SubmitMulti、および DataSm に対してのみ、SMSC に送信されるオプションのパラメーターです。値は以下の方法で変換されます。
string -> org.jsmpp.bean.OptionalParameter.COctetStringbyte[] -> org.jsmpp.bean.OptionalParameter.OctetStringByte -> org.jsmpp.bean.OptionalParameter.ByteInteger -> org.jsmpp.bean .OptionalParameter.IntShort -> org.jsmpp.bean.OptionalParameter.Shortnull -> org.jsmpp.bean.OptionalParameter.Null
|
CamelSmppEncoding
|
文字列
|
Camel 2.14.1 および Camel 2.15.0: および
SubmitSm、SubmitMulti および DataSm のみ。メッセージボディーのバイトのエンコーディング(文字セット名)を指定します。メッセージボディーが文字列である場合、Java 文字列は常に Unicode であるため、これは関係ありません。ボディーがバイト配列である場合、このヘッダーを使用して ISO-8859-1 またはその他の値であることを示します。デフォルト値は、エンドポイント設定パラメーターのエンコーディングによって指定されます。
|
CamelSmppSplittingPolicy
|
文字列
|
Camel 2.14.1 および Camel 2.15.0: および
SubmitSm、SubmitMulti および DataSm のみ。このエクスチェンジのメッセージ分割のポリシーを指定します。使用できる値は、エンドポイント設定パラメーター splittingPolicy で説明されています。
|
| ヘッダー | タイプ | 説明 |
|---|---|---|
CamelSmppId
|
List<String>/{{String}}
|
後で使用するために送信された短いメッセージを識別する ID。Camel 2.9.0: ReplaceSm、QuerySm、CancelSm、および DataSm のヘッダー vaule は 文字列 です。SubmitSm または SubmitMultiSm の場合、このヘッダー vaule は List<String> です。
|
CamelSmppSentMessageCount
|
整数
|
Camel 2.9 以降、SubmitSm および SubmitMultiSm に対してのみ、送信されたメッセージの合計数。 |
CamelSmppError
|
Map<String, List<Map<String, Object>>>
|
Camel 2.9 以降、SubmitMultiSm でのみ 短いメッセージを送信し、Map<String, List<Map<String, Object>>> (messageID : (destAddr : address, error : errorCode))形式で送信して発生したエラーです。
|
CamelSmppOptionalParameters
|
Map<String, String>
|
非推奨および は Camel 2.13.0/3.0.0 のCamel 2.11.1 からのみ削除さ れます。その後、DataSm に対してのみ削除されます。任意のパラメーターは、メッセージを送信して SMSC から返されます。
|
CamelSmppOptionalParameter
|
Map<Short, Object>
|
Camel 2.10.7 以降では、2.11.2 以降の DataSm のみ。メッセージを送信して SMSC から返されるオプションのパラメーターです。キーは、オプションのパラメーターの
Short コードです。値は以下の方法で変換されます。 org.jsmpp.bean.OptionalParameter.COctetString -> Stringorg.jsmpp.bean.OptionalParameter.OctetString -> byte[]org.jsmpp.bean.OptionalParameter.Byte -> Byteorg.jsmpp.bean.OptionalParameter.Int -> null
|
コンシューマーメッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| ヘッダー | タイプ | 説明 |
|---|---|---|
CamelSmppSequenceNumber
|
整数
|
AlertNotification、DeliverSm、および DataSm A シーケンス番号にのみ、応答 PDU をリクエスト PDU と関連付けることができます。関連する SMPP 応答 PDU は、このフィールドを保持する必要があります。 |
CamelSmppCommandId
|
整数
|
AlertNotification、DeliverSm、および DataSm に対してのみ、コマンド id フィールドは、特定の SMPP PDU を識別します。定義された値の完全なリストは、smpp 仕様 v3.4 の 5.1.2.1 の章を参照してください。 |
CamelSmppSourceAddr
|
文字列
|
AlertNotification、DeliverSm、および DataSm のみ が、このメッセージを発信した SME (Short Message Entity)のアドレスを定義します。 |
CamelSmppSourceAddrNpi
|
Byte
|
AlertNotification および DataSm に対してのみ、SME 送信元アドレスパラメーターで使用される数値計画インジケーター(NPI)を定義します。以下の NPI 値を定義します。
|
CamelSmppSourceAddrTon
|
Byte
|
AlertNotification および DataSm に対してのみ、SME 送信元アドレスパラメーターで使用される番号(TON)のタイプを定義します。以下の TON 値を定義します。
|
CamelSmppEsmeAddr
|
文字列
|
AlertNotification のみ が宛先 ESME アドレスを定義します。モバイル終端メッセージの場合、これは受信者 MS のディレクトリー番号です。 |
CamelSmppEsmeAddrNpi
|
Byte
|
アラート通知のみ: ESME 送信元アドレスパラメーターで使用される数値計画インジケーター(NPI)を定義します。以下の NPI 値を定義します。
|
CamelSmppEsmeAddrTon
|
Byte
|
アラート通知のみ: ESME 送信元アドレスパラメーターで使用される番号(TON)のタイプを定義します。以下の TON 値を定義します。
|
CamelSmppId
|
文字列
|
smsc DeliveryReceipt および DataSm のみ。最初に送信されたときに SMSC によってメッセージに割り当てられるメッセージ ID。 |
CamelSmppDelivered
|
整数
|
配信される短いメッセージの smsc DeliveryReceipt Number のみ。これは、元のメッセージがディストリビューションリストに送信された場所にのみ関連します。この値は、必要に応じて先頭にゼロでパディングされます。 |
CamelSmppDoneDate
|
日付
|
smsc DeliveryReceipt The time and date which the short message reached it's final state.YYMMDDhhmm の形式は以下のとおりです。 |
CamelSmppStatus
|
DeliveryReceiptState
|
smsc DeliveryReceipt: メッセージの最終ステータス。
DELIVRD: Message is delivered to destination EXPIRED: Message validity period has expired.DELETED: メッセージが削除されました。UNDELIV: Message is undeliverable ACCEPTD: Message is in in accepted state (つまり.e. is been manually read on behalf of the subscriber by customer service) UNKNOWN: Message is in invalid state REJECTD: Message is in in a rejected state
|
CamelSmppCommandStatus
|
整数
|
DataSm: メッセージのコマンドステータスのみ。 |
CamelSmppError
|
文字列
|
smsc DeliveryReceipt where appropriate this may hold a Network specific error code or an SMSC error code for the message.これらのエラーは Network または SMSC 固有で、ここには含まれません。 |
CamelSmppSubmitDate
|
日付
|
短いメッセージが送信された日時 のみ、smsc DeliveryReceipt。置き換えられたメッセージの場合、これは元のメッセージが置き換えられた日付になります。YYMMDDhhmm の形式は以下のとおりです。 |
CamelSmppSubmitted
|
整数
|
最初 に送信された短いメッセージの smsc DeliveryReceipt Number のみ。これは、元のメッセージがディストリビューションリストに送信された場合にのみ関連します。この値は、必要に応じて先頭のゼロでパディングされます。 |
CamelSmppDestAddr
|
文字列
|
DeliverSm および DataSm のみ: 宛先 SME アドレスを定義します。モバイル終端メッセージの場合、これは受信者 MS のディレクトリー番号です。 |
CamelSmppScheduleDeliveryTime
|
文字列
|
DeliverSm のみ: このパラメーターは、メッセージ配信が最初に試行されるスケジュール時間を指定します。これは、このメッセージの配信が SMSC によって試行される現在の SMSC 時間からの絶対日時または相対時間のいずれかを定義します。絶対時間形式または相対時間形式で指定できます。時間形式のエンコーディングは、smpp 仕様 v3.4 の セクション 7.1.1 で指定します。 |
CamelSmppValidityPeriod
|
文字列
|
DeliverSm のみ。life period パラメーターは SMSC の有効期限を示します。その後、宛先に配信されない場合はメッセージを破棄する必要があります。絶対時間形式または相対時間形式で定義できます。絶対および相対時間形式のエンコーディングは、smpp 仕様 v3.4 の セクション 7.1.1 で指定します。 |
CamelSmppServiceType
|
文字列
|
DeliverSm および DataSm のみ を対象としています。サービスタイプパラメーターを使用して、メッセージに関連付けられた SMS アプリケーションサービスを指定できます。以下の汎用 service_types が定義されます。
|
CamelSmppRegisteredDelivery
|
Byte
|
DataSm は、SMSC 配信受信および SME からの確認応答を要求するためにのみ 使用されます。以下の値が定義されます。
|
CamelSmppDestAddrNpi
|
Byte
|
DataSm のみ が SME 宛先アドレスパラメーターで使用される数値計画インジケーター(NPI)を定義します。以下の NPI 値を定義します。
|
CamelSmppDestAddrTon
|
Byte
|
DataSm のみ が SME 宛先アドレスパラメーターで使用される番号のタイプ(TON)を定義します。以下の TON 値を定義します。
|
CamelSmppMessageType
|
文字列
|
Camel 2.6 以降: 受信メッセージのタイプを特定します:
AlertNotification: an SMSC アラート通知 DataSm: an SMSC data short message DeliveryReceipt: an SMSC delivery receipt DeliverSm: an SMSC deliver short message
|
CamelSmppOptionalParameters
|
Map<String, Object>
|
非推奨および は Camel 2.13.0/3.0.0Camel 2.10.5 以降では削除され、DeliverSm に対してのみ削除されます。オプションのパラメーターは SMSC によって返信されます。
|
CamelSmppOptionalParameter
|
Map<Short, Object>
|
Camel 2.10.7、2.11.2 以降、および DeliverSm 専用の パラメーター。オプションのパラメーターは SMSC によって返信されます。キーは、オプションのパラメーターの
Short コードです。値は以下の方法で変換されます。 org.jsmpp.bean.OptionalParameter.COctetString -> Stringorg.jsmpp.bean.OptionalParameter.OctetString -> byte[]org.jsmpp.bean.OptionalParameter.Byte -> Byteorg.jsmpp.bean.OptionalParameter.Int -> null
|
例外処理 リンクのコピーリンクがクリップボードにコピーされました!
SubmitSm (デフォルトアクション)でメッセージの送信にエラーが発生した場合、org.apache.camel.component.smpp.SmppException はネストされた例外 org.jsmpp.extra.NegativeResponseException で出力されます。NegativeResponseException.getCommandStatus() を呼び出して、正確な SMPP 負の応答コードを取得します。値は、SMPP 仕様 3.4 のセクション 5.1.3 で説明されています。
DeliverSm または DataSm 短いメッセージを受信し、これらのメッセージの処理に失敗した場合は、失敗を処理する代わりに ProcessRequestException を出力することもできます。この場合、この例外は基礎となる JSMPP ライブラリー に転送され、含まれるエラーコードを SMSC に戻します。この機能は、たとえば、後で短いメッセージを再送信するように SMSC に指示するのに役立ちます。これは、以下のコード行を使用して実行できます。
サンプル リンクのコピーリンクがクリップボードにコピーされました!
from("direct:start")
.to("smpp://smppclient@localhost:2775?password=password&enquireLinkTimer=3000&transactionTimer=5000&systemType=producer");
from("direct:start")
.to("smpp://smppclient@localhost:2775?password=password&enquireLinkTimer=3000&transactionTimer=5000&systemType=producer");
<route> <from uri="direct:start"/> <to uri="smpp://smppclient@localhost:2775?password=password&nquireLinkTimer=3000&ransactionTimer=5000&ystemType=producer"/> </route>
<route>
<from uri="direct:start"/>
<to uri="smpp://smppclient@localhost:2775?password=password&nquireLinkTimer=3000&ransactionTimer=5000&ystemType=producer"/>
</route>
from("smpp://smppclient@localhost:2775?password=password&enquireLinkTimer=3000&transactionTimer=5000&systemType=consumer")
.to("bean:foo");
from("smpp://smppclient@localhost:2775?password=password&enquireLinkTimer=3000&transactionTimer=5000&systemType=consumer")
.to("bean:foo");
<route>
<from uri="smpp://smppclient@localhost:2775?password=password&nquireLinkTimer=3000&ransactionTimer=5000&ystemType=consumer"/>
<to uri="bean:foo"/>
</route>
<route>
<from uri="smpp://smppclient@localhost:2775?password=password&nquireLinkTimer=3000&ransactionTimer=5000&ystemType=consumer"/>
<to uri="bean:foo"/>
</route>
デバッグロギング リンクのコピーリンクがクリップボードにコピーされました!
log4j.logger.org.apache.camel.component.smpp=DEBUG
log4j.logger.org.apache.camel.component.smpp=DEBUG
第154章 SNMP リンクのコピーリンクがクリップボードにコピーされました!
SNMP コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
snmp://hostname[:port][?Options]
snmp://hostname[:port][?Options]
?option=value&option=value&.. の形式で追加できます。
オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | デフォルト値 | 説明 |
|---|---|---|
type
|
none |
実行するアクションのタイプ。POLL または TRAP に実際に入力できます。値 POLL は、提供された OID キーに対して指定のホストをポーリングするようエンドポイントに指示します。TRAP に を追加すると、SNMP トレイトイベントのリスナーを設定します。
|
address
|
none |
これは、ポーリングするホストの IP アドレスとポート、または Trap Receiver を設定する場所です。例: 127.0.0.1:162
|
protocol
|
udp
|
ここでは、使用するプロトコルを選択できます。udp または tcp のいずれかを使用できます。
|
retries
|
2
|
要求をキャンセルする前に再試行が実行される頻度を定義します。 |
timeout
|
1500
|
リクエストのタイムアウト値をミリ秒単位で設定します。 |
snmpVersion
|
0 (SNMPv1)
|
リクエストの SNMP バージョンを設定します。 |
snmpCommunity
|
public
|
snmp リクエストのコミュニティーオクテット文字列を設定します。 |
delay
|
60000
|
2 つのポーリングサイクル間の遅延をミリ秒単位で定義します。以前のリリースでは、このオプションは秒単位で指定されていました。 |
oids
|
none |
対象の値を定義します。理解を深めるには、Wikipedia をご参照ください。OID を 1 つまたは区切ったリストを指定できます。例: oids="1.3.6.1.2.1.1.3.0,1.3.6.1.2.1.25.3.2.1.5.1,1.3.6.1.2.1.25.3.5.1.1.1,1.3.6.1.2.1.43.5.1.1.11.1"
|
ポーリングの結果 リンクのコピーリンクがクリップボードにコピーされました!
1.3.6.1.2.1.1.3.0 1.3.6.1.2.1.25.3.2.1.5.1 1.3.6.1.2.1.25.3.5.1.1.1 1.3.6.1.2.1.43.5.1.1.11.1
1.3.6.1.2.1.1.3.0
1.3.6.1.2.1.25.3.2.1.5.1
1.3.6.1.2.1.25.3.5.1.1.1
1.3.6.1.2.1.43.5.1.1.11.1
例 リンクのコピーリンクがクリップボードにコピーされました!
snmp:192.168.178.23:161?protocol=udp&type=POLL&oids=1.3.6.1.2.1.1.5.0
snmp:192.168.178.23:161?protocol=udp&type=POLL&oids=1.3.6.1.2.1.1.5.0
snmp:127.0.0.1:162?protocol=udp&type=TRAP
snmp:127.0.0.1:162?protocol=udp&type=TRAP
from("snmp:192.168.178.23:161?protocol=udp&type=POLL&oids=1.3.6.1.2.1.1.5.0").
convertBodyTo(String.class).
to("activemq:snmp.states");
from("snmp:192.168.178.23:161?protocol=udp&type=POLL&oids=1.3.6.1.2.1.1.5.0").
convertBodyTo(String.class).
to("activemq:snmp.states");
第155章 Solr リンクのコピーリンクがクリップボードにコピーされました!
Solr コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
pom.xml に以下の依存関係を追加する必要があります。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
solr://host[:port]/solr?[options] solrs://host[:port]/solr ?[options] solrCloud://host[:port]/solr?[options]
solr://host[:port]/solr?[options]
solrs://host[:port]/solr ?[options]
solrCloud://host[:port]/solr?[options]
エンドポイントオプション リンクのコピーリンクがクリップボードにコピーされました!
| name | デフォルト値 | description |
|---|---|---|
maxRetries
|
0
|
一時的なエラーが発生した場合に試行する最大再試行回数 |
soTimeout
|
1000
|
基礎となる HttpConnectionManager で読み取りタイムアウト。これはクエリーに適していますが、インデックス作成には適していません。 |
connectionTimeout
|
100
|
基礎となる HttpConnectionManager の connectionTimeout |
defaultMaxConnectionsPerHost
|
2
|
基礎となる HttpConnectionManager の maxConnectionsPerHost |
maxTotalConnections
|
20
|
基礎となる HttpConnectionManager の maxTotalConnection |
followRedirects
|
false
|
Solr サーバーへリダイレクトが使用されるかどうかを示します。 |
allowCompression
|
false
|
これを有効にするには、サーバー側が gzip または deflate をサポートする必要があります。 |
requestHandler
|
/update (xml) | 使用するリクエストハンドラーの設定 |
streamingThreadCount
|
2
|
Camel 2.9.2 で StreamingUpdateSolrServerのスレッド数を設定する |
streamingQueueSize
|
10
|
Camel 2.9.2 で StreamingUpdateSolrServerのキューサイズを設定する |
zkhost
|
null
|
Camel 2.14.0 は、zkhost=localhost:8123など、solrCloud が使用可能な zoo keeper ホスト情報を設定します。
|
collection
|
null
|
Camel 2.14.0 は、solrCloud サーバーが使用できるコレクション名を設定します
|
メッセージ操作 リンクのコピーリンクがクリップボードにコピーされました!
SolrOperation でエクスチェンジヘッダーを設定し、値は以下のいずれかに設定します。一部の操作では、メッセージボディーも設定する必要があります。
INSERT操作は CommonsHttpSolrServerを使用します。
| operation | メッセージボディー | description |
|---|---|---|
INSERT/INSERT_STREAMING
|
該当なし | メッセージヘッダーを使用してインデックスを追加します(SolrField の接頭辞が必要です)。 |
INSERT/INSERT_STREAMING
|
File | 指定されたファイルを使用してインデックスを追加します(ContentStreamUpdateRequest を使用)。 |
INSERT/INSERT_STREAMING
|
SolrInputDocument | Camel 2.9.2 は、指定の SolrInputDocument に基づいてインデックスを更新します。 |
INSERT/INSERT_STREAMING
|
String XML | Camel 2.9.2 は、指定の XML に基づいてインデックスを更新します(SolrInputDocument 形式に従う必要があります) |
ADD_BEAN
|
Bean インスタンス | アノテーションが付けられた Beanの値に基づいてインデックスを追加します。 |
ADD_BEANS
|
collection<bean> | Camel 2.15 は、アノテーションが付けられた Bean のコレクションに基づいてインデックスを追加します。 |
DELETE_BY_ID
|
削除するインデックス ID | ID 別にレコードを削除する |
DELETE_BY_QUERY
|
クエリー文字列 | クエリーによるレコードの削除 |
COMMIT
|
該当なし | 保留中のインデックス変更でコミットを実行します。 |
ROLLBACK
|
該当なし | 保留中のインデックス変更でロールバックを実行します。 |
OPTIMIZE
|
該当なし | 保留中のインデックス変更でコミットを実行し、最適化コマンドを実行します。 |
例 リンクのコピーリンクがクリップボードにコピーされました!
INSERT、DELETE および COMMIT の例です。
template.sendBody("direct:insert", "1234");
template.sendBody("direct:commit", null);
template.sendBody("direct:delete", "1234");
template.sendBody("direct:commit", null);
template.sendBody("direct:insert", "1234");
template.sendBody("direct:commit", null);
template.sendBody("direct:delete", "1234");
template.sendBody("direct:commit", null);
Solr のクエリー リンクのコピーリンクがクリップボードにコピーされました!
第156章 Apache Spark リンクのコピーリンクがクリップボードにコピーされました!
Apache Spark コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
サポート対象のアーキテクチャースタイル リンクのコピーリンクがクリップボードにコピーされました!
OSGi サーバーでの Spark の実行 リンクのコピーリンクがクリップボードにコピーされました!
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
spark:{rdd|dataframe|hive}
spark:{rdd|dataframe|hive}
RDD ジョブ リンクのコピーリンクがクリップボードにコピーされました!
spark:rdd?rdd=#testFileRdd&rddCallback=#transformation
spark:rdd?rdd=#testFileRdd&rddCallback=#transformation
rdd オプションは Camel レジストリーから RDD インスタンスの名前( org.apache.spark.api.java.JavaRDDLikeのサブクラス)を指し、rddCallback は org.apache.camel.component.spark.RddCallback インターフェイス(別名レジストリー)の実装を指します。RDD コールバックは、指定の RDD に対して受信メッセージを適用するために使用される単一のメソッドを提供します。コールバック計算の結果は、エクスチェンジへのボディーとして保存されます。
public interface RddCallback<T> {
T onRdd(JavaRDDLike rdd, Object... payloads);
}
public interface RddCallback<T> {
T onRdd(JavaRDDLike rdd, Object... payloads);
}
String pattern = "job input";
long linesCount = producerTemplate.requestBody("spark:rdd?rdd=#myRdd&rddCallback=#countLinesContaining", pattern, long.class);
String pattern = "job input";
long linesCount = producerTemplate.requestBody("spark:rdd?rdd=#myRdd&rddCallback=#countLinesContaining", pattern, long.class);
@Bean
JavaRDDLike myRdd(JavaSparkContext sparkContext) {
return sparkContext.textFile("testrdd.txt");
}
@Bean
JavaRDDLike myRdd(JavaSparkContext sparkContext) {
return sparkContext.textFile("testrdd.txt");
}
RDD ジョブオプション リンクのコピーリンクがクリップボードにコピーされました!
| オプション | 説明 | デフォルト値 |
|---|---|---|
rdd
|
RDD インスタンス(サブクラス: org.apache.spark.api.java.JavaRDDLike)
|
null
|
rddCallback
|
org.apache.camel.component.spark.RddCallback インターフェイスのインスタンス。
|
null
|
void RDD コールバック リンクのコピーリンクがクリップボードにコピーされました!
null 値を返すか、VoidRddCallback ベースクラスを使用できます。
RDD コールバックの変換 リンクのコピーリンクがクリップボードにコピーされました!
ConvertingRddCallback を使用し、Camel がそれらをコールバックに挿入する前に受信メッセージを自動的に変換させることができます。
アノテーション付きの RDD コールバック リンクのコピーリンクがクリップボードにコピーされました!
@RddCallback アノテーションが付けられたメソッドをクラスに提供することです。
DataFrame ジョブ リンクのコピーリンクがクリップボードにコピーされました!
spark:dataframe?dataFrame=#testDataFrame&dataFrameCallback=#transformation
spark:dataframe?dataFrame=#testDataFrame&dataFrameCallback=#transformation
dataFrame オプションは Camel レジストリーからのデータフレームインスタンスの名前( org.apache.spark.sql.DataFrameのインスタンス)を指し、dataFrameCallback は org.apache.camel.component.spark.DataFrameCallback インターフェイスの実装(またはレジストリーから)を指します。DataFrame コールバックは、指定の DataFrame に対して受信メッセージを適用するために使用される単一のメソッドを提供します。コールバック計算の結果は、エクスチェンジへのボディーとして保存されます。
public interface DataFrameCallback<T> {
T onDataFrame(DataFrame dataFrame, Object... payloads);
}
public interface DataFrameCallback<T> {
T onDataFrame(DataFrame dataFrame, Object... payloads);
}
String model = "Micra";
long linesCount = producerTemplate.requestBody("spark:dataFrame?dataFrame=#cars&dataFrameCallback=#findCarWithModel", model, long.class);
String model = "Micra";
long linesCount = producerTemplate.requestBody("spark:dataFrame?dataFrame=#cars&dataFrameCallback=#findCarWithModel", model, long.class);
DataFrame ジョブオプション リンクのコピーリンクがクリップボードにコピーされました!
| オプション | 説明 | デフォルト値 |
|---|---|---|
dataFrame
|
DataFrame インスタンス(サブクラス: org.apache.spark.sql.DataFrame)
|
null
|
dataFrameCallback
|
org.apache.camel.component.spark.DataFrameCallback インターフェイスのインスタンス。
|
null
|
Hive ジョブ リンクのコピーリンクがクリップボードにコピーされました!
spark:hive
spark:hive
long carsCount = template.requestBody("spark:hive?collect=false", "SELECT * FROM cars", Long.class);
List<Row> cars = template.requestBody("spark:hive", "SELECT * FROM cars", List.class);
long carsCount = template.requestBody("spark:hive?collect=false", "SELECT * FROM cars", Long.class);
List<Row> cars = template.requestBody("spark:hive", "SELECT * FROM cars", List.class);
Hive ジョブオプション リンクのコピーリンクがクリップボードにコピーされました!
| オプション | 説明 | デフォルト値 |
|---|---|---|
collect
|
結果を( org.apache.spark.sql.Row インスタンスのリストとして)収集するか、または count() をそれらに対して呼び出す必要があるかどうかを示します。
|
true
|
第157章 Spark REST リンクのコピーリンクがクリップボードにコピーされました!
Spark REST コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-spark-rest</artifactId>
<version>${camel-version}</version>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-spark-rest</artifactId>
<version>${camel-version}</version>
</dependency>
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
spark-rest://verb:path?[options]
spark-rest://verb:path?[options]
URI オプション リンクのコピーリンクがクリップボードにコピーされました!
|
名前
|
デフォルト値
|
説明
|
|---|---|---|
verb
|
|
get、post、put、patch、delete、head、trace、connect、または options。
|
path
|
|
Spark 構文をサポートするコンテンツパス。例については、以下を参照してください。
|
accept
|
|
'text/xml' または 'application/json' などの Accept タイプ。デフォルトでは、すべての種類のタイプを受け入れます。
|
Spark 構文を使用したパス リンクのコピーリンクがクリップボードにコピーされました!
from("spark-rest:get:hello")
.transform().constant("Bye World");
from("spark-rest:get:hello")
.transform().constant("Bye World");
from("spark-rest:get:hello/:me")
.transform().simple("Bye ${header.me}");
from("spark-rest:get:hello/:me")
.transform().simple("Bye ${header.me}");
Camel メッセージへのマッピング リンクのコピーリンクがクリップボードにコピーされました!
org.apache.camel.component.sparkrest.SparkMessage として Camel Message にマッピングされます。デフォルトでは、Spark ボディーは Camel メッセージボディーにマッピングされ、HTTP ヘッダー/Spark パラメーターは Camel メッセージヘッダーにマッピングされます。Spark スプラット構文には特別なサポートがあり、これはキースプラットを使用して Camel メッセージヘッダーにマッピングされます。
from("spark-rest:get:/hello/*/to/*")
.transform().simple("Bye big ${header.splat[1]} from ${header.splat[0]}");
from("spark-rest:get:/hello/*/to/*")
.transform().simple("Bye big ${header.splat[1]} from ${header.splat[0]}");
REST DSL リンクのコピーリンクがクリップボードにコピーされました!
その他の例 リンクのコピーリンクがクリップボードにコピーされました!
第158章 Splunk リンクのコピーリンクがクリップボードにコピーされました!
Splunk コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-splunk</artifactId>
<version>${camel-version}</version>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-splunk</artifactId>
<version>${camel-version}</version>
</dependency>
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
splunk://[endpoint]?[options]
splunk://[endpoint]?[options]
プロデューサーエンドポイント: リンクのコピーリンクがクリップボードにコピーされました!
|
エンドポイント
|
説明
|
|---|---|
stream
|
データを名前付きインデックスにストリーミングするか、指定されていない場合はデフォルトにストリーミングします。ストリームモードを使用する場合は、Splunk にはイベントがインデックスに到達する前に一部の内部バッファー(about 1MB など)があることを認識します。リアルタイムが必要な場合は、
submit または tcp モードを使用することが推奨されます。
|
submit
|
送信モード。Splunk REST API を使用して、イベントを名前付きインデックスまたはデフォルト(指定されていない場合はデフォルト)に公開します。
|
tcp
|
TCP モード。データを TCP ポートにストリーミングし、Splunk で開いているレシーバーポートを必要とします。
|
from("direct:start").convertBodyTo(SplunkEvent.class)
.to("splunk://submit?username=user&password=123&index=myindex&sourceType=someSourceType&source=mySource")...
from("direct:start").convertBodyTo(SplunkEvent.class)
.to("splunk://submit?username=user&password=123&index=myindex&sourceType=someSourceType&source=mySource")...
コンシューマーエンドポイント: リンクのコピーリンクがクリップボードにコピーされました!
|
エンドポイント
|
説明
|
|---|---|
normal
|
通常の検索を実行し、検索オプションで検索クエリーを必要とします。
|
savedsearch
|
splunk に保存されている検索クエリーに基づいて検索を実行し、savedSearch オプションにクエリーの名前が必要です。
|
from("splunk://normal?delay=5s&username=user&password=123&initEarliestTime=-10s&search=search index=myindex sourcetype=someSourcetype")
.to("direct:search-result");
from("splunk://normal?delay=5s&username=user&password=123&initEarliestTime=-10s&search=search index=myindex sourcetype=someSourcetype")
.to("direct:search-result");
URI オプション リンクのコピーリンクがクリップボードにコピーされました!
|
名前
|
デフォルト値
|
コンテキスト
|
説明
|
|---|---|---|---|
host
|
localhost
|
両方
|
Splunk ホスト。
|
port
|
8089
|
両方
|
Splunk ポート
|
scheme
|
https
|
両方
|
http または https のいずれかとして使用するスキーム。
|
username
|
null
|
両方
|
Splunk のユーザー名
|
password
|
null
|
両方
|
Splunk のパスワード
|
connectionTimeout
|
5000
|
両方
|
Splunk サーバーへの接続時の MS のタイムアウト
|
useSunHttpsHandler
|
false
|
両方
|
sun.net.www.protocol.https.Handler Https hanlder を使用して Splunk 接続を確立します。は、アプリケーションサーバーで実行している場合に、アプリケーション(server https の処理)を回避するのに役立ちます。
|
sslProtocol
|
TLSv1.2
|
両方 |
Camel 2.16: 使用する SSL プロトコル。
TLSv1.2、TLSv1.1、TLSv1、および SSLv3 のいずれかです。scheme が https の場合にのみ使用されます。
|
index
|
null
|
プロデューサー
|
書き込む Splunk インデックス
|
sourceType
|
null
|
プロデューサー
|
Splunk sourcetype arguement
|
source
|
null
|
プロデューサー
|
Splunk ソース引数
|
tcpReceiverPort
|
0
|
プロデューサー
|
tcp プロデューサーエンドポイントを使用する場合の Splunk tcp receiver ポート。
|
raw
|
false
|
プロデューサー
|
Camel 2.16.0: ボディーを挿入する必要あり。
true の場合、ボディーは Splunk に送信される前に String に変換されます。
|
initEarliestTime
|
null
|
コンシューマー
|
最初の検索の最初の開始オフセット。必須
|
earliestTime
|
null
|
コンシューマー
|
検索時間枠の初期時間。
|
latestTime
|
null
|
コンシューマー
|
検索時間枠の最新の時間。
|
count
|
0
|
コンシューマー
|
返すエンティティーの最大数を示す数字。これは、現在サポートされていない maxMessagesPerPoll とは異なることに注意してください。
|
search
|
null
|
コンシューマー
|
実行する Splunk クエリー
|
savedSearch
|
null
|
コンシューマー
|
実行する Splunk に保存されているクエリーの名前
|
streaming
|
false
|
コンシューマー
|
Camel 2.14.0 : すべてのエクスチェンジを 1 つのバッチで返すのではなく、Splunk から受信されるエクスチェンジをストリーミングします。これは、結果をより迅速に受信できるだけでなく、交換がコンポーネントでバッファーリングされないため、必要なメモリーが少なくなるという利点があります。
|
eventHost
|
null
|
プロデューサー
|
Camel 2.17: デフォルトの Splunk イベントホストフィールドを上書きします。
|
メッセージボディー リンクのコピーリンクがクリップボードにコピーされました!
raw オプションを設定して、生データを Splunk に送信できます。これは、Splunk がサポートされる JSon/XML およびその他のペイロードに役立ちます。
ユースケース リンクのコピーリンクがクリップボードにコピーされました!
from("twitter://search?type=polling&keywords=music&delay=10&consumerKey=abc&consumerSecret=def&accessToken=hij&accessTokenSecret=xxx")
.convertBodyTo(SplunkEvent.class)
.to("splunk://submit?username=foo&password=bar&index=camel-tweets&sourceType=twitter&source=music-tweets");
from("twitter://search?type=polling&keywords=music&delay=10&consumerKey=abc&consumerSecret=def&accessToken=hij&accessTokenSecret=xxx")
.convertBodyTo(SplunkEvent.class)
.to("splunk://submit?username=foo&password=bar&index=camel-tweets&sourceType=twitter&source=music-tweets");
from("splunk://normal?username=foo&password=bar&initEarliestTime=-2m&search=search index=camel-tweets sourcetype=twitter")
.log("${body}");
from("splunk://normal?username=foo&password=bar&initEarliestTime=-2m&search=search index=camel-tweets sourcetype=twitter")
.log("${body}");
その他のコメント リンクのコピーリンクがクリップボードにコピーされました!
関連項目 リンクのコピーリンクがクリップボードにコピーされました!
第159章 SpringBatch リンクのコピーリンクがクリップボードにコピーされました!
Spring Batch コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
pom.xml に以下の依存関係を追加する必要があります。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
spring-batch:jobName[?options]
spring-batch:jobName[?options]
from () ステートメントで Spring Batch コンポーネントを使用することはできません。
オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | デフォルト値 | 説明 |
|---|---|---|
jobLauncherRef
|
null
|
非推奨で、Camel 3.0!Camel 2.10:代わりに jobLauncher=#theName を使用してください。 |
jobLauncher
|
null
|
Camel 2.11.1: Camel レジストリーから使用する JobLauncher を明示的に指定します。
|
使用方法 リンクのコピーリンクがクリップボードにコピーされました!
org.springframework.batch.core.launch.JobLaucher インスタンスを使用して実行されます。
JobLauncherがコンポーネントに手動で設定されている場合は、これを使用します。jobLauncherRefオプションがコンポーネントに設定されている場合、Camel Registry で指定の名前でJobLauncherを検索します。非推奨で、Camel 3.0 で削除されます。- jobLauncher 名で Camel レジストリーに登録されている
JobLauncherがある場合は、これを使用します。 - 上記の手順で JobLauncher を解決できず、Camel レジストリーに
インスタンスが 1 つだけある場合は、これを使用します。JobLauncher
JobLauncher に渡されます。文字列、Long、Double、および java.util.Date の値は org.springframework.batch.core.JobParametersBuilder にコピーされます。他のデータ型は String に変換されます。
例 リンクのコピーリンクがクリップボードにコピーされました!
from("direct:startBatch").to("spring-batch:myJob");
from("direct:startBatch").to("spring-batch:myJob");
JobLauncher セットで Spring Batch ジョブの実行を明示的にトリガーします。
from("direct:startBatch").to("spring-batch:myJob?jobLauncherRef=myJobLauncher");
from("direct:startBatch").to("spring-batch:myJob?jobLauncherRef=myJobLauncher");
JobLauncher によって返される Camel 2.11.1JobExecution インスタンス以降、SpringBatchProducer によって出力メッセージに転送されます。JobExecution インスタンスを使用して、Spring Batch API を直接使用して一部の操作を実行できます。
サポートクラス リンクのコピーリンクがクリップボードにコピーされました!
CamelItemReader リンクのコピーリンクがクリップボードにコピーされました!
CamelItemReader を使用すると、Camel インフラストラクチャーから直接バッチデータを読み取ることができます。
CamelItemWriter リンクのコピーリンクがクリップボードにコピーされました!
CamelItemWriter は CamelItemReader と同様に目的がありますが、処理されたデータのチャンクの書き込み専用です。
CamelItemProcessor リンクのコピーリンクがクリップボードにコピーされました!
CamelItemProcessor は Spring Batch org.springframework.batch.item.ItemProcessor インターフェイスの実装です。後者の実装は Request Reply パターン をリレーし、バッチ項目の処理を Camel インフラストラクチャーに委譲します。処理する項目は、メッセージのボディーとして Camel エンドポイントに送信されます。
CamelJobExecutionListener リンクのコピーリンクがクリップボードにコピーされました!
CamelJobExecutionListener は、ジョブ実行イベントを Camel エンドポイントに送信する org.springframework.batch.core.JobExecutionListener インターフェイスの実装です。
org.springframework.batch.core.JobExecution インスタンスは、メッセージのボディーとして送信されます。before- と after-callbacks SPRING_BATCH_JOB_EVENT_TYPE ヘッダーを区別するには、BEFORE または AFTER 値に設定されます。
第160章 SpringIntegration リンクのコピーリンクがクリップボードにコピーされました!
Spring Integration コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
spring-integration:defaultChannelName[?options]
spring-integration:defaultChannelName[?options]
inputChannel 名と Spring Integration プロバイダーの outputChannel 名と同じになります。
?option=value&option=value&.. の形式で追加できます。
オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 説明 | 例 | 必須 | デフォルト値 |
|---|---|---|---|---|
inputChannel
|
指定されたチャネル名が Spring コンテキストで定義される、このエンドポイントが使用する Spring インテグレーション入力チャネル名。 |
inputChannel=requestChannel
|
いいえ | |
outputChannel
|
メッセージを Spring インテグレーションコンテキストに送信するために使用される Spring インテグレーション出力チャネル名。 |
outputChannel=replyChannel
|
いいえ | |
inOut
|
Spring インテグレーションエンドポイントが使用する必要のある交換パターン。 |
inOut=true
|
いいえ |
Spring インテグレーションコンシューマーの場合は InOnly および Spring インテグレーションプロバイダーの outOnly
|
consumer.delay
|
各ポーリングの遅延(ミリ秒単位)。 |
consumer.delay=60000
|
いいえ |
500
|
consumer.initialDelay
|
ポーリングが開始するまでの時間(ミリ秒単位)。 |
consumer.initialDelay=10000
|
いいえ |
1000
|
consumer.userFixedDelay
|
true を指定してポーリング間の固定遅延を使用します。使用しない場合は固定レートが使用されます。詳細は、ScheduledExecutorService クラスを参照してください。
|
consumer.userFixedDelay=false
|
いいえ |
false
|
使用方法 リンクのコピーリンクがクリップボードにコピーされました!
Spring インテグレーションエンドポイントの使用 リンクのコピーリンクがクリップボードにコピーされました!
Source アダプターおよび Target アダプター リンクのコピーリンクがクリップボードにコピーされました!
第161章 Spring イベント リンクのコピーリンクがクリップボードにコピーされました!
Spring イベントコンポーネント リンクのコピーリンクがクリップボードにコピーされました!
ApplicationEvent オブジェクトへのアクセスを提供します。これにより、ApplicationEvent オブジェクトを Spring ApplicationContext に公開したり、消費したりできます。その後、エンタープライズ統合パターンを 使用して メッセージフィルターなどの処理を行うことができます。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
spring-event://default[?options]
spring-event://default[?options]
第162章 Spring LDAP リンクのコピーリンクがクリップボードにコピーされました!
Spring LDAP コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
pom.xml に以下の依存関係を追加する必要があります。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
spring-ldap:springLdapTemplate[?options]
spring-ldap:springLdapTemplate[?options]
オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | タイプ | 説明 |
|---|---|---|
operation
|
文字列 |
実行する LDAP 操作。検索、バインド、またはバインド 解除 のいずれかでなければなりません。
|
scope
|
文字列 |
検索操作の範囲。オブジェクト、1 次、または サブツリー のいずれか でなければなりません。http://en.wikipedia.org/wiki/Lightweight_Directory_Access_Protocol#Search_and_Compareも参照してください。
|
使用方法 リンクのコピーリンクがクリップボードにコピーされました!
UnsupportedOperationException が発生します。メッセージのボディーはマップ( java.util.Mapのインスタンス)である必要があります。このマップには、LDAP 操作を実行するルートノードを指定するキー dn を持つエントリーが含まれる必要があります。マップの他のエントリーは操作固有です(以下を参照)。
バインドおよびバインド 解除 操作は変更されません。検索 操作では、ボディーは検索結果に設定されます。http://static.springsource.org/spring-ldap/site/apidocs/org/springframework/ldap/core/LdapTemplate.html#search%28java.lang.String,%20java.lang.String,%20int,%20org.springframework.ldap.core.AttributesMapper%29 を参照してください。
検索 リンクのコピーリンクがクリップボードにコピーされました!
フィルター を持つエントリーが必要です。値は、有効な LDAP フィルターを表す String である必要があります。http://en.wikipedia.org/wiki/Lightweight_Directory_Access_Protocol#Search_and_Compare を参照してください。
バインド リンクのコピーリンクがクリップボードにコピーされました!
属性 を持つエントリーが必要です。値は javax.naming.directory.Attributes のインスタンスである必要があります。このエントリーは、作成される LDAP ノードを指定します。
unbind リンクのコピーリンクがクリップボードにコピーされました!
dn を持つノードが削除されます。
org.apache.camel.springldap.SpringLdapProducer で定義されます。
- public static final String DN = "dn"
- public static final String FILTER = "filter"
- public static final String ATTRIBUTES = "attributes"
第163章 Spring Redis リンクのコピーリンクがクリップボードにコピーされました!
Spring Redis コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
spring-redis://host:port[?options]
spring-redis://host:port[?options]
?options=value&option2=value&.. の形式で追加できます。
URI オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | デフォルト値 | コンテキスト | 説明 |
|---|---|---|---|
host
|
null
|
両方 | Redis サーバーが実行されているホスト。 |
port
|
null
|
両方 | Redis ポート番号。 |
command
|
SET
|
両方 | デフォルトコマンド。メッセージヘッダーで上書きできます。 |
channels
|
SET
|
コンシューマー | サブスクライブするトピック名または名前パターンのリスト。 |
redisTemplate
|
null
|
プロデューサー |
レジストリーに事前設定された org.springframework.data.redis.core.RedisTemplate インスタンスへの参照。
|
connectionFactory
|
null
|
両方 |
レジストリーの org.springframework.data.redis.connection.RedisConnectionFactory インスタンスへの参照。
|
listenerContainer
|
null
|
コンシューマー |
レジストリーのレジストリーインスタンスで org.springframework.data.redis.listener.RedisMessageListenerContainer インスタンスへの参照。
|
serializer
|
null
|
コンシューマー |
レジストリーの org.springframework.data.redis.serializer.RedisSerializer インスタンスへの参照。
|
使用方法 リンクのコピーリンクがクリップボードにコピーされました!
Redis プロデューサーによって評価されるメッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| ハッシュコマンド | 説明 | パラメーター | 結果 |
|---|---|---|---|
HSET
|
ハッシュフィールドの文字列値を設定します。 | CamelRedis.Key (文字列), CamelRedis.Field (文字列), CamelRedis.Value (オブジェクト型) | void |
HGET
|
ハッシュフィールドの値を取得します。 | CamelRedis.Key (文字列), CamelRedis.Field (文字列) | 文字列 |
HSETNX
|
フィールドが存在しない場合にのみ、ハッシュフィールドの値を設定します。 | CamelRedis.Key (文字列), CamelRedis.Field (文字列), CamelRedis.Value (オブジェクト型) | void |
HMSET
|
複数のハッシュフィールドを複数の値に設定します。 | CamelRedis.Key (String), CamelRedis.Values(Map<String, Object>) | void |
HMGET
|
指定されたハッシュフィールドの値を取得します。 | CamelRedis.Key (文字列), CamelRedis.Fields (Collection<String>) | コレクション<Object> |
HINCRBY
|
ハッシュフィールドの整数値を指定の数だけ増やします。 | CamelRedis.Key (文字列), CamelRedis.Field (文字列), CamelRedis.Value(Long 型) | Long |
HEXISTS
|
ハッシュフィールドが存在するかどうかを判断する | CamelRedis.Key (文字列), CamelRedis.Field (文字列) | ブール値 |
HDEL
|
1 つ以上のハッシュフィールドを削除します。 | CamelRedis.Key (文字列), CamelRedis.Field (文字列) | void |
HLEN
|
ハッシュ内のフィールド数を取得します。 | CamelRedis.Key (文字列) | Long |
HKEYS
|
ハッシュ内のすべてのフィールドを取得します。 | CamelRedis.Key (文字列) | Set<String> |
HVALS
|
ハッシュのすべての値を取得します。 | CamelRedis.Key (文字列) | コレクション<Object> |
HGETALL
|
ハッシュのすべてのフィールドおよび値を取得します。 | CamelRedis.Key (文字列) | Map<String, Object> |
| list commands | 説明 | パラメーター | 結果 |
|---|---|---|---|
RPUSH
|
1 つまたは複数の値をリストに追加します。 | CamelRedis.Key (文字列), CamelRedis.Value (オブジェクト型) | Long |
RPUSHX
|
リストが存在する場合に限り、リストに値を追加します。 | CamelRedis.Key (文字列), CamelRedis.Value (オブジェクト型) | Long |
LPUSH
|
1 つまたは複数の値をリストに追加します。 | CamelRedis.Key (文字列), CamelRedis.Value (オブジェクト型) | Long |
LLEN
|
リストの長さを取得します。 | CamelRedis.Key (文字列) | Long |
LRANGE
|
リストからの要素の範囲を取得します。 | CamelRedis.Key (文字列), CamelRedis.Start(Long 型), CamelRedis.End(Long 型) | List<Object> |
LTRIM
|
リストを指定の範囲にトリミングする | CamelRedis.Key (文字列), CamelRedis.Start(Long 型), CamelRedis.End(Long 型) | void |
LINDEX
|
インデックスでリストから要素を取得します。 | CamelRedis.Key (文字列), CamelRedis.Index(Long 型) | 文字列 |
LINSERT
|
リスト内の別の要素の前後に要素を挿入 | CamelRedis.Key (文字列)、CamelRedis.Value (Object)、CamelRedis.Pivot (String)、CamelRedis.Position (String) | Long |
LSET
|
リスト内の要素の値をインデックスで設定します。 | CamelRedis.Key (文字列), CamelRedis.Value (オブジェクト型), CamelRedis.Index(Long 型) | void |
LREM
|
リストからの要素の削除 | CamelRedis.Key (文字列), CamelRedis.Value (オブジェクト型), CamelRedis.Count(Long 型) | Long |
LPOP
|
リストの最初の要素を削除して取得します。 | CamelRedis.Key (文字列) | オブジェクト |
RPOP
|
リストの最後の要素を削除して取得します。 | CamelRedis.Key (文字列) | 文字列 |
RPOPLPUSH
|
リストの最後の要素を削除し、別のリストに追記して返します。 | CamelRedis.Key (文字列), CamelRedis.Destination (文字列) | オブジェクト |
BRPOPLPUSH
|
リストから値をポップし、その値を別のリストにプッシュして返します。または 1 つが利用可能になるまでブロックします。 | CamelRedis.Key (文字列), CamelRedis.Destination (文字列), CamelRedis.Timeout(Long 型) | オブジェクト |
BLPOP
|
リストの最初の要素を削除して取得するか、以下が利用可能になるまでブロックします。 | CamelRedis.Key (文字列), CamelRedis.Timeout(Long 型) | オブジェクト |
BRPOP
|
リストの最後の要素を削除して取得するか、以下が利用可能になるまでブロックします。 | CamelRedis.Key (文字列), CamelRedis.Timeout(Long 型) | 文字列 |
| コマンドの設定 | 説明 | パラメーター | 結果 |
|---|---|---|---|
SADD
|
セットに 1 つ以上のメンバーを追加します。 | CamelRedis.Key (文字列), CamelRedis.Value (オブジェクト型) | ブール値 |
SMEMBERS
|
セット内のすべてのメンバーを取得します。 | CamelRedis.Key (文字列) | Set<Object> |
SREM
|
セットから 1 つ以上のメンバーを削除します。 | CamelRedis.Key (文字列), CamelRedis.Value (オブジェクト型) | ブール値 |
SPOP
|
セットからランダムなメンバーを削除して返します。 | CamelRedis.Key (文字列) | 文字列 |
SMOVE
|
あるセットから別のセットにメンバーを移動します。 | CamelRedis.Key (文字列), CamelRedis.Value (オブジェクト型), CamelRedis.Destination (文字列) | ブール値 |
SCARD
|
セット内のメンバー数を取得します。 | CamelRedis.Key (文字列) | Long |
SISMEMBER
|
指定された値がセットのメンバーであるかどうかを決定する | CamelRedis.Key (文字列), CamelRedis.Value (オブジェクト型) | ブール値 |
SINTER
|
複数セットの補間 | CamelRedis.Key (文字列), CamelRedis.Keys (文字列) | Set<Object> |
SINTERSTORE
|
複数のセットに干渉し、作成されるセットをキーに保存します。 | CamelRedis.Key (文字列), CamelRedis.Keys (文字列), CamelRedis.Destination (文字列) | void |
SUNION
|
複数のセットの追加 | CamelRedis.Key (文字列), CamelRedis.Keys (文字列) | Set<Object> |
SUNIONSTORE
|
複数のセットを追加し、作成される をキーに保存します。 | CamelRedis.Key (文字列), CamelRedis.Keys (文字列), CamelRedis.Destination (文字列) | void |
SDIFF
|
複数のセットを減算 | CamelRedis.Key (文字列), CamelRedis.Keys (文字列) | Set<Object> |
SDIFFSTORE
|
複数のセットを引き、作成される をキーに保存します。 | CamelRedis.Key (文字列), CamelRedis.Keys (文字列), CamelRedis.Destination (文字列) | void |
SRANDMEMBER
|
セットから 1 つまたは複数のランダムメンバーを取得します。 | CamelRedis.Key (文字列) | 文字列 |
| 順序付きの設定コマンド | 説明 | パラメーター | 結果 |
|---|---|---|---|
ZADD
|
ソートされたセットにメンバーを 1 つ以上追加するか、スコアが存在する場合は更新します。 | CamelRedis.Key (文字列), CamelRedis.Value (オブジェクト型), CamelRedis.Score (Double 型) | ブール値 |
ZRANGE
|
インデックスごとにソートされたセット内のメンバーの範囲を返します。 | CamelRedis.Key (文字列)、CamelRedis.Start (Long)、CamelRedis.End (Long)、CamelRedis.WithScore (Boolean) | オブジェクト |
ZREM
|
ソートされたセットから 1 つ以上のメンバーを削除します。 | CamelRedis.Key (文字列), CamelRedis.Value (オブジェクト型) | ブール値 |
ZINCRBY
|
ソートされたセット内のメンバーのスコアを増やす | CamelRedis.Key (文字列), CamelRedis.Value (オブジェクト型), CamelRedis.Increment (Double 型) | double |
ZRANK
|
ソートされたセットでメンバーのインデックスを決定します。 | CamelRedis.Key (文字列), CamelRedis.Value (オブジェクト型) | Long |
ZREVRANK
|
ソートされたセットでメンバーのインデックスを決定します。スコアは high から low に付けられます。 | CamelRedis.Key (文字列), CamelRedis.Value (オブジェクト型) | Long |
ZREVRANGE
|
ソートされたセット内のメンバーの範囲を、インデックス別に返します。スコアは high から low に付けられます。 | CamelRedis.Key (文字列)、CamelRedis.Start (Long)、CamelRedis.End (Long)、CamelRedis.WithScore (Boolean) | オブジェクト |
ZCARD
|
ソートされたセット内のメンバー数を取得します。 | CamelRedis.Key (文字列), | Long |
ZCOUNT
|
指定の値内のスコアでソートされたセット内のメンバーをカウントします。 | CamelRedis.Key (文字列), CamelRedis.Min (Double 型), CamelRedis.Max (Double 型) | Long |
ZRANGEBYSCORE
|
スコアでソートされたセット内のメンバーの範囲を返します。 | CamelRedis.Key (文字列), CamelRedis.Min (Double 型), CamelRedis.Max (Double 型) | Set<Object> |
ZREVRANGEBYSCORE
|
スコアが high から low のソートされたセット内のメンバーの範囲を返します。 | CamelRedis.Key (文字列), CamelRedis.Min (Double 型), CamelRedis.Max (Double 型) | Set<Object> |
ZREMRANGEBYRANK
|
指定されたインデックス内でソートされたセットのすべてのメンバーを削除します。 | CamelRedis.Key (文字列), CamelRedis.Start(Long 型), CamelRedis.End(Long 型) | void |
ZREMRANGEBYSCORE
|
指定のスコア内でソートされたセット内のすべてのメンバーを削除します。 | CamelRedis.Key (文字列), CamelRedis.Start(Long 型), CamelRedis.End(Long 型) | void |
ZUNIONSTORE
|
複数のソートされたセットを追加し、作成されるソートされたセットを新しいキーに保存します。 | CamelRedis.Key (文字列), CamelRedis.Keys (文字列), CamelRedis.Destination (文字列) | void |
ZINTERSTORE
|
複数のソートされたセットを補間し、作成されるソートされたセットを新しいキーに保存します。 | CamelRedis.Key (文字列), CamelRedis.Keys (文字列), CamelRedis.Destination (文字列) | void |
| string commands | 説明 | パラメーター | 結果 |
|---|---|---|---|
SET
|
キーの文字列値を設定します。 | CamelRedis.Key (文字列), CamelRedis.Value (オブジェクト型) | void |
GET
|
キーの値を取得します。 | CamelRedis.Key (文字列) | オブジェクト |
STRLEN
|
キーに保存されている値の長さを取得します。 | CamelRedis.Key (文字列) | Long |
APPEND
|
キーに値を追加します。 | CamelRedis.Key (文字列), CamelRedis.Value (文字列) | 整数 |
SETBIT
|
キーに保存される文字列値のオフセットでビットを設定または消去します。 | CamelRedis.Key (文字列), CamelRedis.Offset(Long 型), CamelRedis.Value (ブール型) | void |
GETBIT
|
キーに保存される文字列値のオフセットでビット値を返します。 | CamelRedis.Key (文字列), CamelRedis.Offset(Long 型) | ブール値 |
SETRANGE
|
指定されたオフセットから開始するキーの文字列の一部を上書きします。 | CamelRedis.Key (文字列), CamelRedis.Value (オブジェクト型), CamelRedis.Offset(Long 型) | void |
GETRANGE
|
キーに保存されている文字列のサブ文字列を取得します。 | CamelRedis.Key (文字列), CamelRedis.Start(Long 型), CamelRedis.End(Long 型) | 文字列 |
SETNX
|
キーが存在しない場合にのみ、キーの値を設定します。 | CamelRedis.Key (文字列), CamelRedis.Value (オブジェクト型) | ブール値 |
SETEX
|
キーの値および有効期限を設定します。 | CamelRedis.Key (文字列), CamelRedis.Value (オブジェクト型), CamelRedis.Timeout(Long 型), SECONDS | void |
DECRBY
|
指定された数でキーの整数値をデクリメントする | CamelRedis.Key (文字列), CamelRedis.Value(Long 型) | Long |
DECR
|
キーの整数値を 1 つずつ減らす | CamelRedis.Key (文字列), | Long |
INCRBY
|
指定された量でキーの整数値を増やします。 | CamelRedis.Key (文字列), CamelRedis.Value(Long 型) | Long |
INCR
|
キーの整数値を 1 つずつ増やします。 | CamelRedis.Key (文字列) | Long |
MGET
|
指定したすべてのキーの値を取得します。 | CamelRedis.Fields (Collection<String>) | List<Object> |
MSET
|
複数のキーに複数の値を設定する | CamelRedis.Values(Map<String, Object>) | void |
MSETNX
|
複数のキーを複数値に設定します(キーが存在しない場合のみ)。 | CamelRedis.Key (文字列), CamelRedis.Value (オブジェクト型) | void |
GETSET
|
キーの文字列値を設定し、その古い値を返します。 | CamelRedis.Key (文字列), CamelRedis.Value (オブジェクト型) | オブジェクト |
| 主要なコマンド | 説明 | パラメーター | 結果 |
|---|---|---|---|
EXISTS
|
キーが存在するかどうかを判断する | CamelRedis.Key (文字列) | ボルア語 |
DEL
|
キーを削除します。 | CamelRedis.Keys (String) | void |
TYPE
|
キーに保存されているタイプを特定します。 | CamelRedis.Key (文字列) | DataType |
KEYS
|
指定したパターンに一致するすべてのキーを検索します。 | CamelRedis.Pattern (String) | Collection<String> |
RANDOMKEY
|
キースペースからランダムなキーを返します。 | CamelRedis.Pattern (文字列)、CamelRedis.Value (文字列) | 文字列 |
RENAME
|
キーの名前変更 | CamelRedis.Key (文字列) | void |
RENAMENX
|
キーの名前変更(新しいキーが存在しない場合のみ) | CamelRedis.Key (文字列), CamelRedis.Value (文字列) | ブール値 |
EXPIRE
|
キーの時間を秒単位で設定する | CamelRedis.Key (文字列), CamelRedis.Timeout(Long 型) | ブール値 |
SORT
|
リスト、設定、またはソートされたセット内の要素を並べ替えます。 | CamelRedis.Key (文字列) | List<Object> |
PERSIST
|
キーから有効期限を削除します。 | CamelRedis.Key (文字列) | ブール値 |
EXPIREAT
|
キーの有効期限を UNIX タイムスタンプとして設定します。 | CamelRedis.Key (文字列), CamelRedis.Timestamp(Long 型) | ブール値 |
PEXPIRE
|
キーの時間をミリ秒単位で設定します。 | CamelRedis.Key (文字列), CamelRedis.Timeout(Long 型) | ブール値 |
PEXPIREAT
|
キーの有効期限をミリ秒単位で指定された UNIX タイムスタンプとして設定します。 | CamelRedis.Key (文字列), CamelRedis.Timestamp(Long 型) | ブール値 |
TTL
|
キーの有効期間を取得します。 | CamelRedis.Key (文字列) | Long |
MOVE
|
キーを別のデータベースに移動する | CamelRedis.Key (文字列), CamelRedis.Db (整数) | ブール値 |
| その他のコマンド | 説明 | パラメーター | 結果 |
|---|---|---|---|
MULTI
|
トランザクションブロックの開始をマークします。 | none | void |
DISCARD
|
MULTI の後に発行されたすべてのコマンドを破棄します。 | none | void |
EXEC
|
MULTI の後に発行されたすべてのコマンドを実行します。 | none | void |
WATCH
|
MULTI/EXEC ブロックの実行を決定するために指定のキーを監視します。 | CamelRedis.Keys (String) | void |
UNWATCH
|
監視されるすべてのキーについて忘れる | none | void |
ECHO
|
指定の文字列を echo します。 | CamelRedis.Value (String) | 文字列 |
PING
|
サーバーに ping します。 | none | 文字列 |
QUIT
|
接続を閉じる | none | void |
PUBLISH
|
メッセージをチャネルに投稿 | CamelRedis.Channel (文字列), CamelRedis.Message (オブジェクト型) | void |
Redis コンシューマー リンクのコピーリンクがクリップボードにコピーされました!
P SUBSCRIBE コマンドを使用して文字列パターンでチャネルにサブスクライブします。PUBLISH コマンドを使用してチャネルにメッセージを送信すると、メッセージが消費され、メッセージは Camel メッセージボディーとして利用できます。メッセージは、設定されたシリアライザーまたはデフォルトの JdkSerializationRedisSerializer を使用してシリアライズされます。
| ヘッダー | タイプ | 説明 |
|---|---|---|
CamelRedis.Channel
|
文字列
|
メッセージが受信されたチャネル名。 |
CamelRedis.Pattern
|
文字列
|
メッセージが受信されたチャネルに一致するパターン。 |
Dependencies リンクのコピーリンクがクリップボードにコピーされました!
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-spring-redis</artifactId>
<version>${camel-version}</version>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-spring-redis</artifactId>
<version>${camel-version}</version>
</dependency>
${camel-version} は、実際のバージョンの Camel (2.11 以降)に置き換える必要があります。
第164章 Spring Web Services リンクのコピーリンクがクリップボードにコピーされました!
Spring Web Services コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
camel-spring-ws を実行するには、Spring 2.5.x から spring-webmvc モジュールを追加する必要があります。Spring 3.0.x で Spring-WS 1.5.9 を実行するには、このモジュールが Spring-WS 1.5.9 にも含まれているため、OXM モジュールを Spring 3.0.x から除外する必要があります(を参照)。http://stackoverflow.com/questions/3313314/can-spring-ws-1-5-be-used-with-spring-3
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
spring-ws:[mapping-type:]address[?options]
spring-ws:[mapping-type:]address[?options]
mapping-type を次のいずれかの値に設定する必要があります。
| マッピングタイプ | 説明 |
|---|---|
rootqname
|
メッセージに含まれるルート要素の修飾名に基づいて Web サービスリクエストをマップするオプションを提供します。 |
soapaction
|
メッセージのヘッダーに指定された SOAP アクションに基づいて Web サービスリクエストをマップするために使用されます。 |
uri
|
特定の URI をターゲットとする Web サービスリクエストをマップします。 |
xpathresult
|
XPath 式 の評価に基づいて Web サービスリクエストを受信メッセージに対してマッピングするために使用されます。評価の結果は、エンドポイント URI に指定された XPath 結果と一致する必要があります。
|
beanname
|
PayloadRootQNameEndpointMapping、SonapActionEndpointMapping などの既存の(レガシー) エンドポイントマッピング と統合するために、 を参照できます。
|
address には、指定された mapping-type (SOAP アクション、XPath 式など)に関連する値が含まれている必要があります。プロデューサーとして、アドレスを呼び出している Web サービスの URI に設定する必要があります。
?option=value&option=value&.. の形式を使用します。
オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 必須 ? | 説明 |
|---|---|---|
soapAction
|
いいえ | リモート Web サービスにアクセスするときに SOAP リクエスト内に含める SOAP アクション |
wsAddressingAction
|
いいえ |
Web サービスへのアクセス時に含む WS-Addressing 1.0 アクションヘッダー。To ヘッダーは、エンドポイント URI で指定される Web サービスの アドレス に設定されます(デフォルトでは Spring-WS の動作)。
|
outputAction
|
いいえ | メソッドによって提供される応答 WS-Addressing Action ヘッダーの値を示します。 |
faultAction
|
いいえ |
メソッドによって提供される faultAction 応答 WS-Addressing Fault Action ヘッダーの値を示します。
|
faultTo
|
いいえ |
メソッドによって提供される faultAction 応答 WS-Addressing FaultTo ヘッダーの値を示します。
|
replyTo
|
いいえ |
メソッドによって提供される replyTo 応答 WS-Addressing ReplyTo ヘッダーの値を示します。
|
expression
|
mapping-type が xpathresultの場合のみ
|
Web サービス要求のマッピングプロセスで使用する XPath 式。xpathresultで指定された結果と一致する必要があります。
|
timeout
|
いいえ |
Camel 2.10: プロデューサーを使用して Web サービスを呼び出す際にソケットの読み取りタイムアウト(ミリ秒単位)を設定します 。URLConnection.setReadTimeout ()および CommonsHttpMessageSender.setReadTimeout ()を参照してください。組み込みメッセージの送信者実装を使用する場合は、オプションが機能する: CommonsHttpMessageSender nd HttpUrlConnectionMessageSender。コンポーネントに指定された Spring WS 設定オプションをカスタマイズしない限り、これらの実装はデフォルトで HTTP ベースのサービスに使用されます。標準以外の送信者を使用していること。 独自のタイムアウト設定を処理することを前提とします。Camel 2.12: We built-in message sender HttpComponentsMessageSender s considered instead of CommonsHttpMessageSender hich has been deprecated, see HttpComponentsMessageSender.setReadTimeout ()を参照してください。
|
sslContextParameters
|
いいえ |
Camel 2.10: Registry の
org.apache.camel.util.jsse.SSLContextParameters オブジェクトへの参照。 Using the JSSE Configuration Utility を参照してください。 このオプションは、組み込みメッセージ送信者の実装( CommonsHttpMessageSender および HttpUrlConnectionMessageSender )を使用する場合に機能します。 これらの実装の 1 つは、コンポーネントに指定された Spring WS 設定オプションをカスタマイズしない限り、デフォルトで HTTP ベースのサービスに使用されます。 標準以外の送信者を使用している場合は、独自の TLS 設定を処理することを前提とします。Security Guide の Configuring Transport Security for Camel Components の章を参照してください。
Camel 2.12: 組み込みメッセージの送信者 HttpComponentsMessageSender は、非推奨となったCommonsHttpMessageSender の代わり に考慮されます。
|
webServiceTemplate
|
いいえ | カスタム WebServiceTemplate を提供するオプション。これにより、カスタムインターセプターの追加やフォールトリゾルバー、メッセージ送信者、メッセージファクトリーの指定など、クライアント側の Web サービス処理を完全に制御できます。 |
messageSender
|
いいえ | カスタム WebServiceMessageSender を提供するオプション。たとえば、認証を実行したり、代替トランスポートを使用したりするには、以下を実行します。 |
messageFactory
|
いいえ | カスタム WebServiceMessageFactory を提供するオプション。たとえば、Apache Axiom が SAAJ ではなく Web サービスメッセージを処理する場合などです。 |
endpointMappingKey
|
いいえ |
org.apache.camel.component.spring.ws.type.EndpointMappingKey のインスタンスへの参照。
|
endpointMapping
|
mapping-type が rootqname、soapaction、uri、または xpathresultの場合のみ
|
Registry/ApplicationContext の org.apache.camel.component.spring.ws.bean.CamelEndpointMapping への参照。すべての Camel/Spring-WS エンドポイントを提供するには、レジストリーに 1 つの Bean のみが必要です。この Bean は MessageDispatcher によって自動検出され、エンドポイントに指定された特性(ルート QName、SOAP アクションなど)に基づいてリクエストを Camel エンドポイントにマッピングするために使用されます。
|
endpointDispatcher
|
いいえ |
Spring org.springframework.ws.server.endpoint.MessageEndpoint: Spring-WS によって受信されたメッセージを Camel エンドポイントにディスパッチし、PayloadRootQNameEndpointMapping、SoapActionEndpointMapping などの既存の(レガシー)エンドポイントマッピングと統合します。
|
messageFilter
|
いいえ | 2.10.3 以降カスタム MessageFilter を提供するオプション。たとえば、ヘッダーまたは添付ファイルを独自に処理する場合などです。 |
messageIdStrategy
|
いいえ |
一意のメッセージ ID の生成を制御するカスタム MessageIdStrategy。
|
webServiceEndpointUri
|
いいえ | プロデューサーに使用するデフォルトの Web サービスエンドポイント URI。 |
メッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | タイプ | 説明 |
|---|---|---|
CamelSpringWebserviceEndpointUri
|
String
|
クライアントとしてアクセスする Web サービスの URI。エンドポイント URI の アドレス 部分を上書きします。 |
CamelSpringWebserviceSoapAction
|
String
|
メッセージの SOAP アクションを指定するヘッダー。soapAction オプションが存在する場合はそれを上書きします。
|
CamelSpringWebserviceSoapHeader
|
Source | Camel 2.11.1: このヘッダーを使用してメッセージの SOAP ヘッダーを指定/アクセスします。 |
CamelSpringWebserviceAddressingAction
|
URI
|
このヘッダーを使用してメッセージの WS-Addressing アクションを指定します。wsAddressingAction オプションが存在する場合はオーバーライドします。
|
CamelSpringWebserviceAddressingFaultTo
|
URI
|
このヘッダーを使用して WS-Addressing FaultTo を指定します。存在する場合、faultTo オプションを上書きします。
|
CamelSpringWebserviceAddressingReplyTo
|
URI
|
このヘッダーを使用して WS-Addressing ReplyTo を指定します。存在する場合、replyTo オプションを上書きします。
|
CamelSpringWebserviceAddressingOutputAction
|
URI
|
このヘッダーを使用して WS-Addressing Action を指定し、outputAction オプションを上書きします(存在する場合)。
|
CamelSpringWebserviceAddressingFaultAction
|
URI
|
このヘッダーを使用して WS-Addressing Fault Action を指定します。存在する場合、faultAction オプションを上書きします。
|
Web サービスへのアクセス リンクのコピーリンクがクリップボードにコピーされました!
Web サービス を呼び出すには、単にルートを定義します。
from("direct:example").to("spring-ws:http://foo.com/bar")
from("direct:example").to("spring-ws:http://foo.com/bar")
template.requestBody("direct:example", "<foobar xmlns=\"http://foo.com\"><msg>test message</msg></foobar>");
template.requestBody("direct:example", "<foobar xmlns=\"http://foo.com\"><msg>test message</msg></foobar>");
SOAP および WS-Addressing アクションヘッダーの送信 リンクのコピーリンクがクリップボードにコピーされました!
from("direct:example")
.to("spring-ws:http://foo.com/bar?soapAction=http://foo.com&wsAddressingAction=http://bar.com")
from("direct:example")
.to("spring-ws:http://foo.com/bar?soapAction=http://foo.com&wsAddressingAction=http://bar.com")
template.requestBodyAndHeader("direct:example",
"<foobar xmlns=\"http://foo.com\"><msg>test message</msg></foobar>",
SpringWebserviceConstants.SPRING_WS_SOAP_ACTION, "http://baz.com");
template.requestBodyAndHeader("direct:example",
"<foobar xmlns=\"http://foo.com\"><msg>test message</msg></foobar>",
SpringWebserviceConstants.SPRING_WS_SOAP_ACTION, "http://baz.com");
SOAP ヘッダーの使用 リンクのコピーリンクがクリップボードにコピーされました!
String body = ... String soapHeader = "<h:Header xmlns:h=\"http://www.webserviceX.NET/\"><h:MessageID>1234567890</h:MessageID><h:Nested><h:NestedID>1111</h:NestedID></h:Nested></h:Header>";
String body = ...
String soapHeader = "<h:Header xmlns:h=\"http://www.webserviceX.NET/\"><h:MessageID>1234567890</h:MessageID><h:Nested><h:NestedID>1111</h:NestedID></h:Nested></h:Header>";
exchange.getIn().setBody(body); exchange.getIn().setHeader(SpringWebserviceConstants.SPRING_WS_SOAP_HEADER, soapHeader);
exchange.getIn().setBody(body);
exchange.getIn().setHeader(SpringWebserviceConstants.SPRING_WS_SOAP_HEADER, soapHeader);
spring-ws エンドポイントに送信し、Web サービスを呼び出します。
ヘッダーおよび添付の伝播 リンクのコピーリンクがクリップボードにコピーされました!
BasicMessageFilter)を使用して、交換ヘッダーと添付ファイルを WebServiceMessage 応答に伝播します。これで
exchange.getOut().getHeaders().put("myCustom","myHeaderValue")
exchange.getIn().addAttachment("myAttachment", new DataHandler(...))
exchange.getOut().getHeaders().put("myCustom","myHeaderValue")
exchange.getIn().addAttachment("myAttachment", new DataHandler(...))
MTOM 添付ファイルの使用方法 リンクのコピーリンクがクリップボードにコピーされました!
private class Attachement implements Processor {
public void process(Exchange exchange) throws Exception
{ exchange.getOut().copyFrom(exchange.getIn()); File file = new File("testAttachment.txt"); exchange.getOut().addAttachment("test", new DataHandler(new FileDataSource(file))); }
}
private class Attachement implements Processor {
public void process(Exchange exchange) throws Exception
{ exchange.getOut().copyFrom(exchange.getIn()); File file = new File("testAttachment.txt"); exchange.getOut().addAttachment("test", new DataHandler(new FileDataSource(file))); }
}
from("direct:send")
.process(new Attachement())
.to("spring-ws:http://localhost:8089/mySoapService?soapAction=mySoap&messageFactory=axiomMessageFactory");
from("direct:send")
.process(new Attachement())
.to("spring-ws:http://localhost:8089/mySoapService?soapAction=mySoap&messageFactory=axiomMessageFactory");
カスタムヘッダーおよび添付フィルター リンクのコピーリンクがクリップボードにコピーされました!
<bean id="messageFilter" class="your.domain.myMessageFiler" scope="singleton" />
<bean id="messageFilter" class="your.domain.myMessageFiler" scope="singleton" />
to("spring-ws:http://yourdomain.com?messageFilter=#myEndpointSpecificMessageFilter");
to("spring-ws:http://yourdomain.com?messageFilter=#myEndpointSpecificMessageFilter");
protected void doProcessSoapHeader(Message inOrOut, SoapMessage soapMessage)
{your code /*no need to call super*/ }
protected void doProcessSoapAttachements(Message inOrOut, SoapMessage response)
{ your code /*no need to call super*/ }
protected void doProcessSoapHeader(Message inOrOut, SoapMessage soapMessage)
{your code /*no need to call super*/ }
protected void doProcessSoapAttachements(Message inOrOut, SoapMessage response)
{ your code /*no need to call super*/ }
カスタム MessageSender および MessageFactory の使用 リンクのコピーリンクがクリップボードにコピーされました!
from("direct:example")
.to("spring-ws:http://foo.com/bar?messageFactory=#messageFactory&messageSender=#messageSender")
from("direct:example")
.to("spring-ws:http://foo.com/bar?messageFactory=#messageFactory&messageSender=#messageSender")
Web サービスの公開 リンクのコピーリンクがクリップボードにコピーされました!
web.xml で設定した MessageDispatcherServlet を使用する必要があります。
MessageDispatcherServlet は /WEB-INF/spring-ws-servlet.xml という名前の Spring XML を検索します。Spring-WS で Camel を使用するには、その XML ファイルの唯一の必須 Bean は CamelEndpointMapping です。この Bean により、MessageDispatcher は Web サービスリクエストをルートにディスパッチできます。
ルートでのエンドポイントマッピング リンクのコピーリンクがクリップボードにコピーされました!
http://example.com/ namespace 内に GetFoo という名前のルート要素を持つすべての Web サービス要求を受信します。
from("spring-ws:rootqname:{http://example.com/}GetFoo?endpointMapping=#endpointMapping")
.convertBodyTo(String.class).to(mock:example)
from("spring-ws:rootqname:{http://example.com/}GetFoo?endpointMapping=#endpointMapping")
.convertBodyTo(String.class).to(mock:example)
http://example.com/GetFoo SOAP アクションを含む Web サービスリクエストを受信します。
from("spring-ws:soapaction:http://example.com/GetFoo?endpointMapping=#endpointMapping")
.convertBodyTo(String.class).to(mock:example)
from("spring-ws:soapaction:http://example.com/GetFoo?endpointMapping=#endpointMapping")
.convertBodyTo(String.class).to(mock:example)
http://example.com/foobar に送信されたすべての要求を受信します。
from("spring-ws:uri:http://example.com/foobar?endpointMapping=#endpointMapping")
.convertBodyTo(String.class).to(mock:example)
from("spring-ws:uri:http://example.com/foobar?endpointMapping=#endpointMapping")
.convertBodyTo(String.class).to(mock:example)
foobar>abc </foobar> 要素が含まれる要求を受信します。
from("spring-ws:xpathresult:abc?expression=//foobar&endpointMapping=#endpointMapping")
.convertBodyTo(String.class).to(mock:example)
from("spring-ws:xpathresult:abc?expression=//foobar&endpointMapping=#endpointMapping")
.convertBodyTo(String.class).to(mock:example)
既存のエンドポイントマッピングを使用した代替設定 リンクのコピーリンクがクリップボードにコピーされました!
beanname を持つすべてのエンドポイントに対して、対応する名前を持つ CamelEndpointDispatcher タイプの 1 つの Bean が Registry/ApplicationContext に必要です。この Bean は、Camel エンドポイントと PayloadRootQNameEndpointMapping などの既存の エンドポイントマッピング との間のブリッジとして機能します。
beanname マッピングタイプの使用は、主に Spring-WS を使用し、Spring XML ファイルで定義されたエンドポイントマッピングを持つ(レガシー)状況を対象としています。beanname mapping-type を使用すると、Camel ルートを既存のエンドポイントマッピングに接続できます。ゼロから始めている場合は、エンドポイントマッピングを Camel URI の(上記のように endpointMappingで説明)として定義することが推奨されます。これは設定が少なく、より表現的です。または、アノテーションを使用して vanilla Spring-WS を使用することもできます。
beanname を使用したルートの例:
POJO (un) marshalling リンクのコピーリンクがクリップボードにコピーされました!
JaxbDataFormat jaxb = new JaxbDataFormat(false);
jaxb.setContextPath("com.example.model");
from("direct:example").marshal(jaxb).to("spring-ws:http://foo.com/bar").unmarshal(jaxb);
JaxbDataFormat jaxb = new JaxbDataFormat(false);
jaxb.setContextPath("com.example.model");
from("direct:example").marshal(jaxb).to("spring-ws:http://foo.com/bar").unmarshal(jaxb);
from("spring-ws:rootqname:{http://example.com/}GetFoo?endpointMapping=#endpointMapping").unmarshal(jaxb)
.to("mock:example").marshal(jaxb);
from("spring-ws:rootqname:{http://example.com/}GetFoo?endpointMapping=#endpointMapping").unmarshal(jaxb)
.to("mock:example").marshal(jaxb);
第165章 SQL Component リンクのコピーリンクがクリップボードにコピーされました!
SQL Component リンクのコピーリンクがクリップボードにコピーされました!
spring-jdbc を使用します。
- Idempotent Consumer EIP パターンの JDBC ベースのリポジトリー。詳細は以下を参照してください。
- Aggregator EIP パターンの JDBC ベースのリポジトリー。詳細は以下を参照してください。
Camel on EAP デプロイメント リンクのコピーリンクがクリップボードにコピーされました!
camel-cdi コンポーネントと組み合わせて使用すると、Java EE アノテーションは Camel でデータソースを利用できるようにします。以下の例は @Named アノテーションを使用して、Camel が必要なデータソースを特定できるようにします。
camel-sql エンドポイント設定の dataSource パラメーターから参照できるようになりました。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
from()など)とプロデューサーエンドポイント(g など)の両方を作成できます。to()).以前のバージョンでは、プロデューサーとしてのみ動作できました。
sql:select * from table where id=# order by name[?options]
sql:select * from table where id=# order by name[?options]
#name_of_the_parameter スタイルを使用して名前付きパラメーターを使用できます。
sql:select * from table where id=:#myId order by name[?options]
sql:select * from table where id=:#myId order by name[?options]
java.util.Map 2. の場合にメッセージボディーから名前を検索します。
sql:select * from table where id=:#${property.myId} order by name[?options]
sql:select * from table where id=:#${property.myId} order by name[?options]
? 記号は、エンドポイントのオプションの指定に ? 記号が使用されるため、# 記号に置き換えられることに注意してください。? 記号の置換は、エンドポイントベースで設定できます。
sql:classpath:sql/myquery.sql[?options]
sql:classpath:sql/myquery.sql[?options]
myquery.sql ファイルはクラスパスにあり、プレーンテキストです。
– ダッシュ行などのコメントも使用します。
?option=value&option=value&.. の形式で追加できます。
オプション リンクのコピーリンクがクリップボードにコピーされました!
| オプション | 型 | デフォルト | 説明 |
|---|---|---|---|
batch
|
boolean
|
false
|
Camel 2.7.5、2.8、および 2.9: SQL バッチ更新ステートメントを実行します。true に設定されている場合は、インバウンドメッセージボディーのハンドルがどのように変化するかについて以下の注記を参照してください。
|
dataSourceRef
|
文字列
|
null
|
非推奨および は Camel 3.0: レジストリーで検索するための DataSource への参照で削除され ます。代わりに dataSource=#theName を使用してください。
|
dataSource
|
文字列
|
null
|
Camel 2.11: レジストリーで検索するための DataSource への参照。
|
placeholder
|
文字列
|
#
|
Camel 2.4: SQL クエリーで ? に置き換えられる文字を指定します。単純な String.replaceAll ()操作であり、SQL 解析が関与していないことに注意してください(引用符で囲まれた文字列も変更されます)。
|
usePlaceholder
|
boolean
|
true
|
Camel 2.17: SQL クエリーでプレースホルダーを使用し、すべてのプレースホルダー文字を ? 記号に置き換えるかどうかを設定します。 |
template.<xxx>
|
null
|
クエリーを実行するために背後で使用される Spring JdbcTemplate に追加のオプションを設定します。例: template.maxRows=10詳細なドキュメントは、JdbcTemplate javadoc のドキュメント を参照してください。
|
|
allowNamedParameters
|
boolean
|
true
|
Camel 2.11: クエリーで名前付きパラメーターの使用を許可するかどうか。 |
processingStrategy
|
Camel 2.11:SQL consumer only: コンシューマーが行/バッチを処理したときに、プラグインがカスタム org.apache.camel.component.sql.SqlProcessingStrategy を使用してクエリーを実行できます。
|
||
prepareStatementStrategy
|
Camel 2.11: プラグインがカスタムの org.apache.camel.component.sql.SqlPrepareStatementStrategy を使用して、クエリーおよび準備済みステートメントの準備を制御できます。
|
||
consumer.delay
|
long
|
500
|
Camel 2.11:SQL consumer only: 各ポーリング間の遅延(ミリ秒単位)。 |
consumer.initialDelay
|
long
|
1000
|
Camel 2.11:SQL コンシューマーのみ: ポーリングの開始前の Milliseconds。 |
consumer.useFixedDelay
|
boolean
|
false
|
Camel 2.11:SQL コンシューマーのみ: ポーリング間の固定遅延を使用するには true に設定します。それ以外の場合は、固定レートが使用されます。詳細は、JDK の ScheduledExecutorService を参照してください。
|
maxMessagesPerPoll
|
int
|
0
|
Camel 2.11:SQL コンシューマーのみ: ポーリングごとに収集するメッセージの最大数を定義する整数値。デフォルトでは最大値は設定されていません。 |
useIterator
|
boolean
|
true
|
Camel 2.11:SQL consumer only: ポーリングが個別に処理されるときに返された各行が true の場合。false の場合、データの java.util.List 全体が IN ボディーとして設定されます。Camel 2.15.x 以前では、このオプションの前に consumer. 接頭辞を付ける必要があります(例: consumer.useIterator=true
|
routeEmptyResultSet
|
boolean
|
false
|
Camel 2.11:SQL コンシューマーのみ: ポーリングするデータがない場合に、単一の空の エクスチェンジ をルーティングするかどうか。Camel 2.15.x 以前では、このオプションの前に consumer. 接頭辞を付ける必要があります(例: consumer.useIterator=true
|
onConsume
|
文字列
|
null
|
Camel 2.11:SQL consumer only: 各行を処理した後、エクスチェンジ が正常に処理された場合、このクエリーを実行できます。たとえば、行を processed とマークします。クエリーには パラメーターを指定できます。Camel 2.15.x 以前では、このオプションの前に consumer. 接頭辞を付ける必要があります(例: consumer.useIterator=true
|
onConsumeFailed
|
文字列
|
null
|
Camel 2.11:SQL consumer only: 各行の処理後、エクスチェンジ が失敗した場合にこのクエリーを実行できます。たとえば、行が失敗したとマークされます。クエリーには パラメーターを指定できます。Camel 2.15.x 以前では、このオプションの前に consumer. 接頭辞を付ける必要があります(例: consumer.useIterator=true
|
onConsumeBatchComplete
|
文字列
|
null
|
Camel 2.11:SQL コンシューマーのみ: バッチ全体の処理後、このクエリーを実行して行を一括更新することができます。クエリーにはパラメーターを指定できません。Camel 2.15.x 以前では、このオプションの前に consumer. 接頭辞を付ける必要があります(例: consumer.useIterator=true
|
expectedUpdateCount
|
int
|
\-1
|
Camel 2.11:SQL コンシューマーのみ: consumer.onConsume を使用する場合、このオプションを使用して、更新される予想される行数を設定できます。通常、これを 1 に設定すると 1 行が更新されることが予想されます。Camel 2.15.x 以前では、このオプションの前に consumer. 接頭辞を付ける必要があります(例: consumer.useIterator=true
|
breakBatchOnConsumeFail
|
boolean
|
false
|
Camel 2.11:SQL コンシューマーのみ: consumer.onConsume を使用し、失敗すると、このオプションはバッチを分割するか、バッチからの次の行の処理を継続するかどうかを制御します。Camel 2.15.x 以前では、このオプションの前に consumer. 接頭辞を付ける必要があります(例: consumer.useIterator=true
|
alwaysPopulateStatement
|
boolean
|
false
|
Camel 2.11:SQL producer only: 有効にすると、org.apache.camel.component.sql.SqlPrepareStatementStrategy の populateStatement メソッドが常に呼び出されます(準備が想定されるパラメーターがない場合も同様です)。これが false の場合、1 つ以上の想定されるパラメーターが設定されている場合にのみ populateStatement が呼び出されます。たとえば、パラメーターなしの SQL クエリーのメッセージボディー/ヘッダーの読み取りを回避します。
|
separator
|
char
|
,
|
Camel 2.11.1: パラメーター値がメッセージボディー(ボディーが String 型である場合)から取得される場合に使用する区切り文字。# プレースホルダーに挿入されます。名前付きパラメーターを使用する場合は、代わりに Map タイプが使用されることに注意してください。
|
outputType
|
文字列
|
SelectList
|
Camel 2.12.0: コンシューマーまたはプロデューサーの出力を Map の List に、
SelectOne を単一の Java オブジェクトとして作成する(a)クエリーに列が 1 つしかない場合は、その JDBC Column オブジェクトが返されます。SELECT COUNT (*) FROM PROJECT はLong オブジェクトを返します。b (クエリーに複数の列がある場合) その結果の Map を返します。c) outputClass が設定されている場合には、列名に一致するすべてのセッターを呼び出すことで、クエリー結果を Java Bean オブジェクトに変換します。クラスにインスタンスを作成するデフォルトのコンストラクターがあるとします。d)クエリーによって複数の行が発生した場合は、一意でない結果例外が出力されます。
Camel 2.14.1 以降では、
SelectList は、SelectOne として各行の Java オブジェクトへのマッピングもサポートしています(step c のみ)。
|
outputClass
|
文字列
|
null
|
Camel 2.12.0: outputType=SelectOne の場合に変換として使用する完全なパッケージおよびクラス名を指定します。
|
outputHeader
|
文字列
|
null
|
Camel 2.15: メッセージのボディーではなくヘッダーとして結果を保存します。これにより、既存のメッセージボディーをそのまま保存できます。 |
parametersCount
|
int
|
0
|
Camel 2.11.2/2.12.0 がゼロより大きい場合、Camel はこの数のパラメーターを使用でき、JDBC メタデータ API 経由でクエリーするのではなく、置き換えられます。これは、JDBC ベンダーが正しいパラメーター数を返すことができない場合に、代わりに上書きできる場合に便利です。 |
noop
|
boolean
|
false
|
Camel 2.12.0 が設定されている場合、は SQL クエリーの結果を無視し、既存の IN メッセージを処理継続の OUT メッセージとして使用します。 |
useMessageBodyForSql
|
boolean
|
false
|
Camel 2.16: メッセージボディーを SQL として使用し、ヘッダーをパラメーターに使用するかどうか。このオプションが有効な場合には、uri の SQL は使用されません。その後、SQL パラメーターは、キー CamelSqlParameters を含むヘッダーに提供する必要があります。このオプションはプロデューサー専用です。 |
transacted
|
boolean
|
false
|
Camel 2.16.2: SQL consumer only: トランザクションを有効または無効にします。有効にすると、エクスチェンジの処理が失敗した場合、コンシューマーは追加のエクスチェンジを処理しなくなり、ロールバックの Eager が発生します。 |
メッセージボディーの処理 リンクのコピーリンクがクリップボードにコピーされました!
java.util.Iterator タイプのオブジェクトに変換しようとし、この iterator を使用してクエリーパラメーターを埋めます(各クエリーパラメーターはエンドポイント URI の # 記号または他の設定されたプレースホルダーで表されます)。メッセージボディーが配列またはコレクションではない場合、変換により、ボディー自体の 1 つのオブジェクトのみに対して反復する iterator が生成されます。
java.util.List のインスタンスである場合、リストの最初の項目は SQL クエリーの最初の # に置き換えられます。
batch が true に設定されている場合、インバウンドメッセージボディーの解釈はパラメーターのイテレーターではなく、若干変更されます。コンポーネントは、パラメーター iterators が含まれるイテレーターを想定し、外部イテレーターのサイズによってバッチサイズが決まります。
useMessageBodyForSql オプションを使用してメッセージボディーを SQL ステートメントとして使用し、SQL パラメーターをキー SqlConstants.SQL_PARAMETERS のヘッダーに指定する必要があります。SQL クエリーはメッセージボディーからのものであるため、SQL コンポーネントはより動的に機能します。
クエリーの結果 リンクのコピーリンクがクリップボードにコピーされました!
選択 操作の場合、結果は JdbcTemplate.queryFor List ()メソッドによって返される List <Map<String, Object >> タイプのインスタンスになります。更新 操作の場合、結果は更新された行数で、整数 として返され ます。
outputHeader パラメーターを設定すると、結果はヘッダーに配置されます。これは、完全な Message Enrichment パターンを使用してヘッダーを追加する代わりに、シーケンスやその他の小さい値をヘッダーにクエリーするための簡潔な構文を提供します。outputHeader と outputType を一緒に使用すると便利です。以下に例を示します。
from("jms:order.inbox")
.to("sql:select order_seq.nextval from dual?outputHeader=OrderId&outputType=SelectOne")
.to("jms:order.booking");
from("jms:order.inbox")
.to("sql:select order_seq.nextval from dual?outputHeader=OrderId&outputType=SelectOne")
.to("jms:order.booking");
ヘッダーの値 リンクのコピーリンクがクリップボードにコピーされました!
更新 操作を実行すると、SQL コンポーネントは以下のメッセージヘッダーに更新数を保存します。
| ヘッダー | 説明 |
|---|---|
CamelSqlUpdateCount
|
Apache Camel 2.0: 更新操作用に更新 された行数。Integer オブジェクトとして返されます。
|
CamelSqlRowCount
|
Apache Camel 2.0: Integer オブジェクトとして返される 選択 操作に対して返される行数。
|
CamelSqlQuery
|
Camel 2.8: 実行するクエリー。このクエリーは、エンドポイント URI で指定されたクエリーよりも優先されます。ヘッダーのクエリーパラメーターは、# 記号で はなく ? で表示さ れることに注意してください。
|
insert 操作の実行時に、SQL コンポーネントは生成されたキーとこれらの行の数を以下のメッセージヘッダーに格納します(Camel 2.12.4、2.13.1 で利用可能)。
|
ヘッダー
|
説明
|
CamelSqlGeneratedKeysRowCount
|
生成されたキーが含まれるヘッダーの行数。
|
CamelSqlGeneratedKeyRows
|
生成されたキー(キーのマップの一覧)を含む行。
|
生成されるキー リンクのコピーリンクがクリップボードにコピーされました!
CamelSqlRetrieveGeneratedKeys=true を設定します。次に、生成された鍵が上記の表に記載されているキーが含まれるヘッダーとして提供されます。
設定 リンクのコピーリンクがクリップボードにコピーされました!
DataSource への参照を直接設定できるようになりました。
sql:select * from table where id=# order by name?dataSourceRef=myDS
sql:select * from table where id=# order by name?dataSourceRef=myDS
例 リンクのコピーリンクがクリップボードにコピーされました!
List of rows として取得します。各行は Map<String, Object で、キーは列名になります。
// this is the database we create with some initial data for our unit test
db = new EmbeddedDatabaseBuilder()
.setType(EmbeddedDatabaseType.DERBY).addScript("sql/createAndPopulateDatabase.sql").build();
// this is the database we create with some initial data for our unit test
db = new EmbeddedDatabaseBuilder()
.setType(EmbeddedDatabaseType.DERBY).addScript("sql/createAndPopulateDatabase.sql").build();
createAndPopulateDatabase.sql は、以下のように実行します。
create table projects (id integer primary key, project varchar(10), license varchar(5)); insert into projects values (1, 'Camel', 'ASF'); insert into projects values (2, 'AMQ', 'ASF'); insert into projects values (3, 'Linux', 'XXX');
create table projects (id integer primary key, project varchar(10), license varchar(5));
insert into projects values (1, 'Camel', 'ASF');
insert into projects values (2, 'AMQ', 'ASF');
insert into projects values (3, 'Linux', 'XXX');
sql コンポーネントを設定します。sql エンドポイントの前に ダイレクト エンドポイントを使用することに注意してください。これにより、URI direct:simple を使用して direct エンドポイントにエクスチェンジを送信できます。これは、クライアントが長い sql: URI よりも簡単に使用できます。DataSource はレジストリーで検索されるため、標準の Spring XML を使用して DataSource を設定できます。
from("direct:simple")
.to("sql:select * from projects where license = # order by id?dataSourceRef=jdbc/myDataSource")
.to("mock:result");
from("direct:simple")
.to("sql:select * from projects where license = # order by id?dataSourceRef=jdbc/myDataSource")
.to("mock:result");
sql コンポーネントにルーティングする direct エンドポイントに実行します。
DataSource を以下のように設定できます。
<jee:jndi-lookup id="myDS" jndi-name="jdbc/myDataSource"/>
<jee:jndi-lookup id="myDS" jndi-name="jdbc/myDataSource"/>
名前付きパラメーターの使用 リンクのコピーリンクがクリップボードにコピーされました!
from("direct:projects")
.setHeader("lic", constant("ASF"))
.setHeader("min", constant(123))
.to("sql:select * from projects where license = :#lic and id > :#min order by id")
from("direct:projects")
.setHeader("lic", constant("ASF"))
.setHeader("min", constant(123))
.to("sql:select * from projects where license = :#lic and id > :#min order by id")
java.util.Map の場合、名前付きパラメーターはボディーから取得されます。
from("direct:projects")
.to("sql:select * from projects where license = :#lic and id > :#min order by id")
from("direct:projects")
.to("sql:select * from projects where license = :#lic and id > :#min order by id")
式パラメーターの使用 リンクのコピーリンクがクリップボードにコピーされました!
from("direct:projects")
.setBody(constant("ASF"))
.setProperty("min", constant(123))
.to("sql:select * from projects where license = :#${body} and id > :#${property.min} order by id")
from("direct:projects")
.setBody(constant("ASF"))
.setProperty("min", constant(123))
.to("sql:select * from projects where license = :#${body} and id > :#${property.min} order by id")
動的値による IN クエリーの使用 リンクのコピーリンクがクリップボードにコピーされました!
- パラメーター名の前に
in:および を付けます。 - パラメーターの前後に
( )を追加します。
-- this is a comment select * from projects where project in (:#in:names) order by id
-- this is a comment
select *
from projects
where project in (:#in:names)
order by id
from("direct:query")
.to("sql:classpath:sql/selectProjectsIn.sql")
.to("log:query")
.to("mock:query");
from("direct:query")
.to("sql:classpath:sql/selectProjectsIn.sql")
.to("log:query")
.to("mock:query");
from("direct:query")
.to("sql:select * from projects where project in (:#in:names) order by id")
.to("log:query")
.to("mock:query");
from("direct:query")
.to("sql:select * from projects where project in (:#in:names) order by id")
.to("log:query")
.to("mock:query");
JDBC ベースのべき等リポジトリーの使用 リンクのコピーリンクがクリップボードにコピーされました!
org.apache.camel.processor.idempotent.jdbc.AbstractJdbcMessageIdRepository の抽象クラスがあり、カスタム JDBC べき等リポジトリーをビルドできます。
createdAt 列を追加しました。
CREATE TABLE CAMEL_MESSAGEPROCESSED ( processorName VARCHAR(255), messageId VARCHAR(100), createdAt TIMESTAMP )
CREATE TABLE CAMEL_MESSAGEPROCESSED (
processorName VARCHAR(255),
messageId VARCHAR(100),
createdAt TIMESTAMP
)
javax.sql.DataSource を設定する必要があります。
<jdbc:embedded-database id="dataSource" type="DERBY" />
<jdbc:embedded-database id="dataSource" type="DERBY" />
JdbcMessageIdRepository のカスタマイズ リンクのコピーリンクがクリップボードにコピーされました!
org.apache.camel.processor.idempotent.jdbc.JdbcMessageIdRepository を調整するオプションがいくつかあります。
| パラメーター | デフォルト値 | 説明 |
|---|---|---|
createTableIfNotExists
|
true
|
Camel が存在しない場合に Camel がテーブルの作成を試行するかどうかを定義します。 |
tableExistsString
|
SELECT 1 FROM CAMEL_MESSAGEPROCESSED WHERE 1 = 0 | このクエリーは、テーブルがすでに存在しているかどうかを確認するために使用されます。テーブルが存在しないことを示す例外を出力する必要があります。 |
createString
|
CREATE TABLE CAMEL_MESSAGEPROCESSED (processorName VARCHAR (255), messageId VARCHAR (100), createdAt TIMESTAMP) | テーブルの作成に使用されるステートメント。 |
queryString
|
SELECT COUNT(*) FROM CAMEL_MESSAGEPROCESSED WHERE processorName = ?AND messageId = ? |
メッセージがすでにリポジトリーに存在するかどうかを確認するために使用されるクエリー(結果は 0 と等しくありません)。2 つのパラメーターを取ります。最初の 1 つはプロセッサー名()で、2 つ目はメッセージ ID (文字列)です。
|
insertString
|
INSERT INTO CAMEL_MESSAGEPROCESSED (processorName, messageId, createdAt) VALUES (?, ?, ?) |
テーブルにエントリーを追加するために使用される ステートメント。3 つのパラメーターを取ります。1 つ目はプロセッサー名(文字列)で、2 つ目はメッセージ ID (文字列)で、3 つ目は、このエントリーがリポジトリーに追加されたときのタイムスタンプ(java.sql.Timestamp)です。
|
deleteString
|
DELETE FROM CAMEL_MESSAGEPROCESSED WHERE processorName = ?AND messageId = ? |
データベースからエントリーを削除するために使用されるステートメント。2 つのパラメーターを取ります。最初の 1 つはプロセッサー名()で、2 つ目はメッセージ ID (文字列)です。
|
org.apache.camel.processor.idempotent.jdbc.JdbcMessageIdRepository は以下のようになります。
JDBC ベースの集約リポジトリーの使用 リンクのコピーリンクがクリップボードにコピーされました!
camel-jdbc-aggregator コンポーネントで提供されます。Camel 2.7 以降、JdbcAggregationRepository は camel-sql コンポーネントで提供されます。
JdbcAggregationRepository は AggregationRepository で、オンザフライで集約されたメッセージを永続化します。これにより、デフォルトのアグリゲーターはメモリーの AggregationRepository のみを使用するので、メッセージを失わないようにします。JdbcAggregationRepository を使用すると、Camel とともに Aggregator の永続的なサポートを提供できます。
| オプション | タイプ | 説明 |
|---|---|---|
dataSource
|
DataSource
|
必須: データベースへのアクセスに使用する javax.sql.DataSource。
|
repositoryName
|
文字列
|
必須: リポジトリーの名前。 |
transactionManager
|
TransactionManager
|
必須: データベースのトランザクションを管理する org.springframework.transaction.PlatformTransactionManager。TransactionManager はデータベースをサポートできる必要があります。
|
lobHandler
|
LobHandler
|
データベースの Lob タイプを処理する org.springframework.jdbc.support.lob.LobHandler。Oracle を使用する場合など、ベンダー固有の LobHandler を使用するには、このオプションを使用します。
|
returnOldExchange
|
boolean |
get 操作が存在する場合は、get 操作によって古い既存のエクスチェンジが返されるかどうか。デフォルトでは、集計時に古いエクスチェンジを必要としないため、このオプションは false で最適化されます。
|
useRecovery
|
boolean |
リカバリーが有効になっているかどうか。このオプションは、デフォルトで true です。有効にすると、Camel Aggregator は自動的に集約されたエクスチェンジをリカバリーし、再提出します。
|
recoveryInterval
|
long | recovery が有効になっている場合、バックグラウンドタスクは x 度ごとに実行され、失敗したエクスチェンジをスキャンしてリカバリーし、再送信します。デフォルトでは、この間隔は 5000 ミリ秒です。 |
maximumRedeliveries
|
int |
リカバリーされたエクスチェンジの再配信試行の最大数を制限できます。有効にすると、すべての再配信試行に失敗すると、エクスチェンジはデッドレターチャネルに移動します。デフォルトでは、このオプションは無効です。このオプションを使用する場合は、deadLetterUri オプションも指定する必要があります。
|
deadLetterUri
|
文字列 |
使い切られるリカバリーされたエクスチェンジが移動される Dead Letter Channel のエンドポイント URI。このオプションを使用する場合は、maximumRedeliveries オプションも指定する必要があります。
|
storeBodyAsText
|
boolean |
Camel 2.11: メッセージボディーを文字列として格納するかどうか(人間が読める)。デフォルトでは、このオプション は ボディーをバイナリー形式で格納します。
|
headersToStoreAsText
|
List<String>
|
Camel 2.11: ヘッダーを文字列として保存し、人間が判読できる文字列として保存できます。デフォルトでは、このオプションは無効になっており、ヘッダーをバイナリー形式で保存します。 |
optimisticLocking
|
false
|
Camel 2.12: 複数の Camel アプリケーションが同じ JDBC ベースの集約リポジトリーを共有するクラスター化された環境で必要となる楽観的ロックを有効にします。 |
jdbcOptimisticLockingExceptionMapper
|
Camel 2.12: カスタムの org.apache.camel.processor.aggregate.jdbc.JdbcOptimisticLockingExceptionMapper をプラグインして、Camel が再試行できるようにベンダー固有のエラーコードを optimistick ロックエラーにマップできるようにします。これには、optimisticLocking を有効にする必要があります。
|
永続化時に保持される内容 リンクのコピーリンクがクリップボードにコピーされました!
JdbcAggregationRepository は、Serializable と互換性のあるデータタイプのみを保持します。データ型がそのようなタイプの場合はドロップされ、WARN がログに記録されます。また、メッセージ本文とメッセージ ヘッダーのみを保持 し ます。Exchange プロパティーは永続化され ません。
復元 リンクのコピーリンクがクリップボードにコピーされました!
JdbcAggregationRepository はデフォルトで失敗したエクスチェンジ を復元し ます。これは、永続ストアで失敗した エクスチェンジをスキャンするバックグラウンドタスクを持つことで行われます。checkInterval オプションを使用して、このタスクの実行頻度を設定できます。リカバリーはトランザクションとして機能し、Camel が失敗したエクスチェンジのリカバリーおよび再配信を試み ます。リカバリー さ れたエクスチェンジは永続ストアから復元され、再送信されて再度送信されます。
| ヘッダー | タイプ | 説明 |
|---|---|---|
Exchange.REDELIVERED
|
ブール値 | エクスチェンジ が再配信されていることを示すために が true に設定されます。 |
Exchange.REDELIVERY_COUNTER
|
整数 | 1 から始まる再配信の試行。 |
AggregationRepository で confirm メソッドが呼び出されたときに発生します。つまり、同じ エクスチェンジ が再び失敗すると、成功するまで再試行されます。
maximumRedeliveries オプションを使用して、特定のリカバリーエクスチェンジの再配信試行の最大数を制限でき ます。maximumRedeliveries に達したときに エクスチェンジ を送信する場所を Camel が認識できるように deadLetterUri オプションも設定する必要があります。
データベース リンクのコピーリンクがクリップボードにコピーされました!
_COMPLETED の集約と同じ名前が付けられます。名前は Spring Bean で RepositoryName プロパティーで設定する必要があります。以下の例では、集約が使用されます。
aggregation はアグリゲーターリポジトリー名に置き換えます。
ボディーとヘッダーをテキストとして保存 リンクのコピーリンクがクリップボードにコピーされました!
JdbcAggregationRepository を設定してメッセージボディーを保存し、ヘッダーを別の列に String として選択できます。たとえば、ボディーと以下の 2 つのヘッダー companyName および accountName を保存するには、以下の SQL を使用します。
Codec (Serialization) リンクのコピーリンクがクリップボードにコピーされました!
JdbcCodec クラスによって処理されます。コードの詳細の 1 つである ClassLoadingAwareObjectInputStream に注意してください。
ClassLoadingAwareObjectInputStream が Apache ActiveMQ プロジェクトから再利用されました。ObjectInputStream をラップし、currentThread ではなく ContextClassLoader で使用します。この利点は、他のバンドルによって公開されるクラスをロードできることです。これにより、エクスチェンジボディーとヘッダーにカスタム型オブジェクトの参照を設定できます。
Transaction リンクのコピーリンクがクリップボードにコピーされました!
PlatformTransactionManager が必要です。
サービス(開始/停止) リンクのコピーリンクがクリップボードにコピーされました!
start メソッドは、データベースのコネクションと必要なテーブルが存在することを確認します。何らかの誤りがある場合は、起動時に失敗します。
Aggregator の設定 リンクのコピーリンクがクリップボードにコピーされました!
lobHandler プロパティーでインジェクトできます。
Optimistic locking リンクのコピーリンクがクリップボードにコピーされました!
optimisticLocking をオンにし、複数の Camel アプリケーションが集約リポジトリーに対して同じデータベースを共有するクラスター環境でこの JDBC ベースの集約リポジトリーを使用できます。競合状態がある場合、JDBC ドライバーは JdbcAggregationRepository が応答できるベンダー固有の例外を出力します。JDBC ドライバーからの例外が optimistick ロックエラーと見なされるかを知るには、マッパーが必要です。そのため、org.apache.camel.processor.aggregate.jdbc.JdbcOptimisticLockingExceptionMapper があり、必要に応じてカスタムロジックを実装できます。デフォルトの実装 org.apache.camel.processor.aggregate.jdbc.DefaultJdbcOptimisticLockingExceptionMapper は以下のように機能します。
- 原因となった例外が
SQLExceptionの場合、SQLState は 23 で始まる場合にチェックされます。 - 発生した例外が
DataIntegrityViolationExceptionの場合 - 発生した例外クラス名の名前が ConstraintViolation である場合。
- クラス名が設定されている場合、FQN クラス名が一致するためのオプションチェック
第166章 SQL ストアドプロシージャ リンクのコピーリンクがクリップボードにコピーされました!
SQL ストアドプロシージャコンポーネント リンクのコピーリンクがクリップボードにコピーされました!
spring-jdbc を背後で使用します。
pom.xml に追加する必要があります。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
sql-stored:template[?options]
sql-stored:template[?options]
sql-stored:classpath:sql/myprocedure.sql[?options]
sql-stored:classpath:sql/myprocedure.sql[?options]
SUBNUMBERS(
INTEGER ${headers.num1},
INTEGER ${headers.num2},
OUT INTEGER resultofsub
)
SUBNUMBERS(
INTEGER ${headers.num1},
INTEGER ${headers.num2},
OUT INTEGER resultofsub
)
?option=value&option=value&...
オプション リンクのコピーリンクがクリップボードにコピーされました!
|
オプション
|
型
|
デフォルト
|
説明
|
|---|---|---|---|
batch
|
boolean
|
false
|
バッチモードを有効または無効にします。
|
dataSource
|
string
|
|
レジストリーで検索するための
DataSource への参照。
|
noop
|
boolean
|
false
|
が設定されている場合、テンプレートの結果を無視し、処理を継続するために OUT メッセージとして既存の IN メッセージを使用します。
|
outputHeader
|
string
|
テンプレート結果をメッセージのボディーではなくヘッダーに保存します。デフォルトでは outputHeader == null とテンプレートの結果はメッセージボディーに保存されます。メッセージボディーの既存のコンテンツは破棄されます。outputHeader が設定されている場合は、テンプレートの結果を格納するヘッダーの名前として値が使用され、元のメッセージボディーは保持されます。 | |
useMessageBodyForTemplate
|
boolean
|
false
|
メッセージボディーをテンプレートとして使用し、ヘッダーをパラメーターに使用するかどうか。このオプションが有効な場合には、uri のテンプレートは使用されません。 |
ストアドプロシージャーテンプレートの宣言 リンクのコピーリンクがクリップボードにコピーされました!
<to uri="sql-stored:SUBNUMBERS(INTEGER ${headers.num1},INTEGER ${headers.num2},OUT INTEGER resultofsub)"/>
<to uri="sql-stored:SUBNUMBERS(INTEGER ${headers.num1},INTEGER ${headers.num2},OUT INTEGER resultofsub)"/>
CREATE PROCEDURE SUBNUMBERS(VALUE1 INTEGER, VALUE2 INTEGER,OUT RESULT INTEGER)
CREATE PROCEDURE SUBNUMBERS(VALUE1 INTEGER, VALUE2 INTEGER,OUT RESULT INTEGER)
第167章 SSH リンクのコピーリンクがクリップボードにコピーされました!
SSH リンクのコピーリンクがクリップボードにコピーされました!
pom.xml に以下の依存関係を追加する必要があります。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
ssh:[username[:password]@]host[:port][?options]
ssh:[username[:password]@]host[:port][?options]
オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | デフォルト値 | 説明 |
|---|---|---|
host
|
SSH サーバーのホスト名 | |
port
|
22
|
SSH サーバーのポート |
username
|
SSH サーバーでの認証に使用されるユーザー名。 | |
password
|
SSH サーバーによる認証に使用されるパスワード。keyPairProvider が null の場合に使用されます。
|
|
keyPairProvider
|
認証用のキーの読み込みに使用する org.apache.sshd.common.KeyPairProvider を参照します。このオプションを使用する場合は、パスワード は使用されません。
|
|
keyType
|
ssh-rsa
|
keyPairProvider からロードするキータイプを参照します。キータイプは、たとえば ssh-rsa または ssh-dss です。
|
certResource
|
null
|
Camel 2.11: 公開鍵証明書へのパス参照。クラスパスで接頭辞 path:、file:、または http: を付けます。
|
certFilename
|
null
|
@非推奨: 代わりに certResource を使用してください。ファイルベースの keyPairProvider 内で使用するファイル名を参照します。
|
timeout
|
30000
|
SSH サーバーへの接続がタイムアウトするまで待機する時間(ミリ秒単位)。 |
コンシューマーのみのオプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | デフォルト値 | 説明 |
|---|---|---|
initialDelay
|
1000
|
SSH サーバーが起動するポーリングをポーリングするまでの時間(ミリ秒単位)。 |
delay
|
500
|
SSH サーバーの次のポーリングまでの時間(ミリ秒単位)。 |
useFixedDelay
|
true
|
固定遅延または固定レートを使用するかどうかを制御します。詳細は、JDK の ScheduledExecutorService を参照してください。
|
pollCommand
|
null
|
各ポーリングサイクル中に SSH サーバーに送信するコマンド。コマンドを改行で終了する必要があり、URL でエンコードされた %0A である必要があります。
|
プロデューサーエンドポイントとしての使用 リンクのコピーリンクがクリップボードにコピーされました!
.to ("ssh://...")として使用される場合)は、メッセージボディーをリモート SSH サーバーで実行するコマンドとして送信します。
&10;)があることに注意してください。
認証 リンクのコピーリンクがクリップボードにコピーされました!
- まず、
certResourceオプションが設定されているかどうかを確認し、そのオプションを使用している場合は、これを使用して参照される公開鍵証明書を見つけ、それを認証に使用することができます。 certResourceが設定されていない場合、keyPairProviderが設定されているかどうかを確認し、設定されている場合は、そのものを証明書ベースの認証に使用します。certResourceもkeyPairProviderも設定されていない場合は、認証にusernameオプションおよびpasswordオプションが使用されます。
<route>
<from uri="ssh://scott@localhost:8101?certResource=classpath:test_rsa&seFixedDelay=true&elay=5000&ollCommand=features:list%0A"/>
<log message="${body}"/>
</route>
<route>
<from uri="ssh://scott@localhost:8101?certResource=classpath:test_rsa&seFixedDelay=true&elay=5000&ollCommand=features:list%0A"/>
<log message="${body}"/>
</route>
from("ssh://scott@localhost:8101?certResource=classpath:test_rsa&useFixedDelay=true&delay=5000&pollCommand=features:list%0A")
.log("${body}");
from("ssh://scott@localhost:8101?certResource=classpath:test_rsa&useFixedDelay=true&delay=5000&pollCommand=features:list%0A")
.log("${body}");
examples/camel-example-ssh-security にあります。
証明書の依存関係 リンクのコピーリンクがクリップボードにコピーされました!
例 リンクのコピーリンクがクリップボードにコピーされました!
examples/camel-example-ssh および examples/camel-example-ssh-security を参照してください。
第168章 StAX リンクのコピーリンクがクリップボードにコピーされました!
StAX Component リンクのコピーリンクがクリップボードにコピーされました!
pom.xml に以下の依存関係を追加する必要があります。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
stax:content-handler-class
stax:content-handler-class
stax:org.superbiz.FooContentHandler
stax:org.superbiz.FooContentHandler
org.xml.sax.ContentHandler Bean を検索できます。
stax:#myHandler
stax:#myHandler
コンテンツハンドラーを StAX パーサーとして使用する リンクのコピーリンクがクリップボードにコピーされました!
JAXB および StAX を使用してコレクションを繰り返し処理します。 リンクのコピーリンクがクリップボードにコピーされました!
StAXBuilder を提供します。
from("file:target/in")
.split(stax(Record.class)).streaming()
.to("mock:records");
from("file:target/in")
.split(stax(Record.class)).streaming()
.to("mock:records");
stax は、Java コードで静的インポートできる org.apache.camel.component.stax.StAXBuilder の静的メソッドです。stax ビルダーは、デフォルトで、それが使用する XMLReader を認識します。Camel 2.11.1 以降では、以下のようにブール値パラメーターを false に設定するとこの機能をオフにできます。
from("file:target/in")
.split(stax(Record.class, false)).streaming()
.to("mock:records");
from("file:target/in")
.split(stax(Record.class, false)).streaming()
.to("mock:records");
XML DSL を使用した前述の例 リンクのコピーリンクがクリップボードにコピーされました!
第169章 STOMP リンクのコピーリンクがクリップボードにコピーされました!
STOMP コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
pom.xml に以下の依存関係を追加する必要があります。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
stomp:queue:destination[?options]
stomp:queue:destination[?options]
オプション リンクのコピーリンクがクリップボードにコピーされました!
| プロパティー | デフォルト | 説明 |
|---|---|---|
brokerURL
|
tcp://localhost:61613
|
接続する Stomp ブローカーの URI |
login
|
ユーザー名 | |
passcode
|
パスワード | |
host
|
Camel 2.15.3/2.16: 仮想ホスト。 | |
sslContextParameters
|
null
|
Camel 2.17: レジストリーの org.apache.camel.util.jsse.SSLContextParameters への参照。ブローカー URL は ssl をプロトコルとして使用する必要があります。
|
?option=value&option=value&.. の形式で追加できます。
サンプル リンクのコピーリンクがクリップボードにコピーされました!
from("direct:foo").to("stomp:queue:test");
from("direct:foo").to("stomp:queue:test");
from("stomp:queue:test").transform(body().convertToString()).to("mock:result")
from("stomp:queue:test").transform(body().convertToString()).to("mock:result")
第170章 ストリーム リンクのコピーリンクがクリップボードにコピーされました!
ストリームコンポーネント リンクのコピーリンクがクリップボードにコピーされました!
System.in、System.out および System.err ストリームへのアクセスを提供し、ファイルと URL のストリーミングを許可します。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
stream:in[?options] stream:out[?options] stream:err[?options] stream:header[?options]
stream:in[?options]
stream:out[?options]
stream:err[?options]
stream:header[?options]
ファイル および URL エンドポイント URI は Apache Camel 2.0 でサポートされています。
stream:file?fileName=/foo/bar.txt stream:url[?options]
stream:file?fileName=/foo/bar.txt
stream:url[?options]
stream:header URI が指定されている場合、ストリーム ヘッダーを使用して、書き込むストリームを検索します。このオプションは、ストリームプロデューサー(つまり、from ()には表示されません)でのみ利用できます。
?option=value&option=value&.. の形式で追加できます。
Camel on EAP デプロイメント リンクのコピーリンクがクリップボードにコピーされました!
オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | デフォルト値 | 説明 |
|---|---|---|
delay
|
0
|
ストリームの消費または生成前の初期遅延(ミリ秒単位)。 |
encoding
|
JVM のデフォルト |
1.4 の時点では、テキストベースのストリーム(例:メッセージボディーは String オブジェクト)を使用するようにエンコーディング(文字 セット名)を設定できます。指定のない場合、Apache Camel は JVM のデフォルト Charset を 使用します。
|
promptMessage
|
null
|
Apache Camel 2.0: stream:in から読み取るときに使用するメッセージプロンプト。たとえば、これを Enter a command に設定できます。
|
promptDelay
|
0
|
Apache Camel 2.0: メッセージプロンプトを表示する前のオプションの遅延(ミリ秒単位)。 |
initialPromptDelay
|
2000
|
Apache Camel 2.0: メッセージプロンプトを表示する前の初期遅延(ミリ秒単位)。この遅延は 1 回だけ発生します。システムの起動時に使用され、システムへの他のロギングが行われている間にメッセージのプロンプトが書き込まれないようにすることができます。 |
fileName
|
null
|
Apache Camel 2.0: stream:file URI 形式を使用する場合、このオプションはストリーミング元/元のファイル名を指定します。
|
url
|
null
|
stream:url URI 形式を使用する場合、このオプションはストリーム間の URL を指定します。入力ストリームは、JDK URLConnection 機能を使用して開きます。
|
scanStream
|
false
|
Apache Camel 2.0: unix
tail コマンドなどのストリームを継続的に読み取るために使用されます。Camel 2.4 to Camel 2.6: 上書きされるとファイルのオープンを再試行します。tail --retryのようになります。
|
retry
|
false
|
Camel 2.7: ファイルが上書きされた場合にファイルを開く再試行します。tail --retryのようになります。
|
scanStreamDelay
|
0
|
Apache Camel 2.0: scanStream を使用する場合の読み取り試行間の遅延(ミリ秒単位)。
|
groupLines
|
0
|
Camel 2.5: コンシューマーの X 数の行をグループ化します。たとえば、10 行をグループ化し、行ごとに 1 Exchange ではなく、10 行だけのエクスチェンジをスプアウトします。 |
autoCloseCount
|
0
|
Camel 2.10.0: (2.9.3 および 2.8.6)プロデューサーでストリームを閉じる前に処理するメッセージの数。デフォルトではストリームを閉じません(Producer が停止した場合のみ)。より多くのメッセージが送信されると、ストリームは別の autoCloseCount バッチに対して再度開きます。
|
closeOnDone
|
false
|
Camel 2.11.0: このオプションは、Splitter と streaming を同じファイルに組み合わせて使用します。パフォーマンスを向上させるために、ストリームを開いた状態にし、スプリ ッター が完了したときのみ閉じることです。ここでは、2 つ以上のファイルではなく、同じファイルにのみストリームを行う必要があり、最後の分割されたメッセージがストリームエンドポイントにルーティングされ、閉じられるシグナルを取得する必要があることに注意してください。 |
メッセージの内容 リンクのコピーリンクがクリップボードにコピーされました!
String または byte[] のいずれかをサポートします。String または byte[] コンテンツのいずれかを message.in.body に追加します。ストリームに送信されたメッセージ: バイナリーモードのプロデューサーは、( String メッセージではなく)改行文字が続くことはありません。null ボディーを持つメッセージは出力ストリームに追加されません。
サンプル リンクのコピーリンクがクリップボードにコピーされました!
direct:in エンドポイントから System.out ストリームにメッセージをルーティングします。
MyOutputStream を使用します。
tail コマンドに似ています)。
from("stream:file?fileName=/server/logs/server.log&scanStream=true&scanStreamDelay=1000").to("bean:logService?method=parseLogLine");
from("stream:file?fileName=/server/logs/server.log&scanStream=true&scanStreamDelay=1000").to("bean:logService?method=parseLogLine");
scanStream と retry の組み合わせを使用する場合の 1 つは、ファイルが再開かれ、scanStreamDelay の反復ごとにスキャンされることです。NIO2 が利用可能になるまで、ファイルがいつ削除または再作成されるかを確実に検出することはできません。
第171章 StringTemplate リンクのコピーリンクがクリップボードにコピーされました!
string Template リンクのコピーリンクがクリップボードにコピーされました!
pom.xml に以下の依存関係を追加する必要があります。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
string-template:templateName[?options]
string-template:templateName[?options]
?option=value&option=value&.. の形式で追加できます。
オプション リンクのコピーリンクがクリップボードにコピーされました!
| オプション | デフォルト | 説明 |
|---|---|---|
allowContextMapAll (producer)
|
false
|
コンテキストマップが前詳細へのアクセスを許可するかどうかを設定します。デフォルトでは、メッセージの本文とヘッダーにのみアクセスできます。このオプションは、現在の Exchange および CamelContext へのフルアクセスに対して有効にできます。これを行うと、CamelContext API の全機能へのアクセスが開かれるため、潜在的なセキュリティーリスクが発生します。
|
allowTemplateFromHeader (producer)
|
false
|
ヘッダーのリソーステンプレートの使用を許可するかどうか (デフォルトは false)。このオプションを有効にすると、セキュリティーの問題があります。たとえば、ヘッダーに信頼されていないコンテンツやユーザー派生コンテンツが含まれている場合、これは最終的にエンドアプリケーションの信頼性および完全性に影響を与える可能性があるため、このオプションは注意して使用してください。
|
contentCache
|
false
|
読み込み時のリソースコンテンツのキャッシュ。注記: Camel 2.9 でキャッシュされたリソースコンテンツは、エンドポイントの clearContentCache 操作を使用して JMX 経由でクリアできます。
|
delimiterStart
|
null
|
Camel 2.11.1 以降、変数開始区切り文字の設定 |
delimiterStop
|
null
|
Camel 2.11.1 以降、変数終了区切り文字の設定 |
Headers リンクのコピーリンクがクリップボードにコピーされました!
org.apache.camel.stringtemplate.resource を持つメッセージヘッダーのリソースへの参照を保存します。リソースは org.springframework.core.io.Resource オブジェクトです。
ホットリロード リンクのコピーリンクがクリップボードにコピーされました!
contentCache=true を設定すると、Apache Camel はリソースを 1 度だけ読み込み、ホットリロードができません。このシナリオは、リソースが変更されない場合に実稼働で使用できます。
stringtemplate 属性 リンクのコピーリンクがクリップボードにコピーされました!
java.util.Mapのみ)として文字列テンプレートに提供します。Exchange は以下のように転送されます。
| key | value |
|---|---|
exchange
|
エクスチェンジ自体。 |
ヘッダー
|
In メッセージのヘッダー。 |
camelContext
|
Camel コンテキスト。 |
request
|
In メッセージ。 |
in
|
In メッセージ。 |
ボディー
|
In メッセージのボディー。 |
out
|
Out メッセージ(InOut メッセージ交換パターンにのみ有効)。 |
response
|
Out メッセージ(InOut メッセージ交換パターンにのみ有効)。 |
サンプル リンクのコピーリンクがクリップボードにコピーされました!
from("activemq:My.Queue").
to("string-template:com/acme/MyResponse.tm");
from("activemq:My.Queue").
to("string-template:com/acme/MyResponse.tm");
電子メールのサンプル リンクのコピーリンクがクリップボードにコピーされました!
StringTemplate にそのまま配置されます。この例では camel 2.11.0 で機能します。Camel バージョンが 2.11.0 未満の場合は、変数を起動して $ で終了する必要があります。
第172章 Stub リンクのコピーリンクがクリップボードにコピーされました!
スタブコンポーネント リンクのコピーリンクがクリップボードにコピーされました!
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
stub:someUri
stub:someUri
someUri は、任意のクエリーパラメーターを持つ任意の URI にすることができます。
例 リンクのコピーリンクがクリップボードにコピーされました!
- stub:smtp://somehost.foo.com?user=whatnot&something=else
- stub:http://somehost.bar.com/something
第173章 Swagger リンクのコピーリンクがクリップボードにコピーされました!
概要
173.1. 概要 リンクのコピーリンクがクリップボードにコピーされました!
Dependencies リンクのコピーリンクがクリップボードにコピーされました!
pom.xml ファイルに以下の依存関係を追加する必要があります。
Swagger サーブレットの選択 リンクのコピーリンクがクリップボードにコピーされました!
- Camel 2.15.x
org.apache.camel.component.swagger.DefaultCamelSwaggerServlet注記このデフォルトのサーブレットは任意の環境と統合し、JMX を使用して使用する CamelContext を検出します。これは、Camel 2.15 以降で非推奨となった Camel 2.14.x サーブレットの両方を置き換えます。 - Camel 2.14.xSwagger サーブレットは Spring または
servletListenerコンポーネントと統合されます。- Spring
org.apache.camel.component.swagger.spring.SpringRestSwaggerApiDeclarationServlet servletListenercomponentorg.apache.camel.component.swagger.servletlistener.ServletListenerRestSwaggerApiDelarationServlet
サーブレット設定パラメーター リンクのコピーリンクがクリップボードにコピーされました!
| パラメーター | タイプ | 説明 |
|---|---|---|
| api.contact | 文字列 | API 関連の対応に使用する電子メールを指定します。 |
| api.description | 文字列 | [必須] アプリケーションの簡単な説明を指定します。 |
| api.license | 文字列 | API に使用されるライセンスの名前を指定します。 |
| api.licenseUrl | 文字列 | API に使用されるライセンスの URL を指定します。 |
| api.path | 文字列 |
[必須] API が利用可能である場所を指定します。
|
| api.termsOfServiceUrl | 文字列 | API 利用規約への URL を指定します。 |
| api.title | 文字列 | [必須] アプリケーションのタイトルを指定します。 |
| api.version | 文字列 | API のバージョンを指定します。デフォルトは 0.0.0 です。 |
| base.path | 文字列 |
[必須] REST サービスが利用できる場所を指定します。
|
| cors | ブール値 |
CORS を有効にするかどうかを指定します。このパラメーターは、API ブラウザーの CORS のみを有効にします。REST サービスへのアクセスは有効化されません。デフォルトは
false です。
このパラメーターを使用する代わりに、CorsFilter (x を参照)を使用することが推奨されます。
|
| swagger.version | 文字列 | Swagger 仕様のバージョンを指定します。デフォルトは 1.2 です。 |
CorsFilter の使用 リンクのコピーリンクがクリップボードにコピーされました!
- Access-Control-Allow-Origin = *
- access-Control-Allow-Methods = GET, HEAD, POST, PUT, DELETE, TRACE, OPTIONS, CONNECT, PATCH
- Access-Control-Max-Age = 3600
- Access-Control-Allow-Headers = Origin, Accept, X-Requested-With, Content-Type, Access-Control-Request-Method, Access-Control-Request-Headers
org.apache.camel.component.swagger.RestSwaggerCorsFilter を WEB-INF/web.xml ファイルに追加します。以下に例を示します。
173.2. WAR デプロイメントの設定 リンクのコピーリンクがクリップボードにコピーされました!
WEB-INF/web.xml ファイルでサーブレットオプションを設定する必要があります。
Camel 2.15.x リンクのコピーリンクがクリップボードにコピーされました!
Camel 2.14.x リンクのコピーリンクがクリップボードにコピーされました!
org.apache.camel.component.swagger.spring.SpringRestSwaggerApiDeclarationServlet および org.apache.camel.component.swagger.servletlistener.ServletListenerRestSwaggerApiDelarationServlet が同じオプションをサポートします。
173.3. OSGi デプロイメントの設定 リンクのコピーリンクがクリップボードにコピーされました!
org.apache.camel.component.swagger.DefaultCamelSwaggerServlet は、「サーブレット設定パラメーター」 で説明されているオプションをサポートします。
blueprint.xml ファイルでサーブレットオプションと REST 設定を設定する必要があります。以下に例を示します。
serviceservice要素は camel swagger サーブレット(<bean class="org.apache.camel.component.swagger.DefaultCamelSwaggerServlet"/>)を公開し、複数のサーブレットプロパティーを初期化します。aliasaliasプロパティーは、camel swagger サーブレットを/api-docs/* にバインドします。init-prefixinit-prefixプロパティーは、すべての camel swagger サーブレットプロパティーの接頭辞をinit に設定します。これは、WAR 実装でweb.xml設定でinit-param要素を使用するのと似ています。restConfiguration- camelContext では、
restConfiguration要素はポート 8080 の Web サーブレットとして Jetty を指定します。 rest- camelContext では、
rest要素は 2 つの REST エンドポイントを設定し、それらを以下の 2 つのroute要素で定義された camel エンドポイントにルーティングします。
第174章 Swagger Java リンクのコピーリンクがクリップボードにコピーされました!
Swagger Java コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
camel-swagger-java モジュールと統合できます。
pom.xml に追加する必要があります。
camel-example-swagger-cdi )を参照してください。
Swagger をサーブレットとして使用 リンクのコピーリンクがクリップボードにコピーされました!
rest-dsl での Swagger の使用 リンクのコピーリンクがクリップボードにコピーされました!
apiContextPath dsl を以下のように設定します。
オプション リンクのコピーリンクがクリップボードにコピーされました!
enableCORS, host,contextPath, dsl などの適切な方法を使用します。api.xxx のオプションは、apiProperty dsl を使用して設定されます。
|
オプション
|
タイプ
|
説明
|
|---|---|---|
| cors | ブール値 | CORS を有効にするかどうか。これにより、api ブラウザーの CORS のみが有効になり、REST サービスへの実際のアクセスは有効ではないことに注意してください。デフォルトは false です。このオプションを使用する代わりに、CorsFilte を使用することが推奨されます。詳細は、以下を参照してください。 |
| swagger.version | 文字列 | Swagger 仕様バージョン。デフォルトは 2.0 です。 |
| host | 文字列 | ホスト名を設定します。camel-swagger-java が設定されていない場合、名前は localhost ベースとして計算されます。 |
| スキーマ | 文字列 | 使用するプロトコルスキーム。"http,https" のように、複数の値をコンマで区切ることができます。デフォルト値は「http」です。このオプションは schemes という名前であるため、Camel 2.17 以降では 非推奨 となりました。 |
| schemes | 文字列 | Camel 2.17: 使用するプロトコルスキーム"http,https" のように、複数の値をコンマで区切ることができます。デフォルト値は「http」です。 |
| base.path | 文字列 |
必須: REST サービスが利用できるベースパスを設定します。パスは相対(http/https で開始されない)であり、camel-swagger-java は実行時に絶対ベースパスを計算します。
protocol://host:port/context-path/base.path
|
| api.path | 文字列 |
API が利用できるパスを設定します(例:/api-docs)。パスは相対(http/https で開始されない)であり、camel-swagger-java は実行時に絶対ベースパスを計算します。
protocol://host:port/context-path/api.path
そのため、相対パスの使用ははるかに簡単です。例については、上記を参照してください。
|
| api.version | 文字列 | API のバージョン。デフォルトは 0.0.0 です。 |
| api.title | 文字列 | アプリケーションのタイトル。 |
| api.description | 文字列 | アプリケーションの簡単な説明。 |
| api.termsOfService | 文字列 | API の利用規約への URL。 |
| api.contact.name | 文字列 | 連絡先に使用する個人または組織の名前 |
| api.contact.email | 文字列 | API 関連の対応に使用するメール。 |
| api.contact.url | 文字列 | API 関連の問い合わせ先の Web サイトへの URL。 |
| api.license.name | 文字列 | API に使用されるライセンス名。 |
| api.license.url | 文字列 | API に使用されるライセンスへの URL。 |
| apiContextIdListing | boolean | REST サービスを持つ JVM のすべての CamelContext 名の一覧表示を許可するかどうか。有効にすると、api-doc のルートパスにより、すべてのコンテキストが一覧表示されます。無効にするとコンテキスト ID が表示されず、api-doc のルートパスは現在の CamelContext を一覧表示します。デフォルトは false です。 |
| apiContextIdPattern | 文字列 | コンテキストリストに示されている CamelContext 名をフィルターできるようにするパターン。このパターンは正規表現と * をワイルドカードとして使用します。Intercep で使用されるのと同じパターンの一致 |
CorsFilter リンクのコピーリンクがクリップボードにコピーされました!
org.apache.camel.swagger.servlet.RestSwaggerCorsFilter を web.xml に追加します。
- Access-Control-Allow-Origin = *
- access-Control-Allow-Methods = GET, HEAD, POST, PUT, DELETE, TRACE, OPTIONS, CONNECT, PATCH
- Access-Control-Max-Age = 3600
- Access-Control-Allow-Headers = Origin, Accept, X-Requested-With, Content-Type, Access-Control-Request-Method, Access-Control-Request-Headers
ContextIdListing enabled リンクのコピーリンクがクリップボードにコピーされました!
JSON または Yaml リンクのコピーリンクがクリップボードにコピーされました!
例 リンクのコピーリンクがクリップボードにコピーされました!
camel-example-swagger-cdi および camel-example-swagger-java が含まれています。
第175章 Test リンクのコピーリンクがクリップボードにコピーされました!
テストコンポーネント リンクのコピーリンクがクリップボードにコピーされました!
pom.xml に以下の依存関係を追加する必要があります。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
test:expectedMessagesEndpointUri
test:expectedMessagesEndpointUri
URI オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | デフォルト値 | 説明 |
|---|---|---|
timeout
|
2000
|
Camel 2.12: URI からメッセージボディーをポーリングする際に使用するタイムアウト。 |
anyOrder
|
false
|
Camel 2.17: 予想されるメッセージが同じ順序で到達するか、または任意の順序で到達できるかどうか。 |
split
|
false
|
Camel 2.17: 有効にすると、テストエンドポイントからロードされたメッセージは \n, \r delimiters (新しい行)を使用して分割されるため、各行が想定されるメッセージになります。たとえば、file エンドポイントを使用して、各行が想定されるメッセージである ファイルを読み込むには、以下を実行します。
|
delimiter
|
\n|\r
|
Camel 2.17: 分割が有効な場合に使用するスプリット区切り文字。デフォルトでは、区切り文字は新しい行ベースです。区切り文字は正規表現にすることができます。 |
例 リンクのコピーリンクがクリップボードにコピーされました!
from("seda:someEndpoint").
to("test:file://data/expectedOutput?noop=true");
from("seda:someEndpoint").
to("test:file://data/expectedOutput?noop=true");
第176章 Timer リンクのコピーリンクがクリップボードにコピーされました!
タイマーコンポーネント リンクのコピーリンクがクリップボードにコピーされました!
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
timer:name[?options]
timer:name[?options]
name は Timer オブジェクトの名前で、これはエンドポイント間で作成および共有されます。したがって、すべてのタイマーエンドポイントに同じ名前を使用する場合は、1 つの Timer オブジェクトとスレッドのみが使用されます。
?option=value&option=value&.. の形式で追加できます。
null です。したがって、exchange.getIn().getBody() は null を返します。
オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | デフォルト値 | 説明 |
|---|---|---|
time
|
null
|
java.util.Date は 最初 のイベントを生成する必要があります。URI を使用する場合、パターンは yyyy-MM-dd HH:mm:ss または yyyy-MM-dd'T'HH:mm:ss です。
|
pattern
|
null
|
URI 構文を使用して time オプションの設定に使用するカスタムの Date パターンを指定できます。
|
period
|
1000
|
0 を超える場合は、期間 (ミリ秒単位)ごとに定期的なイベントを生成します。
|
delay
|
1000
|
最初のイベントが生成されるまで待機する時間(ミリ秒単位)。time オプションと併用しないでください。Camel 2.17 以降 では、負の遅延を指定できます。このシナリオでは、タイマーがイベントをできるだけ早く生成し、実行します。
|
fixedRate
|
false
|
イベントは、指定された期間で区切られた、約一定間隔で行われます。 |
daemon
|
true
|
タイマーエンドポイントに関連付けられたスレッドがデーモンとして実行されるかどうかを指定します。 |
repeatCount
|
0
|
camel 2.8: 実行の最大数を指定します。そのため、これを 1 に設定するとタイマーは一度だけ実行されます。これを 5 に設定した場合、5 回だけ実行されます。0 または負の値を設定すると、無制限に実行されます。 |
エクスチェンジプロパティー リンクのコピーリンクがクリップボードにコピーされました!
Exchange に追加します。
| 名前 | タイプ | 説明 |
|---|---|---|
Exchange.TIMER_NAME
|
文字列
|
name オプションの値。
|
Exchange.TIMER_TIME
|
日付
|
time オプションの値。
|
Exchange.TIMER_PERIOD
|
long
|
period オプションの値。
|
Exchange.TIMER_FIRED_TIME
|
日付
|
コンシューマーが実行した時間。 |
Exchange.TIMER_COUNTER
|
Long
|
Camel 2.8: 現在の fire カウンター。1 から始まります。 |
メッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | タイプ | 説明 |
|---|---|---|
Exchange.TIMER_FIRED_TIME
|
java.util.Date
|
コンシューマーが実行される時間 |
例 リンクのコピーリンクがクリップボードにコピーされました!
from("timer://foo?fixedRate=true&period=60000").to("bean:myBean?method=someMethodName");
from("timer://foo?fixedRate=true&period=60000").to("bean:myBean?method=someMethodName");
period=60s )を指定できます。
<route>
<from uri="timer://foo?fixedRate=true&period=60000"/>
<to uri="bean:myBean?method=someMethodName"/>
</route>
<route>
<from uri="timer://foo?fixedRate=true&period=60000"/>
<to uri="bean:myBean?method=someMethodName"/>
</route>
できるだけ早く実行する リンクのコピーリンクがクリップボードにコピーされました!
<route>
<from uri="timer://foo?delay=-1"/>
<to uri="bean:myBean?method=someMethodName"/>
</route>
<route>
<from uri="timer://foo?delay=-1"/>
<to uri="bean:myBean?method=someMethodName"/>
</route>
repeatCount パラメーターを負の遅延と共に指定して、固定数に達した後にメッセージの実行を停止することもできます。repeatCount を指定しないと、ルートが停止するまでタイマーがメッセージを実行します。
1 度だけ発行 リンクのコピーリンクがクリップボードにコピーされました!
repeatCount オプションを使用します。
<route>
<from uri="timer://foo?repeatCount=1"/>
<to uri="bean:myBean?method=someMethodName"/>
</route>
<route>
<from uri="timer://foo?repeatCount=1"/>
<to uri="bean:myBean?method=someMethodName"/>
</route>
第177章 Twitter リンクのコピーリンクがクリップボードにコピーされました!
Twitter リンクのコピーリンクがクリップボードにコピーされました!
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-twitter</artifactId>
<version>${camel-version}</version>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-twitter</artifactId>
<version>${camel-version}</version>
</dependency>
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
twitter://endpoint[?options]
twitter://endpoint[?options]
TwitterComponent: リンクのコピーリンクがクリップボードにコピーされました!
| オプション | 説明 |
|---|---|
consumerKey
|
コンシューマーキー |
consumerSecret
|
コンシューマーシークレット |
accessToken
|
アクセストークン |
accessTokenSecret
|
アクセストークンのシークレット |
コンシューマーエンドポイント: リンクのコピーリンクがクリップボードにコピーされました!
List を返すエンドポイントではなく、camel-twitter は返されたオブジェクトごとにルートエクスチェンジを 1 つ作成します。たとえば、timeline/home がステータス 5 回作成されると、ルートは 5 回実行されます( Statusごとに 1 回)。
| エンドポイント | コンテキスト | ボディタイプ | 注意 |
|---|---|---|---|
directmessage
|
直接、ポーリング |
twitter4j.DirectMessage
|
|
search
|
直接、ポーリング |
twitter4j.Status
|
|
streaming/filter
|
イベント、ポーリング |
twitter4j.Status
|
|
streaming/sample
|
イベント、ポーリング |
twitter4j.Status
|
|
streaming/user
|
イベント、ポーリング |
twitter4j.Status
twitter4j.DirectMessage
twitter4j.UserList
|
Camel 2.16: 保護されたユーザーおよびアカウントからツイートを受信するため。
Camel 2.17: DirectMessages, Favorites, Lists, Following events がサポートされるようになりました。
|
timeline/home
|
直接、ポーリング |
twitter4j.Status
|
|
timeline/mentions
|
直接、ポーリング |
twitter4j.Status
|
|
timeline/retweetsofme
|
直接、ポーリング |
twitter4j.Status
|
|
timeline/user
|
直接、ポーリング |
twitter4j.Status
|
プロデューサーエンドポイント: リンクのコピーリンクがクリップボードにコピーされました!
| エンドポイント | ボディタイプ |
|---|---|
directmessage
|
String
|
search
|
List<twitter4j.Status>
|
timeline/user
|
String
|
URI オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | デフォルト値 | 説明 |
|---|---|---|
type
|
直接的な
|
直接、イベント、またはポーリング |
delay
|
ポーリング間の遅延。デフォルト値は 60 秒です。Camel 2.16 以前の値は秒単位です。Camel 2.17 以降のミリ秒単位。 | |
consumerKey
|
null
|
Consumer Key。代わりに TwitterComponent レベルで設定することもできます。
|
consumerSecret
|
null
|
コンシューマーシークレット。代わりに TwitterComponent レベルで設定することもできます。
|
accessToken
|
null
|
アクセストークン。代わりに TwitterComponent レベルで設定することもできます。
|
accessTokenSecret
|
null
|
アクセストークンシークレット。代わりに TwitterComponent レベルで設定することもできます。
|
user
|
null
|
ユーザー名。ユーザーのタイムライン消費、ダイレクトメッセージの実稼働などに使用されます。 |
locations
|
null
|
'lat,lon;lat,lon;...' lat/lons のペアによって作成されたバインドされたボックス。ストリーミング/フィルターに使用できます。 |
keywords
|
null
|
'foo1,foo2,foo3...' 検索およびストリーミング/フィルターに使用できます。OR などで 検索するためのキーワード構文については、高度 な検索 を参照してください。 |
userIds
|
null
|
'username,username...' ストリーミング/フィルターに使用できます。 |
filterOld
|
true
|
以前にポーリングされた古いツイートを除外します。この状態はメモリーにのみ保存され、最後のツイート ID に基づいています。Camel 2.11.0 以降、検索プロデューサーはこのオプションをサポートします |
sinceId
|
1
|
Camel 2.11.0: ツイートをプルするために使用される最後のツイート ID。これは、長時間実行した後に camel ルートが再起動する場合に便利です。 |
lang
|
null
|
Camel 2.11.0: 検索に使用される lang 文字列 ISO_639-1 |
count
|
null
|
Camel 2.11.0: ページごとの結果の制限数。 |
numberOfPages
|
1
|
Camel 2.11.0: camel-twitter が消費するページ結果の数。 |
httpProxyHost
|
null
|
Camel 2.12.3: camel-twitter に使用できる http プロキシーホスト。
|
httpProxyPort
|
null
|
Camel 2.12.3: camel-twitter に使用できる http プロキシーポート。
|
httpProxyUser
|
null
|
Camel 2.12.3: camel-twitter に使用できる http プロキシーユーザー。
|
httpProxyPassword
|
null
|
Camel 2.12.3: camel-twitter に使用できる http プロキシーパスワード。
|
latitude
|
|
Camel 2.16: latitude による検索に、ストリーム以外の地理的な検索で使用されます。
longitude、latitude、radius、および distanceMetric のすべてのオプションを設定する必要があります。
|
longitude
|
|
Camel 2.16: ストリーム以外の地理的な検索により、長期間検索に使用されます。
longitude、latitude、radius、および distanceMetric のすべてのオプションを設定する必要があります。
|
radius
|
|
Camel 2.16: radius で検索するために、ストリーム以外の地理的な検索で使用されます。
longitude、latitude、radius、および distanceMetric のすべてのオプションを設定する必要があります。
|
distanceMetric
|
km
|
Camel 2.16: ストリーム以外の地理的な検索で使用され、設定されたメトリクスを使用して radius で検索します。この単位は、ミリ秒の場合は
mi、kilometer の場合は km となります。longitude、latitude、radius、および distanceMetric のすべてのオプションを設定する必要があります。
|
メッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 説明 |
|---|---|
CamelTwitterKeywords
|
このヘッダーは、検索キー単語を動的に変更するために検索プロデューサーによって使用されます。 |
CamelTwitterSearchLanguage
|
Camel 2.11.0: このヘッダーは、検索エンドポイントの検索言語を動的に設定する lang のオプションを上書きできます。
|
CamelTwitterCount
|
Camel 2.11.0 このヘッダーは、返される最大 twitters を設定する count のオプションを上書きできます。
|
CamelTwitterNumberOfPages
|
Camel 2.11.0 このヘッダーは、twitter を返すページ数を設定する numberOfPages のオプションを収束できます。
|
CamelTwitterNumberOfPages
|
Camel 2.17.0: 受信したイベントのタイプ( org.apache.camel.component.twitter.consumer.TwitterEventTypeを参照してください)。
|
CamelTwitterNumberOfPages
|
Camel 2.17.0: 当事者を特定します。 |
CamelTwitterNumberOfPages
|
Camel 2.17.0: 当事者ロールを識別します。 |
メッセージボディー リンクのコピーリンクがクリップボードにコピーされました!
API 流量制御 リンクのコピーリンクがクリップボードにコピーされました!
Twitter プロファイル内でステータス更新を作成するには、このプロデューサーを String ボディーを送信します。 リンクのコピーリンクがクリップボードにコピーされました!
from("direct:foo")
.to("twitter://timeline/user?consumerKey=[s]&consumerSecret=[s]&accessToken=[s]&accessTokenSecret=[s]);
from("direct:foo")
.to("twitter://timeline/user?consumerKey=[s]&consumerSecret=[s]&accessToken=[s]&accessTokenSecret=[s]);
60 秒ごとに、自宅のタイムラインのすべてのステータスをポーリングするには、以下を実行します。 リンクのコピーリンクがクリップボードにコピーされました!
from("twitter://timeline/home?type=polling&delay=60&consumerKey=[s]&consumerSecret=[s]&accessToken=[s]&accessTokenSecret=[s]")
.to("bean:blah");
from("twitter://timeline/home?type=polling&delay=60&consumerKey=[s]&consumerSecret=[s]&accessToken=[s]&accessTokenSecret=[s]")
.to("bean:blah");
キーワード 'camel' ですべてのステータスを検索するには、以下を実行します。 リンクのコピーリンクがクリップボードにコピーされました!
from("twitter://search?type=direct&keywords=camel&consumerKey=[s]&consumerSecret=[s]&accessToken=[s]&accessTokenSecret=[s]")
.to("bean:blah");
from("twitter://search?type=direct&keywords=camel&consumerKey=[s]&consumerSecret=[s]&accessToken=[s]&accessTokenSecret=[s]")
.to("bean:blah");
静的キーワードでプロデューサーを使用した検索 リンクのコピーリンクがクリップボードにコピーされました!
from("direct:foo")
.to("twitter://search?keywords=camel&consumerKey=[s]&consumerSecret=[s]&accessToken=[s]&accessTokenSecret=[s]");
from("direct:foo")
.to("twitter://search?keywords=camel&consumerKey=[s]&consumerSecret=[s]&accessToken=[s]&accessTokenSecret=[s]");
ヘッダーから動的キーワードを持つプロデューサーを使用した検索 リンクのコピーリンクがクリップボードにコピーされました!
CamelTwitterKeywords ヘッダーに割り当てることができます。
from("direct:foo")
.setHeader("CamelTwitterKeywords", header("bar"))
.to("twitter://search?consumerKey=[s]&consumerSecret=[s]&accessToken=[s]&accessTokenSecret=[s]");
from("direct:foo")
.setHeader("CamelTwitterKeywords", header("bar"))
.to("twitter://search?consumerKey=[s]&consumerSecret=[s]&accessToken=[s]&accessTokenSecret=[s]");
例 リンクのコピーリンクがクリップボードにコピーされました!
第178章 Undertow リンクのコピーリンクがクリップボードにコピーされました!
Undertow コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
pom.xml に追加する必要があります。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
undertow:http://hostname[:port][/resourceUri][?options]
undertow:http://hostname[:port][/resourceUri][?options]
?option=value&option=value&...
オプション リンクのコピーリンクがクリップボードにコピーされました!
|
名前
|
デフォルト値
|
説明
|
|---|---|---|
|
httpMethodRestrict
|
GET/POST/PUT などの HttpMethod が一致する場合にのみ消費できるようにするために使用されます。複数のメソッドはコンマで区切って指定できます。 | |
|
matchOnUriPrefix
|
完全に一致するものが見つからない場合に、コンシューマーが URI 接頭辞と一致することでターゲットコンシューマーの検索を試みるかどうか。 | |
|
headerFilterStrategy
|
カスタムの HeaderFilterStrategy を使用して、Camel メッセージとの間でヘッダーをフィルタリングします。 | |
|
sslContextParameters
|
SSLContextParameters オブジェクトを使用してセキュリティーを設定するには、以下を行います。Security Guide の Configuring Transport Security for Camel Components の章を参照してください。
|
|
| throwExceptionOnFailure | オプションが true の場合、HttpProducer は Exchange.HTTP_URI ヘッダーを無視し、リクエストにエンドポイントの URI を使用します。また、オプション throwExceptionOnFailure を false に設定して、プロデューサーがすべての障害応答を返信するようにすることもできます。 | |
| transferException | リモートサーバーからの応答が失敗した場合に HttpOperationFailedException を出力することを無効にするオプション。これにより、HTTP ステータスコードに関係なくすべての応答を取得できます。 | |
| undertowHttpBinding | カスタムの UndertowHttpBinding を使用して Camel メッセージと undertow 間のマッピングを制御します。 | |
keepAlive
|
true | Camel 2.16.1: Producer のみ: 非アクティブのためにソケットが閉じられないように設定 |
| tcpNoDelay | true | Camel 2.16.1: Producer only:Setting to improve TCP protocol performance (Camel 2.16.1: プロデューサーのみ:TCP プロトコルのパフォーマンスを改善するための設定) |
| reuseAddresses | true | Camel 2.16.1: プロデューサーのみ:ソケットの多重化を容易にするための設定 |
| options.XXX |
Camel 2.16.1: Producer only:追加のチャネルオプションを設定します。使用できるオプションは、org.xnio.Options で定義されています。エンドポイント URI から設定するには、"option.close-abort=true&option.send-buffer=8192" などの各オプションの前に options. を付けます。
|
|
| enableOptions | false | Camel 2.17: この Undertow コンシューマーに対して HTTP OPTIONS を有効にするかどうかを指定します。デフォルトでは、OPTIONS はオフになっています。 |
メッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
Exchange.HTTP_CHUNKED,CamelHttpChunked ヘッダーを使用して camel-undertow コンシューマーでチェンドエンコーディングをオンまたはオフにします。
http://myserver/myserver?orderid=123 を持つクライアントリクエストの場合、エクスチェンジには値が 123 の orderid という名前のヘッダーが含まれます。
コンポーネントオプション リンクのコピーリンクがクリップボードにコピーされました!
UndertowComponent では、以下のオプションを提供します。
|
名前
|
デフォルト値
|
説明
|
|---|---|---|
|
undertowHttpBinding
|
|
カスタムの UndertowHttpBinding を使用して Camel メッセージと undertow 間のマッピングを制御します。
|
|
httpConfiguration
|
共有 HttpConfiguration を基本設定として使用します。 |
プロデューサーの例 リンクのコピーリンクがクリップボードにコピーされました!
from("direct:start").to("undertow:http://www.google.com");
from("direct:start").to("undertow:http://www.google.com");
<route>
<from uri="direct:start"/>
<to uri="undertow:http://www.google.com"/>
<route>
<route>
<from uri="direct:start"/>
<to uri="undertow:http://www.google.com"/>
<route>
コンシューマーの例 リンクのコピーリンクがクリップボードにコピーされました!
http://localhost:8080/myapp/myservice で HTTP サービスを公開するルートを定義します。
<route> <from uri="undertow:http://localhost:8080/myapp/myservice"/> <to uri="bean:myBean"/> </route>
<route>
<from uri="undertow:http://localhost:8080/myapp/myservice"/>
<to uri="bean:myBean"/>
</route>
localhost を指定すると、Camel はローカルの TCP/IP ネットワークインターフェイスでのみエンドポイントを公開するため、操作するマシンからアクセスすることはできません。
0.0.0.0 アドレスを使用する必要があります。
第179章 検証 リンクのコピーリンクがクリップボードにコピーされました!
検証コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
validator:someLocalOrRemoteResource
validator:someLocalOrRemoteResource
msv:org/foo/bar.xsdmsv:file:../foo/bar.xsdvalidator:com/mypackage/myschema.xsd
pom.xml に以下の依存関係を追加する必要があります。
オプション リンクのコピーリンクがクリップボードにコピーされました!
| オプション | デフォルト | 説明 |
|---|---|---|
resourceResolverFactory
|
DefaultValidatorResourceResolverFactory
|
Camel 2.17: エンドポイントごとにリソースリゾルバーを作成する org.apache.camel.component.validator.ValidatorResourceResolverFactory を参照します。デフォルトの実装では、デフォルトのリソースリゾルバー org.apache.camel.component.validator.DefaultLSResourceResolver を作成するエンドポイントごとに org.apache.camel.component.validator.DefaultLSResourceResolver のインスタンスを作成します。デフォルトのリソースリゾルバーは、クラスパスとファイルシステムからスキーマファイルを読み取ります。このオプションは、resourceResolver オプションではなく、リソースリゾルバーがエンドポイントで指定されたルートスキーマドキュメントのリソース URI に依存する場合に使用されます。たとえば、デフォルトのリソースリゾルバーを拡張する場合などです。このオプションは Validator コンポーネントでも利用できるため、リソースリゾルバーファクトリーはすべてのエンドポイントに対して 1 回のみ設定できます。
|
resourceResolver
|
null
|
Camel 2.9: レジストリーの org.w3c.dom.ls.LSResourceResolver への参照。
|
useDom
|
false
|
Apache Camel 2.0: DOMSource/{{DOMResult}} または SaxSource/{{SaxResult}} をバリデーターが使用するかどうか。
|
useSharedSchema
|
true
|
Camel 2.3: スキーマ インスタンスを共有すべきかどうか。このオプションは、JDK 1.6.x バグ を回避するために導入されています。Xerces にはこの問題はありません。
|
failOnNullBody
|
true
|
Camel 2.9.5/2.10.3: ボディーが存在しない場合に失敗するかどうか。 |
headerName
|
null
|
Camel 2.11: メッセージボディーではなくヘッダーに対して検証するには、以下を行います。 |
failOnNullHeader
|
true
|
Camel 2.11: ヘッダーに対して検証する際にヘッダーが存在しない場合に失敗するかどうか。 |
例 リンクのコピーリンクがクリップボードにコピーされました!
Advanced: JMX method clearCachedSchema リンクのコピーリンクがクリップボードにコピーされました!
clearCachedSchema を使用して次のプロセス呼び出しで再読み取りされるように強制できます。この方法を使用して、キャッシュをプログラム的にクリアすることもできます。このメソッドは、ValidatorEndpoint クラスで利用できます。
第180章 velocity リンクのコピーリンクがクリップボードにコピーされました!
velocity リンクのコピーリンクがクリップボードにコピーされました!
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
velocity:templateName[?options]
velocity:templateName[?options]
file://folder/myfile.vm)に置き換えます。
?option=value&option=value&.. の形式で追加できます。
オプション リンクのコピーリンクがクリップボードにコピーされました!
| オプション | デフォルト | 説明 |
|---|---|---|
allowContextMapAll (producer)
|
false
|
コンテキストマップが前詳細へのアクセスを許可するかどうかを設定します。デフォルトでは、メッセージの本文とヘッダーにのみアクセスできます。このオプションは、現在の Exchange および CamelContext へのフルアクセスに対して有効にできます。これを行うと、CamelContext API の全機能へのアクセスが開かれるため、潜在的なセキュリティーリスクが発生します。
|
allowTemplateFromHeader (producer)
|
false
|
ヘッダーのリソーステンプレートの使用を許可するかどうか (デフォルトは false)。このオプションを有効にすると、セキュリティーの問題があります。たとえば、ヘッダーに信頼されていないコンテンツやユーザー派生コンテンツが含まれている場合、これは最終的にエンドアプリケーションの信頼性および完全性に影響を与える可能性があるため、このオプションは注意して使用してください。
|
loaderCache
|
true
|
Velocity ベースのファイルローダーキャッシュ。 |
contentCache
|
true
|
ロード時のリソースコンテンツのキャッシュ。注記:Camel 2.9 でキャッシュされたリソースコンテンツは、エンドポイントの clearContentCache 操作を使用して JMX 経由でクリアできます。
|
encoding
|
null
|
リソースコンテンツの文字エンコーディング。 |
propertiesFile
|
null
|
Camel 2.1 の新機能:VelocityEngine の初期化に使用されるプロパティーファイルの URI。 |
メッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| ヘッダー | 説明 |
|---|---|
CamelVelocityResourceUri | String オブジェクトとしての templateName。 |
CamelVelocitySupplementalContext | Camel 2.16: 使用された VelocityContext に追加情報を追加するには、以下を行います。このヘッダーの値は、追加するキー/値を持つ Map である必要があります(同じ名前の既存のキーを上書きします)。これは、velocity エンドポイントで再利用する一般的なキー/値の一部を設定するために使用できます。 |
template.tm でヘッダー値 fruit を設定するには、次のコマンドを実行します。
$in.setHeader("fruit", "Apple")
$in.setHeader("fruit", "Apple")
fruit ヘッダーが message.out.headers からアクセス可能になりました。
Velocity コンテキスト リンクのコピーリンクがクリップボードにコピーされました!
)。Exchange は以下のように転送されます。
| key | value |
|---|---|
exchange
|
Exchange 自体。
|
exchange.properties
|
Exchange プロパティー。
|
ヘッダー
|
In メッセージのヘッダー。 |
camelContext
|
Camel Context インスタンス。 |
request
|
In メッセージ。 |
in
|
In メッセージ。 |
ボディー
|
In メッセージのボディー。 |
out
|
Out メッセージ(InOut メッセージ交換パターンにのみ有効)。 |
response
|
Out メッセージ(InOut メッセージ交換パターンにのみ有効)。 |
VelocityContext velocityContext = new VelocityContext(variableMap);
exchange.getIn().setHeader("CamelVelocityContext", velocityContext);
VelocityContext velocityContext = new VelocityContext(variableMap);
exchange.getIn().setHeader("CamelVelocityContext", velocityContext);
ホットリロード リンクのコピーリンクがクリップボードにコピーされました!
contentCache=true を設定すると、Apache Camel はリソースを 1 度だけロードするため、ホットリロードはできません。このシナリオは、リソースが変更されない場合に実稼働環境で使用することができます。
ref: を接頭辞として使用して、レジストリーからリソースファイルをロードできます。
動的テンプレート リンクのコピーリンクがクリップボードにコピーされました!
| ヘッダー | タイプ | 説明 |
|---|---|---|
| CamelVelocityResourceUri | 文字列 | Camel 2.1: 設定されたエンドポイントの代わりに使用するテンプレートリソースの URI。 |
| CamelVelocityTemplate | 文字列 | Camel 2.1: 設定されたエンドポイントの代わりに使用するテンプレート。 |
サンプル リンクのコピーリンクがクリップボードにコピーされました!
from("activemq:My.Queue").
to("velocity:com/acme/MyResponse.vm");
from("activemq:My.Queue").
to("velocity:com/acme/MyResponse.vm");
JMSReplyTo ヘッダーがある)のメッセージへの応答を形成するには、以下を実行します。
from("activemq:My.Queue").
to("velocity:com/acme/MyResponse.vm").
to("activemq:Another.Queue");
from("activemq:My.Queue").
to("velocity:com/acme/MyResponse.vm").
to("activemq:Another.Queue");
.vm テンプレートは変更されません。
from("activemq:My.Queue").
to("velocity:com/acme/MyResponse.vm?contentCache=true").
to("activemq:Another.Queue");
from("activemq:My.Queue").
to("velocity:com/acme/MyResponse.vm?contentCache=true").
to("activemq:Another.Queue");
from("activemq:My.Queue").
to("velocity:file://myfolder/MyResponse.vm?contentCache=true").
to("activemq:Another.Queue");
from("activemq:My.Queue").
to("velocity:file://myfolder/MyResponse.vm?contentCache=true").
to("activemq:Another.Queue");
from("direct:in").
setHeader("CamelVelocityResourceUri").constant("path/to/my/template.vm").
to("velocity:dummy?allowTemplateFromHeader=true");
from("direct:in").
setHeader("CamelVelocityResourceUri").constant("path/to/my/template.vm").
to("velocity:dummy?allowTemplateFromHeader=true");
from("direct:in").
setHeader("CamelVelocityTemplate").constant("Hi this is a velocity template that can do templating ${body}").
to("velocity:dummy?allowTemplateFromHeader=true");
from("direct:in").
setHeader("CamelVelocityTemplate").constant("Hi this is a velocity template that can do templating ${body}").
to("velocity:dummy?allowTemplateFromHeader=true");
allowTemplateFromHeader オプションを有効にすると、セキュリティーの問題があります。たとえば、ヘッダーに信頼できないコンテンツまたはユーザー派生コンテンツが含まれる場合、これは最終的に、エンドアプリケーションの確実性と整合性に及ぼす可能性があるため、このオプションを使用してください。
電子メールのサンプル リンクのコピーリンクがクリップボードにコピーされました!
第181章 Vertx リンクのコピーリンクがクリップボードにコピーされました!
vertx コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
pom.xml に以下の依存関係を追加する必要があります。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
vertx:channelName[?options]
vertx:channelName[?options]
?option=value&option=value&...
オプション リンクのコピーリンクがクリップボードにコピーされました!
|
名前
|
デフォルト値
|
説明
|
pubSub
|
false
|
Camel 2.12.3: vertx エンドポイントに送信するときに、ポイントの代わりにパブリッシュ/サブスクライブを使用するかどうか。
|
既存の Vert.x インスタンスへの接続 リンクのコピーリンクがクリップボードにコピーされました!
Vertx vertx = ...;
VertxComponent vertxComponent = new VertxComponent();
vertxComponent.setVertx(vertx);
camelContext.addComponent("vertx", vertxComponent);
Vertx vertx = ...;
VertxComponent vertxComponent = new VertxComponent();
vertxComponent.setVertx(vertx);
camelContext.addComponent("vertx", vertxComponent);
第182章 VM リンクのコピーリンクがクリップボードにコピーされました!
仮想マシンコンポーネント リンクのコピーリンクがクリップボードにコピーされました!
camel-core.jar が システム/ブート クラスパスにあることを想定)。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
vm:queueName[?options]
vm:queueName[?options]
queueName には、JVM 内のエンドポイントを一意に識別する任意の文字列(または少なくとも camel-core.jar をロードしたクラ出力ダー内)を指定できます。
?option=value&option=value&.. の形式で追加できます。
queueName 部分が同じであるにもかかわらず、Camel は 2 つ目の 仮想マシン エンドポイントを作成します。以下に例を示します。
from("direct:foo").to("vm:bar?concurrentConsumers=5");
from("vm:bar?concurrentConsumers=5").to("file://output");
from("direct:foo").to("vm:bar?concurrentConsumers=5");
from("vm:bar?concurrentConsumers=5").to("file://output");
バー を使用して、以下のように以前の exmple を書き換えることができます。
from("direct:foo").to("vm:bar");
from("vm:bar?concurrentConsumers=5").to("file://output");
from("direct:foo").to("vm:bar");
from("vm:bar?concurrentConsumers=5").to("file://output");
オプション リンクのコピーリンクがクリップボードにコピーされました!
サンプル リンクのコピーリンクがクリップボードにコピーされました!
order.email という名前の仮想マシンキューに送信します。
from("direct:in").bean(MyOrderBean.class).to("vm:order.email");
from("direct:in").bean(MyOrderBean.class).to("vm:order.email");
.war アプリケーションにデプロイされるなど)。
from("vm:order.email").bean(MyOrderEmailSender.class);
from("vm:order.email").bean(MyOrderEmailSender.class);
第183章 video リンクのコピーリンクがクリップボードにコピーされました!
video コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
pom.xml に以下の依存関係を追加する必要があります。
appid パラメーターを使用して、パラメーターとして video エンドポイントの URI 定義に渡されます。
Camel on EAP デプロイメント リンクのコピーリンクがクリップボードにコピーされました!
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
weather://<unused name>[?options]
weather://<unused name>[?options]
オプション リンクのコピーリンクがクリップボードにコピーされました!
| プロパティー | デフォルト | 説明 |
|---|---|---|
appid
|
null
|
Camel 2.16.1/2.15.5: API サーバーに接続されたユーザーを認証するために使用される APPID ID。このキーは必須です。 |
location
|
null
|
null Camel が IP アドレスの地理位置位置を使用して現在の場所を判断しようとする場合は、都市(都市)を指定します。よく知られている都市名については、Open Weather Map が最適であると判断しますが、複数の結果が返される場合があります。したがって、と country も指定すると、より正確なデータが返されます。"current" を場所として指定すると、コンポーネントは現在の流れと長いものを取得しようとし、それを使用して詳細を取得します。location の代わりに lat オプションおよび lon オプションを使用できます。 |
lat
|
null
|
お気に入りの場所。location の代わりに lat オプションおよび lon オプションを使用できます。 |
lon
|
null
|
Longitude of location.location の代わりに lat オプションおよび lon オプションを使用できます。 |
period
|
null
|
null の場合、現在のものが返されます。それ以外の場合は、5、7、14 日の値を使用します。予測期間の数値のみが実際に解析されるため、期間のスペル化、大文字(無視)が行われます。 |
headerName
|
null
|
メッセージボディーではなくこのヘッダーに結果を保存するには、以下を行います。現在のメッセージボディーをそのままそのまま使用する場合に使用できます。 |
mode
|
JSON
|
splunk データの出力形式。使用できる値は HTML、JSON、または XMLです。
|
units
|
METRIC
|
温度測定の単位。使用できる値は IMPERIAL または METRICです。
|
consumer.delay
|
3600000
|
各ポーリングの遅延(デフォルトは 1 時間) |
consumer.initialDelay
|
1000
|
ポーリングを開始する前にミリス。 |
consumer.userFixedDelay
|
false
|
true の場合、ポーリング間の固定遅延を使用します。そうでない場合は、固定レートが使用されます。詳細は、JDK の ScheduledExecutorService を参照してください。
|
?option=value&option=value&.. の形式で追加できます。
エクスチェンジデータ形式 リンクのコピーリンクがクリップボードにコピーされました!
mode オプションを参照)。
メッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| ヘッダー | 説明 |
|---|---|
CamelWeatherQuery
|
Open Weather Map サイトに送信された元のクエリー URL |
CamelWeatherLocation
|
エンドポイントの場所を上書きし、代わりにこのヘッダーからの場所を使用するようにプロデューサーによって使用されます。 |
サンプル リンクのコピーリンクがクリップボードにコピーされました!
from("weather:foo?location=Madrid,Spain&period=7 days&appid=APIKEY").to("jms:queue:weather");
from("weather:foo?location=Madrid,Spain&period=7 days&appid=APIKEY").to("jms:queue:weather");
from("weather:foo&appid=APIKEY").to("jms:queue:weather");
from("weather:foo&appid=APIKEY").to("jms:queue:weather");
from("direct:start")
.to("weather:foo?location=Madrid,Spain&appid=APIKEY");
from("direct:start")
.to("weather:foo?location=Madrid,Spain&appid=APIKEY");
String json = template.requestBodyAndHeader("direct:start", "", "CamelWeatherLocation", "Paris,France&appid=APIKEY", String.class);
String json = template.requestBodyAndHeader("direct:start", "", "CamelWeatherLocation", "Paris,France&appid=APIKEY", String.class);
String json = template.requestBodyAndHeader("direct:start", "", "CamelWeatherLocation", "current&appid=APIKEY", String.class);
String json = template.requestBodyAndHeader("direct:start", "", "CamelWeatherLocation", "current&appid=APIKEY", String.class);
第184章 Websocket リンクのコピーリンクがクリップボードにコピーされました!
WebSocket コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
ws:// および wss:// のプロトコルをサポートします。wss:// プロトコルを使用するには、SSLContextParameters オブジェクトを定義する必要があります。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
websocket://hostname[:port][/resourceUri][?options]
websocket://hostname[:port][/resourceUri][?options]
?option=value&option=value&.. の形式で追加できます。
コンポーネントオプション リンクのコピーリンクがクリップボードにコピーされました!
| オプション | デフォルト | 説明 |
|---|---|---|
host
|
0.0.0.0 | ホスト名。 |
port
|
9292 | ポート番号。 |
staticResources
|
null
|
index.html ファイルなどの静的リソースのパス。このオプションが設定された場合、サーバーは指定されたホスト名とポートで起動し、index.html ファイルなどの静的リソースを処理します。このオプションが設定されていない場合、サーバーは起動されません。 |
sslContextParameters
|
レジストリー の org.apache.camel.util.jsse.SSLContextParameters オブジェクトへの 参照。 この参照は、コンポーネントレベルで設定された SSLContextParameters を上書きします。Security Guide および Using the JSSE Configuration Utility の Configuring Transport Security for Camel Components の章 を参照してください。
|
|
enableJmx
|
false
|
このオプションが true の場合、このエンドポイントに対して Jetty JMX サポートが有効になります。 |
sslKeyPassword
|
null
|
コンシューマーのみ: SSL 使用時のキーストアのパスワード。 |
sslPassword
|
null
|
コンシューマーのみ: SSL を使用する場合のパスワード。 |
sslKeystore
|
null
|
コンシューマーのみ: キーストアへのパス。 |
minThreads
|
null
|
コンシューマーのみ: サーバースレッドプールでスレッドの最小数の値を設定するには、以下を実行します。 |
maxThreads
|
null
|
コンシューマーのみ: サーバースレッドプールの最大スレッド数に値を設定します。 |
threadPool
|
null
|
コンシューマーのみ: サーバーにカスタムスレッドプールを使用します。 |
エンドポイントオプション リンクのコピーリンクがクリップボードにコピーされました!
WebsocketEndpoint は、使用前に設定できます。
| オプション | デフォルト | 説明 |
|---|---|---|
sslContextParametersRef
|
非推奨および は Camel 3.0: Registry の org.apache.camel.util.jsse.SSLContextParameters への参照で削除され ます。 この参照は、コンポーネントレベルで設定済みの SSLContextParameters を上書きします。Using the JSSE Configuration Utility を参照してください。代わりに sslContextParameters オプションを使用してください。
|
|
sslContextParameters
|
Camel 2.11.1: レジストリー の org.apache.camel.util.jsse.SSLContextParameters への 参照。この参照は、コンポーネントレベルで設定済みの SSLContextParameters を上書きします。Security Guide および Using the JSSE Configuration Utility の Configuring Transport Security for Camel Components の章 を参照してください。
|
|
sendToAll
|
null
|
プロデューサーのみ: すべての WebSocket サブスクライバーに送信する。メッセージで WebsocketConstants.SEND_TO_ALL ヘッダーを使用する代わりに、エンドポイントレベルで を設定できます。
|
staticResources
|
null
|
Web リソースまたはクラスパスのルートディレクトリー。コンポーネントがファイルシステムまたはクラスパスからリソースを読み込むかどうかに応じて、プロトコル file: または classpath: を使用します。 |
|
sslContextParameters
|
|
レジストリー の
org.apache.camel.util.jsse.SSLContextParameters オブジェクトへの 参照。この参照は、コンポーネントレベルで設定済みの SSLContextParameters を上書きします。Security Guide および Using the JSSE Configuration Utility の Configuring Transport Security for Camel Components の章 を参照してください。
|
enableJmx
|
false
|
このオプションが true の場合、このエンドポイントに対して Jetty JMX サポートが有効になります。詳細は Jetty JMX support を参照してください。
|
sslKeyPassword
|
null
|
コンシューマーのみ: SSL 使用時のキーストアのパスワード。
|
sslPassword
|
null
|
コンシューマーのみ: SSL を使用する場合のパスワード。
|
sslKeystore
|
null
|
コンシューマーのみ: キーストアへのパス。
|
minThreads
|
null
|
コンシューマーのみ: サーバースレッドプールでスレッドの最小数の値を設定するには、以下を実行します。
|
maxThreads
|
null
|
コンシューマーのみ: サーバースレッドプールの最大スレッド数に値を設定します。
|
threadPool
|
null
|
コンシューマーのみ: サーバーにカスタムスレッドプールを使用します。
|
メッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| キー | 説明 |
|---|---|
WebsocketConstants.SEND_TO_ALL
|
現在接続しているすべてのクライアントにメッセージを送信します。このヘッダーを使用する代わりに、エンドポイントで sendToAll オプションを使用できます。
|
WebsocketConstants.CONNECTION_KEY
|
指定の接続キーを使用してクライアントにメッセージを送信します。 |
使用方法 リンクのコピーリンクがクリップボードにコピーされました!
0.0.0.0:9292 というデフォルトのホストおよびポートを使用します。この例では、入力の echo を送り返します。メッセージを送信するには、変換されたメッセージを同じエンドポイント "websocket://echo" に送信する必要があります。メッセージングのデフォルトは InOnly であるため、この設定が必要です。
from("activemq:topic:newsTopic")
.routeId("fromJMStoWebSocket")
.to("websocket://localhost:8443/newsTopic?sendToAll=true&staticResources=classpath:webapp");
from("activemq:topic:newsTopic")
.routeId("fromJMStoWebSocket")
.to("websocket://localhost:8443/newsTopic?sendToAll=true&staticResources=classpath:webapp");
Webocket コンポーネントの SSL の設定 リンクのコピーリンクがクリップボードにコピーされました!
JSSE 設定ユーティリティーの使用 リンクのコピーリンクがクリップボードにコピーされました!
エンドポイントの Spring DSL ベースの設定 リンクのコピーリンクがクリップボードにコピーされました!
エンドポイントの Java DSL ベースの設定 リンクのコピーリンクがクリップボードにコピーされました!
- Twitter Websocket Example では、twitter 検索の定数フィードをポーリングし、Web ソケットを使用して結果を Web ページにリアルタイムで公開する方法を実証します。
第185章 XmlRpc リンクのコピーリンクがクリップボードにコピーされました!
XmlRpc Component リンクのコピーリンクがクリップボードにコピーされました!
pom.xml に以下の依存関係を追加する必要があります。
XmlRpc Overview リンクのコピーリンクがクリップボードにコピーされました!
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
xmlrpc://serverUri[?options]
xmlrpc://serverUri[?options]
オプション リンクのコピーリンクがクリップボードにコピーされました!
| プロパティー | デフォルト | 説明 |
|---|---|---|
basicEncoding
|
null
|
Basic 認証のエンコーディングを設定します。null は UTF-8 が選択されることを意味します。 |
basicUserName
|
null
|
Basic 認証のユーザー名。 |
basicPassword
|
null
|
Basic 認証のパスワード。 |
clientConfigurer
|
null
|
XmlRpcClientConfigurer のインターフェイスを実装して XmlRpcClientConfigurer をユーザー希望として設定する XmlRpcClient アドバイザーの参照 ID。値は #myConfigurer のように # で始まる必要があります。 |
connectionTimeout
|
0
|
接続タイムアウトをミリ秒単位で設定します。0 は無効にすることです。 |
contentLengthOptional
|
false
|
Content-Length ヘッダーを省略するかどうか。XML-RPC 仕様では、このようなヘッダーが存在することが要求されます。 |
enabledForExceptions
|
false
|
エラーの発生時に応答に faultCause 要素が含まれるべきかどうか。faultCause は例外で、サーバーがシリアライズ可能なオブジェクトとしてバイトストリームにトラップおよび書き込んだものです。 |
enabledForExtensions
|
false
|
エクステンションが有効であるかどうか。デフォルトでは、クライアントまたはサーバーは XML-RPC 仕様に厳密に準拠し、拡張機能は無効になっています。 |
encoding
|
null
|
リクエストエンコーディングを設定します。null は UTF-8 が選択されることを意味します。 |
gzipCompressing
|
false
|
要求の送信に gzip 圧縮が使用されているかどうか。 |
gzipRequesting
|
false
|
要求の送信に gzip 圧縮が使用されているかどうか。 |
replyTimeout
|
0
|
応答タイムアウトをミリ秒単位で設定します。0 は無効にします。 |
userAgent
|
null
|
xmlrpc 要求の実行時に設定する http ユーザーエージェントヘッダー |
メッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| ヘッダー | 説明 |
|---|---|
CamelXmlRpcMethodName
|
XmlRpc サーバーの呼び出しに使用する XmlRpc メソッド名。 |
XmlRpc データフォーマットの使用 リンクのコピーリンクがクリップボードにコピーされました!
クライアントからの XmlRpc サービスの呼び出し リンクのコピーリンクがクリップボードにコピーされました!
String response = template.requestBodyAndHeader(xmlRpcServiceAddress, new Object[]{"me"}, XmlRpcConstants.METHOD_NAME, "hello", String.class);
String response = template.requestBodyAndHeader(xmlRpcServiceAddress, new Object[]{"me"}, XmlRpcConstants.METHOD_NAME, "hello", String.class);
Java コードで XmlRpcClient を設定する方法 リンクのコピーリンクがクリップボードにコピーされました!
第186章 XML セキュリティーコンポーネント リンクのコピーリンクがクリップボードにコピーされました!
XML セキュリティーコンポーネント リンクのコピーリンクがクリップボードにコピーされました!
pom.xml に以下の依存関係を追加する必要があります。
XML 署名ラッピングモード リンクのコピーリンクがクリップボードにコピーされました!
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
xmlsecurity:sign:name[?options]
xmlsecurity:verify:name[?options]
xmlsecurity:sign:name[?options]
xmlsecurity:verify:name[?options]
- 署名側のエンドポイントでは、インメッセージの本文の XML 署名を生成できます。これは、XML ドキュメントまたはプレーンテキストのいずれかになります。エンベロープされたエンベロープ( Camel 12.14より)の XML 署名は、out-message のボディーに設定されます。
- ベリファイアのエンドポイントでは、エンベロープまたはエンベロープ XML 署名、またはインメッセージの本文に含まれるエンベロープまたはエンベロープ( Camel 2.14.0の) XML 署名を複数検証できます。検証に成功すると、元のコンテンツが XML 署名から抽出され、アウトメッセージの本文に設定されます。
- URI の
name部分をユーザーが選択して、Camel コンテキスト内の異なる署名/検証エンドポイントを区別できます。
基本的な例 リンクのコピーリンクがクリップボードにコピーされました!
from("direct:enveloping").to("xmlsecurity:sign://enveloping?keyAccessor=#accessor",
"xmlsecurity:verify://enveloping?keySelector=#selector","mock:result")
from("direct:enveloping").to("xmlsecurity:sign://enveloping?keyAccessor=#accessor",
"xmlsecurity:verify://enveloping?keySelector=#selector","mock:result")
<from uri="direct:enveloping" />
<to uri="xmlsecurity:sign://enveloping?keyAccessor=#accessor" />
<to uri="xmlsecurity:verify://enveloping?keySelector=#selector" />
<to uri="mock:result" />
<from uri="direct:enveloping" />
<to uri="xmlsecurity:sign://enveloping?keyAccessor=#accessor" />
<to uri="xmlsecurity:verify://enveloping?keySelector=#selector" />
<to uri="mock:result" />
org.apache.camel.component.xmlsecurity.api には、Java キーストアから秘密鍵を読み取るデフォルトの実装クラス DefaultKeyAccessor が含まれます。
org.apache.camel.component.xmlsecurity.api には、キーストアから公開鍵を読み取るデフォルトの実装クラス DefaultKeySelector が含まれます。
http://www.w3.org/2000/09/xmldsig#rsa-sha1 が使用されます。選択した署名アルゴリズムは、オプション signatureAlgorithm (以下を参照)で設定できます。署名側のエンドポイントは、エンベロープ XML 署名を作成します。エンベロープされた XML 署名を作成する場合は、Signature 要素の親要素を指定する必要があります。詳細は、options parentLocalName を参照してください。
一般的な署名およびオプションの検証 リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | タイプ | デフォルト | 説明 |
|---|---|---|---|
uriDereferencer
|
javax.xml.crypto.URIDereferencer |
null
|
URI dereferencer。逆参照を制限する場合や、逆参照に特別な要件がある場合は、ここでは独自の URI 逆参照を指定します。 |
baseUri
|
String
|
null
|
URI 逆参照で使用されるベース URI。相対 URI はベース URI と連結されます。 |
cryptoContextProperties
|
Map<String, ? extends Object>
|
null
|
暗号コンテキストのプロパティー。See javax.xml.crypto.XMLCryptoContext.setProperty(String, Object).プロパティーはプロバイダーによって異なります。たとえば、JDK プロバイダー XMLDSig には、マニフェストの検証を有効にするためのプロパティー org.jcp.xml.dsig.validateManifests があります。XML ベリファイアでは、デフォルトでは Boolean.TRUE, org.jcp.xml.dsig.validateManifests の値に設定されています。javax.xml.crypto.dsig.cacheReferencesecureValidation オプションが true の場合、さらに XML ベリファイアに対してプロパティー org.apache.jcp.xml.dsig.secureValidation と org.jcp.xml.dsig.secureValidation が splunk に設定されます。Boolean.TRUEこれらの機能をオフにする場合は、プロパティーの値を Boolean.FALSE に設定する必要があります。
|
disallowDoctypeDecl
|
Boolean
|
Boolean.TRUE
|
受信 XML メッセージで DTD DOCTYPE 宣言を拒否するかどうかを示します。 |
omitXmlDeclaration
|
Boolean
|
Boolean.FALSE
|
XML 宣言ヘッダーを出力 XML メッセージで省略する必要があるかどうかを示します。 |
clearHeaders
|
Boolean
|
Boolean.TRUE
|
XmlSignatureConstants で定義された XML 署名メッセージヘッダーが署名者または検証者処理の最後に削除されるべきかどうかを示します。 |
schemaResourceUri
|
String
|
null
|
Camel 2.14.0 以降XML スキーマファイルへのクラスパス。設定されている場合、XML ドキュメントは XML スキーマに対して検証されます。タイプ ID の属性を判断するには、デタッチされた署名の場合に設定する必要があります。この値はヘッダー CamelXmlSignatureSchemaResourceUri で上書きできます。詳細は、「署名要素のシブリングとしての分離された XML 署名」 を参照してください。ID 属性への参照 URI を持つエンベロープ署名の場合、スキーマも必要になります(署名オプション contentReferenceUriを参照してください)。
|
outputXmlEncoding
|
String
|
null
|
Camel 2.15.0 以降出力 XML ドキュメントの文字エンコーディング。null の場合、UTF-8 が使用されます。 |
署名オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | タイプ | デフォルト | 説明 |
|---|---|---|---|
keyAccessor
|
KeyAccessor |
null
|
署名キーと KeyInfo インスタンスを提供します。キーストアを使用する実装の例は、DefaultKeyAccessorを参照してください。 |
addKeyInfoReference
|
Boolean
|
Boolean.TRUE
|
キーアクセサーが提供する KeyInfo 要素を参照する Reference 要素を XML 署名に追加するかどうかを示します。
|
signatureAlgorithm
|
String
|
http://www.w3.org/2000/09/xmldsig#rsa-sha1
|
ダイジェストおよび暗号化アルゴリズムで設定される署名アルゴリズム。ダイジェストアルゴリズムは SignedInfo 要素のダイジェストを計算するために使用され、暗号化アルゴリズムはこのダイジェストに署名するために使用されます。設定可能な値: http://www.w3.org/2000/09/xmldsig#dsa-sha1, http://www.w3.org/2000/09/xmldsig#rsa-sha1, http://www.w3.org/2001/04/xmldsig-more#rsa-sha256, http://www.w3.org/2001/04/xmldsig-more#rsa-sha384, http://www.w3.org/2001/04/xmldsig-more#rsa-sha512
|
digestAlgorithm
|
String
|
説明 を参照してください。 |
メッセージ内ボディーのダイジェストを計算するダイジェストアルゴリズム。指定のない場合は、署名アルゴリズムのダイジェストアルゴリズムが使用されます。使用できる値は http://www.w3.org/2000/09/xmldsig#sha1、http://www.w3.org/2001/04/xmlenc#sha256、http://www.w3.org/2001/04/xmldsig-more#sha384、および http://www.w3.org/2001/04/xmlenc#sha512 です。
|
parentLocalName
|
String
|
null |
Signature 要素の親のローカル名。Signature 要素は、親の子の最後に追加されます。エンベロープされた XML 署名に必要です。このオプションと parentXpath オプションが null の場合は、エンベロープ XML 署名が作成されます。parentNamespace も参照してください。または、parentXpath オプションを使用して親を指定することもできます。
|
parentNamespace
|
String
|
null |
Signature 要素の親の名前空間。オプション parentLocalNameを参照してください。
|
parentXpath
|
XPathFilterParameterSpec
|
null |
Camel 2.15.0 以降XPath を Signature 要素の親に追加します。Signature 要素は、親の子の最後に追加されます。エンベロープされた XML 署名に必要です。このオプションと parentLocalName オプションが null の場合は、エンベロープ XML 署名が作成されます。または、parentLocalName オプションを使用して親を指定することもできます。例: /p1:root/SecurityItem[last()]この例では、SecurityItem という名前の最後のシブリングを選択します。このような選択は、parentLocalName オプションではできません。
|
canonicalizationMethod
|
javax.xml.crypto.AlgorithmMethod | C14n | ダイジェストの計算前に SignedInfo 要素の正規化に使用される正規化メソッド。ヘルパーメソッド XmlSignatureHelper.getCanonicalizationMethod (String algorithm)または getCanonicalizationMethod (String algorithm, List<String> inclusiveNamespacePrefixes)を使用して正規化メソッドを作成できます。 |
transformMethods
|
List<javax.xml.crypto.AlgorithmMethod>
|
説明 を参照してください。 |
ダイジェストが計算される前にメッセージボディーで実行される変換。デフォルトでは、C14n が追加され、エンベロープ署名の場合は(
parentLocalNameを参照)、http://www.w3.org/2000/09/xmldsig#enveloped-signature もリストの位置 0 に追加されます。XmlSignatureHelper のメソッドを使用して変換メソッドを作成します。
Camel ヘッダー
CamelXmlSignatureTransformMethods はこのオプションを上書きします( Camel 2.17.0 以降)。ヘッダーの値は String タイプである必要があります。変換アルゴリズムをコンマ区切りリストで指定します(例: http://www.w3.org/2000/09/xmldsig#enveloped-signature,http://www.w3.org/TR/2001/REC-xml-c14n-20010315 )。ヘッダーでは、http://www.w3.org/TR/1999/REC-xslt-19991116、http://www.w3.org/2002/06/xmldsig-filter2、http://www.w3.org/TR/1999/REC-xpath-19991116 などのパラメーターが必要な変換アルゴリズムを指定できません。
|
prefixForXmlSignatureNamespace
|
String
|
ds
|
XML 署名名前空間の接頭辞。null が指定されているか、空の文字列の場合は、署名名前空間に接頭辞は使用されません。
|
contentReferenceUri
|
String
|
説明 を参照してください。 |
署名されたコンテンツ(メッセージ本文)への参照の URI。null でエンベロープされた XML 署名の場合、URI は空の文字列に設定されます。null でエンベロープ XML 署名の場合、URI は generated_object_id に設定されます。これは、参照が in-message ボディーが含まれる Object 要素を参照することを意味します。メッセージ内ボディーに署名する必要がない場合は、このオプションを使用して in-message ボディーの特定部分を参照できます。この値はヘッダー CamelXmlSignatureContentReferenceUri で上書きできます。XML ID 属性の値(例: #ID_value)を使用する場合は、入力 XML ドキュメントに含まれる doctype 定義を使用するか、オプション schemaResourceUri で指定できる XML スキーマドキュメントを介して ID 属性に関する情報を提供する必要があります。schemaResourceURi オプションを使用した XML スキーマによる ID 属性の定義は、エンベロープ署名ケースでのみ機能します。このオプションが xpathsToIdAttributes に設定されている場合、このオプションはデタッチされた署名の場合は無視されます。
|
contentReferenceType
|
String
|
null | コンテンツ参照の type 属性の値。この値はヘッダー CamelXmlSignatureContentReferenceType で上書きできます。 |
plainText
|
Boolean
|
Boolean.FALSE |
メッセージ内の本文にプレーンテキストが含まれているかどうかを示します。通常、署名ジェネレーターは受信メッセージのボディーを XML として扱います。メッセージ本文がプレーンテキストの場合は、このオプションを true に設定する必要があります。値はヘッダー CamelXmlSignatureMessageIsPlainText で上書きできます。
|
plainTextEncoding
|
String
|
null |
plainText オプションが true に設定されている場合にのみ使用されます。次に、プレーンテキストのエンコーディングを指定できます。null の場合、UTF-8 が使用されます。値はヘッダー CamelXmlSignatureMessageIsPlainTextEncoding で上書きできます。
|
properties
|
XmlSignatureProperties | null | 追加のプロパティーが含まれる XML 署名に参照およびオブジェクトを追加するには、XmlSignatureProperties インターフェイスを実装する Bean を指定できます。 |
contentObjectId
|
String
|
null |
Object 要素の Id 属性の値。エンベロープ XML 署名ケースでのみ使用されます。null の場合、一意の値が生成されます。2.12.2 から利用可能
|
xpathsToIdAttributes
|
List<XPathFilterParameterSpec>
|
空のリスト
|
2.14.0 以降署名する要素の ID 属性に対する XPATH 式のリスト。デタッチされた XML 署名に使用されます。は、オプションと組み合わせてのみ使用できます。
schemaResourceUri値はヘッダーCamelXmlSignatureXpathsToIdAttributesで上書きできます。オプション parentLocalNamが同時に 設定されている場合、例外が発生します。クラス XPathFilterParameterSpec にはパッケージ javax.xml.crypto.dsig.spec があります。詳細は、サブ章のデタッチされた XML 署名(署名要素 のシブリングとしての XML 署名)を参照してください。
|
signatureId
|
String
|
null
|
2.14.0 以降Signature 要素の Id 属性の値。
null の場合は、一意の ID が生成されます。値が空の文字列("")の場合、Signature 要素に Id 属性は追加されません。
|
オプションの検証 リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | タイプ | デフォルト | 説明 |
|---|---|---|---|
keySelector
|
javax.xml.crypto.KeySelector |
null
|
XML 署名を検証するためのキーを提供します。キーストアを使用する実装の例は、DefaultKeySelector を参照してください。 |
xmlSignatureChecker
|
XmlSignatureChecker |
null
|
このインターフェイスを使用すると、検証の実行前にアプリケーションが XML 署名を確認できます。この手順は、http://www.w3.org/TR/xmldsig-bestpractices/#check-what-is-signedで推奨されます。 |
validationFailedHandler
|
ValidationFailedHandler | DefaultValidationFailedHandler |
さまざまな検証に失敗した状況を処理します。デフォルトの実装は、さまざまな状況で特定の例外を出力します(すべての例外には org.apache.camel.component.xmlsecurity.api のパッケージ名があり、XmlSignatureInvalidException のサブクラスです)。署名値の検証に失敗すると、XmlSignatureInvalidValueException が出力されます。参照検証に失敗すると、XmlSignatureInvalidContentHashException が出力されます。詳細は、JavaDoc を参照してください。
|
xmlSignature2Message
|
XmlSignature2Message | DefaultXmlSignature2Message |
検証後に XML 署名を ouput-message にマップする Bean。このマッピングは、outputNodeSearchType オプション、outputNodeSearch オプション、および removeSignatureElements オプションを使用して設定できます。デフォルトの実装では、3 つの出力ノード検索タイプ Default、ElementName、および XPath に関連する 3 つの可能性が提供されます。デフォルトの実装はシリアライズされ、ouput メッセージのボディーに設定されるノードを決定します。検索タイプが "ElementName" の場合、ouput ノード(この場合は要素でなければならない)は、検索値で定義されたローカル名と名前空間によって決定されます(オプション outputNodeSearchを参照)。検索タイプが XPath の場合、出力ノードは検索値で指定された XPath で決定されます(この場合、ouput ノードは "Element"、"TextNode"、または "Document")のタイプになります)。出力ノード検索タイプが Default の場合、以下のルールが適用されます。エンベロープされた XML 署名の場合(URI="" の参照で、"http://www.w3.org/2000/09/xmldsig#enveloped-signature")は、Signature 要素のない受信 XML ドキュメントが出力メッセージボディーに設定されます。非承認の XML 署名の場合、メッセージボディーは参照されるオブジェクトから決定されます。詳細は、Enveloping XML Signature Case のOutput Node Determination の章を参照してください。
|
outputNodeSearchType
|
String
|
Default
|
出力ノードの検索タイプを決定します。オプション xmlSignature2Message を参照してください。デフォルトの実装 DefaultXmlSignature2Message は、Default、ElementName、および XPath の 3 つの検索タイプをサポートします。
|
outputNodeSearch
|
Object
|
null
|
出力ノード検索の値を検索します。タイプは検索タイプによって異なります。デフォルトの検索実装 DefaultXmlSignature2Message の場合、以下の値を指定できます。検索タイプが Default の場合、検索値は使用されません。検索タイプが "ElementName" の場合、検索値には出力要素の名前空間とローカル名が含まれます。名前空間は括弧内に置く必要があります。検索タイプが XPath の場合、検索値には XPath を表す javax.xml.crypto.dsig.spec.XPathFilterParameterSpec のインスタンスが含まれます。このようなインスタンスは 、XmlSignatureHelper メソッド .getXpathFilter (String xpath, Map<String, String> namespaceMap)を使用し て作成できます。XPath は、タイプ Element、TextNode、または Document で使用できる出力ノードを決定します。
|
removeSignatureElements
|
Boolean
|
Boolean.FALSE
|
エンベロープされた XML 署名ケースの出力メッセージの署名要素を削除するインジケーター。XmlSignature2Message インスタンスで使用されます。デフォルトの実装では、このインジケーターを使用して 2 つの検索タイプElementName と XPath を使用します。
|
secureValidation
|
Boolean
|
Boolean.TRUE
|
セキュアな検証を有効にします。true の場合、セキュアな検証が有効になります。詳細は こちら を参照してください。 |
Enveloping XML 署名ケースの出力ノードの決定 リンクのコピーリンクがクリップボードにコピーされました!
xmlSignature2Messageを参照)。
- 同じドキュメント参照のみが考慮されます(URI は # で始まる必要があります)。
- また、マニフェストを使用したオブジェクトへの間接的なドキュメント参照も考慮されます。
- 結果のオブジェクト参照数は 1 である必要があります。
署名要素のシブリングとしての分離された XML 署名 リンクのコピーリンクがクリップボードにコピーされました!
例186.1 デタッチされた XML 署名の例
例186.2 Java DSL の例
from("direct:detached")
.to("xmlsecurity:sign://detached?keyAccessor=#keyAccessorBeant&xpathsToIdAttributes=#xpathsToIdAttributesBean&schemaResourceUri=Test.xsd")
.to("xmlsecurity:verify://detached?keySelector=#keySelectorBean&schemaResourceUri=org/apache/camel/component/xmlsecurity/Test.xsd")
.to("mock:result");
from("direct:detached")
.to("xmlsecurity:sign://detached?keyAccessor=#keyAccessorBeant&xpathsToIdAttributes=#xpathsToIdAttributesBean&schemaResourceUri=Test.xsd")
.to("xmlsecurity:verify://detached?keySelector=#keySelectorBean&schemaResourceUri=org/apache/camel/component/xmlsecurity/Test.xsd")
.to("mock:result");
例186.3 Spring の例
Signer エンドポイントの XAdES-BES/EPES リンクのコピーリンクがクリップボードにコピーされました!
|
|
SignaturePolicyIdentifier プロパティーが XAdES-BES の一部ではない点以外は同じです。
org.apache.camel.component.xmlsecurity.api.XAdESSignatureProperties で設定でき、org.apache.camel.component.xmlsecurity.api.DefaultXAdESSignatureProperties. XAdESSignatureProperties は、SigningCertificate プロパティーを除くすべてのプロパティーをサポートします。SigningCertificate プロパティーを取得するには、XAdESSignatureProperties.getSigningCertificate() or XAdESSignatureProperties.getSigningCertificateChain(). The class DefaultXAdESSignatureProperties メソッドを上書きする必要があります。また、キーストアとエイリアスを介して署名証明書を指定できるようにする必要があります。getSigningCertificate()以下の例は、指定できるすべてのパラメーターを示しています。特定のパラメーターが必要ない場合は、それらを省略できます。
|
|
|
|
Headers リンクのコピーリンクがクリップボードにコピーされました!
| ヘッダー | タイプ | 説明 |
|---|---|---|
CamelXmlSignatureXAdESQualifyingPropertiesId
|
文字列 |
QualifyingProperties 要素の 'Id' 属性値の場合
|
CamelXmlSignatureXAdESSignedDataObjectPropertiesId
|
文字列 |
SignedDataObjectProperties 要素の 'Id' 属性値の場合
|
CamelXmlSignatureXAdESSignedSignaturePropertiesId
|
文字列 |
SignedSignatureProperties 要素の 'Id' 属性値の場合
|
CamelXmlSignatureXAdESDataObjectFormatEncoding
|
文字列 |
DataObjectFormat 要素の Encoding 要素の値
|
CamelXmlSignatureXAdESNamespace
|
文字列 | XAdES 名前空間パラメーターの値を上書きします。 |
CamelXmlSignatureXAdESPrefix
|
文字列 | XAdES 接頭辞パラメーターの値を上書きします。 |
XAdES バージョン 1.4.2 に関する制限 リンクのコピーリンクがクリップボードにコピーされました!
- XAdES-T および XAdES-C の署名形式はサポートされません。
- 署名側の部分のみが実装されます。検証用の部分は現在利用できません。
- '
QualifyingPropertiesReference' 要素はサポートされません(仕様のセクション 6.3.2 を参照)。 SignaturePolicyId要素に含まれるTransforms要素のサポートはありません:SignaturePolicyIdentifier elementCounterSignature要素のサポートなし -->UnsignedProperties要素のサポートなし- 最大 1 つの
DataObjectFormat要素。署名されるデータオブジェクトが 1 つしかないため、複数のDataObjectFormat要素は意味を持ちません(これは XML 署名エンドポイントへの受信メッセージボディーです)。 - 最大 1 つの
CommitmentTypeIndication要素。署名されるデータオブジェクトが 1 つしかないため、複数のCommitmentTypeIndication要素は意味を持ちません(これは XML 署名エンドポイントへの受信メッセージボディーです)。 CommitmentTypeIndication要素には、常にAllSignedDataObjects要素が含まれます。CommitmentTypeIndication要素内のObjectReference要素はサポートされません。AllDataObjectsTimeStamp要素はサポートされません。IndividualDataObjectsTimeStamp要素はサポートされません。
関連項目 リンクのコピーリンクがクリップボードにコピーされました!
第187章 XMPP リンクのコピーリンクがクリップボードにコピーされました!
XMPP コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
xmpp://[login@]hostname[:port][/participant][?Options]
xmpp://[login@]hostname[:port][/participant][?Options]
?option=value&option=value&.. の形式で追加できます。
オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 説明 |
|---|---|
room
|
このオプションを指定すると、コンポーネントは MUC (Multi User Chat)に接続します。通常、MUC のドメイン名はログインドメインとは異なります。たとえば、superman@jabber.org で、krypton 部屋に加入する場合、部屋の URL は krypton@conference.jabber.org となります。会議 の部分に注意します。
|
user
|
ユーザー名(サーバー名なし)。指定しない場合、匿名ログインが試行されます。 |
password
|
Password。 |
resource
|
XMPP リソース。デフォルトは Camel です。
|
createAccount
|
true の場合、アカウントの作成の試行が行われます。デフォルトは false です。
|
参加者
|
メッセージを受信するユーザーの JID (Jabber ID)。room パラメーターは、参加者 よりも優先されます。
|
ニックネーム
|
部屋への参加時にニックネームを使用します。room が指定され、ニックネームが指定されていない場合、ユーザー はニックネームに使用されます。
|
serviceName
|
接続しているサービスの名前。Google Talk の場合、これは gmail.com になります。
|
testConnectionOnStartup
|
*Camel 2.11* 起動時に接続をテストするかどうかを指定します。これは、ルートの開始時に XMPP クライアントに XMPP サーバーへの有効な接続を確保するために使用されます。接続を確立できない場合に Camel は起動時に例外を出力します。このオプションが false に設定されている場合、Camel はプロデューサーが必要とするときにレイジー接続を確立しようとし、接続が確立されるまでコンシューマー接続をポーリングします。デフォルトは true です。
|
connectionPollDelay
|
*Camel 2.11* XMPP 接続の正常性を検証するポーリングの間隔(秒単位)、または最初のコンシューマー接続を確立しようとする間隔(秒単位)。非アクティブになると、Camel は接続の再確立を試みます。デフォルトは 10 秒 です。
|
pubsub
|
Camel 2.15: 入力で pubsub パケットを許可します。デフォルトは false です。
|
doc
|
Camel 2.15: 着信パケットの Document フォームを含む In メッセージに doc ヘッダーを設定します。デフォルトは true で、存在または pubsub は true、それ以外の場合は false です。
|
ヘッダーおよび Subject または Language の設定 リンクのコピーリンクがクリップボードにコピーされました!
HeaderFilterStategy を設定できます。XMPP メッセージの Subject および Language も IN ヘッダーとして提供されている場合に設定されます。
例 リンクのコピーリンクがクリップボードにコピーされました!
superman は、パスワード secret を使用して jabber サーバーで部屋 krypton に参加するためのスーパーマンです。
xmpp://superman@jabber.org/?room=krypton@conference.jabber.org&password=secret
xmpp://superman@jabber.org/?room=krypton@conference.jabber.org&password=secret
superman は、joker にメッセージを送信します。
xmpp://superman@jabber.org/joker@jabber.org?password=secret
xmpp://superman@jabber.org/joker@jabber.org?password=secret
from("timer://kickoff?period=10000").
setBody(constant("I will win!\n Your Superman.")).
to("xmpp://superman@jabber.org/joker@jabber.org?password=secret");
from("timer://kickoff?period=10000").
setBody(constant("I will win!\n Your Superman.")).
to("xmpp://superman@jabber.org/joker@jabber.org?password=secret");
joker からキューにあるすべてのメッセージを evil.talk に書き込むコンシューマー設定。
from("xmpp://superman@jabber.org/joker@jabber.org?password=secret").
to("activemq:evil.talk");
from("xmpp://superman@jabber.org/joker@jabber.org?password=secret").
to("activemq:evil.talk");
from("xmpp://superman@jabber.org/?password=secret&room=krypton@conference.jabber.org").
to("activemq:krypton.talk");
from("xmpp://superman@jabber.org/?password=secret&room=krypton@conference.jabber.org").
to("activemq:krypton.talk");
from("xmpp://superman@jabber.org/?password=secret&room=krypton").
to("activemq:krypton.talk");
from("xmpp://superman@jabber.org/?password=secret&room=krypton").
to("activemq:krypton.talk");
serviceName と認証情報を指定する必要があります。
// send a message from fromuser@gmail.com to touser@gmail.com
from("direct:start").
to("xmpp://talk.google.com:5222/touser@gmail.com?serviceName=gmail.com&user=fromuser&password=secret").
to("mock:result");
// send a message from fromuser@gmail.com to touser@gmail.com
from("direct:start").
to("xmpp://talk.google.com:5222/touser@gmail.com?serviceName=gmail.com&user=fromuser&password=secret").
to("mock:result");
第188章 XQuery エンドポイント リンクのコピーリンクがクリップボードにコピーされました!
XQuery リンクのコピーリンクがクリップボードにコピーされました!
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
xquery:templateName
xquery:templateName
from("activemq:My.Queue").
to("xquery:com/acme/mytransform.xquery");
from("activemq:My.Queue").
to("xquery:com/acme/mytransform.xquery");
JMSReplyTo ヘッダーがある)のメッセージへの応答を形成。
from("activemq:My.Queue").
to("xquery:com/acme/mytransform.xquery").
to("activemq:Another.Queue");
from("activemq:My.Queue").
to("xquery:com/acme/mytransform.xquery").
to("activemq:Another.Queue");
第189章 XSLT リンクのコピーリンクがクリップボードにコピーされました!
XSLT リンクのコピーリンクがクリップボードにコピーされました!
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
xslt:templateName[?options]
xslt:templateName[?options]
?option=value&option=value&.. の形式で追加できます。
| URI | 説明 |
|---|---|
xslt:com/acme/mytransform.xsl
|
クラスパスのファイル com/acme/mytransform.xsl を参照します。
|
xslt:file:///foo/bar.xsl
|
ファイル( /foo/bar.xsl )を参照します。
|
xslt:http://acme.com/cheese/foo.xsl
|
リモート HTTP リソースを参照します。 |
オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | デフォルト値 | 説明 |
|---|---|---|
converter
|
null
|
デフォルトの XmlConverter を上書きするオプション。レジストリーでコンバーターを検索します。提供される変換のタイプは org.apache.camel.converter.jaxp.XmlConverter である必要があります。 |
transformerFactory
|
null
|
デフォルトの TransformerFactory を上書きするオプション。レジストリーで transformerFactory を検索します。提供されるトランスフォーマーファクトリーのタイプは javax.xml.transform.TransformerFactory である必要があります。
|
transformerFactoryClass
|
null
|
デフォルトの TransformerFactory を上書きするオプション。TransformerFactoryClass インスタンスを作成し、コンバーターに設定します。
|
uriResolverFactory
|
DefaultXsltUriResolverFactory
|
Camel 2.17: エンドポイントごとに URI リゾルバーを作成する org.apache.camel.component.xslt.XsltUriResolverFactory を参照します。デフォルトの実装は org.apache.camel.component.xslt.DefaultXsltUriResolverFactory のインスタンスを返します。これにより、エンドポイントごとにデフォルトの URI リゾルバー org.apache.camel.builder.xml.XsltUriResolver が作成されます。デフォルトの URI リゾルバーは、クラスパスとファイルシステムから XSLT ドキュメントを読み取ります。URI リゾルバーがエンドポイントで指定されたルート XSLT ドキュメントのリソース URI に依存する場合、このオプション uriResolver ではなくこのオプションが使用されます。たとえば、デフォルトの URI リゾルバーを拡張する場合などです。このオプションは XSLT コンポーネントでも利用できるため、リソースリゾルバーファクトリーはすべてのエンドポイントに 1 回のみ設定できます。
|
uriResolver
|
null
|
Camel 2.3: カスタムの javax.xml.transformation.URIResolver を使用できます。Camel はデフォルトで、クラスパスからロードできる独自の実装 org.apache.camel.builder.xml.XsltUriResolver を使用します。
|
resultHandlerFactory
|
null
|
Camel 2.3: カスタムの org.apache.camel.builder.xml.ResultHandler タイプを使用できるカスタム org.apache.camel.builder.xml.ResultHandlerFactory を使用できます。
|
failOnNullBody
|
true
|
Camel 2.3: 入力ボディーが null の場合に例外を出力するかどうか。 |
deleteOutputFile
|
false
|
Camel 2.6: output=file がある場合、このオプションは エクスチェンジ の処理が完了したときに出力ファイルを削除するかどうかを決定します。たとえば、出力ファイルが一時ファイルである場合は、使用後に削除することが推奨されます。
|
output
|
string
|
Camel 2.3: 使用する出力タイプを指定するオプション。使用できる値は 、string、byte、DOM、file です。最初の 3 つのオプションは、すべてメモリーベースで、ファイル は直接 java.io.File にストリーミングされます。ファイル の場合、キー Exchange.XSLT_FILE_NAME で IN ヘッダーのファイル名を指定する 必要 があります。これは CamelXsltFileName です。また、ファイル名につながるパスも事前に作成する必要があります。作成しない場合は、実行時に例外が発生します。
|
contentCache
|
true
|
Camel 2.6: 読み込み時のリソースコンテンツ(スタイルシートファイル)のキャッシュ。false に設定すると、Camel は各メッセージ処理のスタイルシートファイルを再読み込みします。これは開発に適しています。
|
allowStAX
|
true
|
Camel 2.8.3/2.9: StAX を javax.xml.transform.Source として使用することを許可するかどうか。
|
transformerCacheSize
|
0
|
Camel 2.9.3/2.10.1: Template.newTransformer ()への呼び出しを回避するために再利用するためにキャッシュされる オブジェクトの数。
|
saxon
|
false
|
Camel 2.11: Saxon を transformerFactoryClass として使用するかどうか。有効にすると、クラス net.sf.saxon.TransformerFactoryImpl が使用されます。Saxon をクラスパスに追加する必要があります。
|
saxonExtensionFunctions
|
null
|
Camel 2.17: 1 つ以上のカスタム net.sf.saxon.lib.ExtensionFunctionDefinition を設定できます。Saxon をクラスパスに追加する必要があります。このオプションを設定すると、saxon オプションが自動的に有効になります。
|
errorListener
|
Camel 2.14: カスタム javax.xml.transform.ErrorListener を使用するように設定できます。これを行う場合は、プロパティーが使用されていないため、エラーや致命的なエラーを取得し、エクスチェンジに関する情報を保存するデフォルトのエラーリスナーに注意してください。そのため、このオプションは特別なユースケースにのみ使用してください。
|
XSLT エンドポイントの使用 リンクのコピーリンクがクリップボードにコピーされました!
from("activemq:My.Queue").
to("xslt:com/acme/mytransform.xsl");
from("activemq:My.Queue").
to("xslt:com/acme/mytransform.xsl");
JMSReplyTo ヘッダーがある)のメッセージの応答を形成するには、以下を行います。
from("activemq:My.Queue").
to("xslt:com/acme/mytransform.xsl").
to("activemq:Another.Queue");
from("activemq:My.Queue").
to("xslt:com/acme/mytransform.xsl").
to("activemq:Another.Queue");
連携する XSLT へのパラメーターの取得 リンクのコピーリンクがクリップボードにコピーされました!
<setHeader headerName="myParam"><constant>42</constant></setHeader> <to uri="xslt:MyTransform.xsl"/>
<setHeader headerName="myParam"><constant>42</constant></setHeader>
<to uri="xslt:MyTransform.xsl"/>
<xsl: ...... >
<xsl:param name="myParam"/>
<xsl:template ...>
<xsl: ...... >
<xsl:param name="myParam"/>
<xsl:template ...>
Spring XML バージョン リンクのコピーリンクがクリップボードにコピーされました!
xsl:include の使用 リンクのコピーリンクがクリップボードにコピーされました!
URIResolver の実装を提供します。これにより、Camel は含まれるファイルをクラスパスからロードでき、以前よりもインテリジェントなファイルを読み込むことができます。
<xsl:include href="staff_template.xsl"/>
<xsl:include href="staff_template.xsl"/>
.to("xslt:org/apache/camel/component/xslt/staff_include_relative.xsl")
.to("xslt:org/apache/camel/component/xslt/staff_include_relative.xsl")
org/apache/camel/component/xslt/staff_template.xsl として特定します。これにより、org/apache/camel/component/xslt の例と同じフォルダーに xsl include を使用し、xsl ファイルを配置できます。
classpath: または file: を使用して、クラスパスまたはファイルシステムのいずれかを検索するよう Camel に指示することができます。接頭辞を省略すると、Camel はエンドポイント設定から接頭辞を使用します。の両方に がない場合、クラスパスが想定されます。
<xsl:include href="../staff_other_template.xsl"/>
<xsl:include href="../staff_other_template.xsl"/>
org/apache/camel/component の下にある xsl ファイルを解決します。
xsl:include およびデフォルト接頭辞の使用 リンクのコピーリンクがクリップボードにコピーされました!
<xsl:include href="staff_template.xsl"/>
<xsl:include href="staff_template.xsl"/>
.to("xslt:file:etc/xslt/staff_include_relative.xsl")
.to("xslt:file:etc/xslt/staff_include_relative.xsl")
<xsl:include href="file:staff_template.xsl"/>
<xsl:include href="file:staff_template.xsl"/>
<xsl:include href="staff_template.xsl"/>
<xsl:include href="staff_template.xsl"/>
ref: を接頭辞として使用して、レジストリーからリソースファイルを読み込むことができます。
Saxon 拡張機能の使用 リンクのコピーリンクがクリップボードにコピーされました!
動的スタイルシート リンクのコピーリンクがクリップボードにコピーされました!
.recipientList コマンドを使用して呼び出される Recipient List Enterprise Integration Pattern (EIP)を使用してこれを実行できます。
XSLT ErrorListener からの警告、エラー、および致命的なエラーへのアクセス リンクのコピーリンクがクリップボードにコピーされました!
Exchange.XSLT_ERROR、Exchange.XSLT_FATAL_ERROR、または Exchange.XSLT_WARNING を持つプロパティーとして現在のエクスチェンジに保存されます。これにより、エンドユーザーは変換中に発生するエラーを保持できます。
getMessage() メソッドにメッセージが含まれる例外として保存されたエクスチェンジでは使用できません。例外が鍵の警告としてエクスチェンジに保存されます。 Exchange.XSLT_WARNING.
第190章 XStream リンクのコピーリンクがクリップボードにコピーされました!
XStream コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
xstream() DSL コマンドを使用してメッセージボディーを XML に変換できます。
Camel on EAP デプロイメント リンクのコピーリンクがクリップボードにコピーされました!
第191章 Yammer リンクのコピーリンクがクリップボードにコピーされました!
Yammer リンクのコピーリンクがクリップボードにコピーされました!
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-yammer</artifactId>
<version>${camel-version}</version>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-yammer</artifactId>
<version>${camel-version}</version>
</dependency>
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
yammer:[function]?[options]
yammer:[function]?[options]
YammerComponent リンクのコピーリンクがクリップボードにコピーされました!
| オプション | 説明 |
|---|---|
consumerKey
|
コンシューマーキー |
consumerSecret
|
コンシューマーシークレット |
accessToken
|
アクセストークン |
メッセージの消費 リンクのコピーリンクがクリップボードにコピーされました!
| URI | 説明 |
|---|---|
| Yammer:messages?オプション | ユーザーの(API 呼び出しを行うのにアクセストークンが使用されている)ユーザーのすべての公開メッセージ)Yammer ネットワーク。Yammer Web インターフェイスの "All" 会話に対応します。 |
| Yammer:my_feed?オプション | "Follow" と "Top" 会話の間の選択に基づいて、ユーザーのフィード。 |
| Yammer:algo?options | Yammer Web インターフェイスで大部分のユーザーに表示される Top 会話に対応するユーザーのアルゴリズムフィード。 |
| Yammer:following?オプション | ユーザーが従うユーザー、グループ、トピックに関する会話となる "Follow" フィード。 |
| Yammer:sent?オプション | ユーザーが送信するすべてのメッセージ。 |
| Yammer:private?オプション | ユーザーが受信したプライベートメッセージ。 |
| Yammer:received?オプション | Camel 2.12.1: ユーザーが受信したすべてのメッセージ |
メッセージの消費用の URI オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | デフォルト値 | 説明 |
|---|---|---|
useJson
|
false
|
POJO に変換せずに raw JSON を使用する場合は true に設定します。 |
delay
|
5000
|
ミリ秒単位 |
consumerKey
|
null
|
Consumer Key。代わりに、YammerComponent レベルでも設定できます。
|
consumerSecret
|
null
|
コンシューマーシークレット。代わりに、YammerComponent レベルでも設定できます。
|
accessToken
|
null
|
アクセストークン。代わりに、YammerComponent レベルでも設定できます。
|
limit
|
-1
|
指定されたメッセージ数のみを返します。threaded=true および threaded=extended で機能します。 |
threaded
|
null
|
threaded=true は、各スレッドの最初のメッセージのみを返します。このパラメーターは、メッセージスレッドが折りたたまれたアプリケーション向けのものです。threading=extended は、最後にアクティブなメッセージと、Yammer Web インターフェイスのデフォルトビューで表示される 2 つの最新のメッセージ順にスレッドスターターメッセージを返します。 |
olderThan
|
-1
|
数値の文字列として指定されたメッセージ ID よりも古いメッセージを返します。これは、メッセージのページネーションに役立ちます。たとえば、現在 20 個のメッセージが表示されており、最も古いメッセージが 2912 である場合は、リクエストに "?olderThan=2912? を追加して、表示しているメッセージの前に 20 個のメッセージを取得できます。 |
newerThan
|
-1
|
数値の文字列として指定されたメッセージ ID よりも新しいメッセージを返します。これは、新しいメッセージをポーリングする際に使用する必要があります。メッセージを確認し、返された最新のメッセージが 3516 の場合は、パラメーター "?newerThan=3516? で要求を行い、ページにすでにあるメッセージの複製コピーを取得しないようにします。 |
メッセージの形式 リンクのコピーリンクがクリップボードにコピーされました!
from("yammer:messages?consumerKey=aConsumerKey&consumerSecret=aConsumerSecretKey&accessToken=aAccessToken").to("mock:result");
from("yammer:messages?consumerKey=aConsumerKey&consumerSecret=aConsumerSecretKey&accessToken=aAccessToken").to("mock:result");
メッセージの作成 リンクのコピーリンクがクリップボードにコピーされました!
yammer:messages?[options]
yammer:messages?[options]
from("direct:start").to("yammer:messages?consumerKey=aConsumerKey&consumerSecret=aConsumerSecretKey&accessToken=aAccessToken").to("mock:result");
from("direct:start").to("yammer:messages?consumerKey=aConsumerKey&consumerSecret=aConsumerSecretKey&accessToken=aAccessToken").to("mock:result");
template.sendBody("direct:start", "Hi from Camel!");
template.sendBody("direct:start", "Hi from Camel!");
Exchange exchange = mock.getExchanges().get(0);
Messages messages = exchange.getIn().getBody(Messages.class);
assertEquals(1, messages.getMessages().size());
assertEquals("Hi from Camel!", messages.getMessages().get(0).getBody().getPlain());
Exchange exchange = mock.getExchanges().get(0);
Messages messages = exchange.getIn().getBody(Messages.class);
assertEquals(1, messages.getMessages().size());
assertEquals("Hi from Camel!", messages.getMessages().get(0).getBody().getPlain());
ユーザー関係の取得 リンクのコピーリンクがクリップボードにコピーされました!
yammer:relationships?[options]
yammer:relationships?[options]
関係を取得するための URI オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | デフォルト値 | 説明 |
|---|---|---|
| useJson |
false
|
POJO に変換せずに raw JSON を使用する場合は true に設定します。 |
| delay |
5000
|
ミリ秒単位 |
| consumerKey |
null
|
Consumer Key。代わりに、YammerComponent レベルでも設定できます。
|
| consumerSecret |
null
|
コンシューマーシークレット。代わりに、YammerComponent レベルでも設定できます。
|
| accessToken |
null
|
アクセストークン。代わりに、YammerComponent レベルでも設定できます。
|
| userId |
現在のユーザー
|
現在のユーザー以外のユーザーの関係を表示します。 |
ユーザーの取得 リンクのコピーリンクがクリップボードにコピーされました!
| URI | 説明 |
|---|---|
yammer:users?[options]
|
現在のユーザーの Yammer ネットワークでユーザーを取得します。 |
yammer:current?[options]
|
現在のユーザーのデータを表示します。 |
ユーザーを取得するための URI オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | デフォルト値 | 説明 |
|---|---|---|
| useJson |
false
|
POJO に変換せずに raw JSON を使用する場合は true に設定します。 |
| delay |
5000
|
ミリ秒単位 |
| consumerKey |
null
|
Consumer Key。代わりに、YammerComponent レベルでも設定できます。
|
| consumerSecret |
null
|
コンシューマーシークレット。代わりに、YammerComponent レベルでも設定できます。
|
| accessToken |
null
|
アクセストークン。代わりに、YammerComponent レベルでも設定できます。
|
Enricher の使用 リンクのコピーリンクがクリップボードにコピーされました!
from("direct:start").pollEnrich("yammer:current?consumerKey=aConsumerKey&consumerSecret=aConsumerSecretKey&accessToken=aAccessToken").to("mock:result");
from("direct:start").pollEnrich("yammer:current?consumerKey=aConsumerKey&consumerSecret=aConsumerSecretKey&accessToken=aAccessToken").to("mock:result");
第192章 ZooKeeper リンクのコピーリンクがクリップボードにコピーされました!
ZooKeeper リンクのコピーリンクがクリップボードにコピーされました!
- ZooKeeper 作成モードのいずれかのノードの作成。
- 任意のクラスターノードのデータコンテンツを取得および設定します(設定されるデータは
byte[]に変換する必要があります)。 - 特定のノードに割り当てられている子ノードの一覧を作成して取得します。
- ZooKeeper によって調整された Leader 選択を利用して、エクスチェンジを処理する必要があるかどうかを判断する Distributed RoutePolicy。
pom.xml に以下の依存関係を追加する必要があります。
Camel on EAP デプロイメント リンクのコピーリンクがクリップボードにコピーされました!
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
zookeeper://zookeeper-server[:port][/path][?options]
zookeeper://zookeeper-server[:port][/path][?options]
オプション リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | デフォルト値 | 説明 |
|---|---|---|
path
|
ZooKeeper サーバー(別名 znode)のノード | |
listChildren
|
false
|
ノードの子をリストすべきかどうか。 |
repeat
|
false
|
znode への変更は監視され、繰り返し処理される必要があります。 |
backoff
|
5000
|
再試行する前にエラーをバックオフする間隔。 |
timeout
|
5000
|
タイムアウトする前に接続を待機する時間間隔。 |
create
|
false
|
まだ存在していない場合は、エンドポイントがノードを作成するはずです。 |
createMode
|
EPHEMERAL
|
新規に作成されたノードに使用する create モード(以下を参照)。 |
sendEmptyMessageOnDelete
|
true
|
Camel 2.10: znode の削除で、空のメッセージがコンシューマーに送信される必要がある |
ユースケース リンクのコピーリンクがクリップボードにコピーされました!
znode からの読み取り。 リンクのコピーリンクがクリップボードにコピーされました!
from("zookeeper://localhost:39913/somepath/somenode").to("mock:result");
from("zookeeper://localhost:39913/somepath/somenode").to("mock:result");
from("zookeeper://localhost:39913/somepath/somenode?awaitCreation=true").to("mock:result");
from("zookeeper://localhost:39913/somepath/somenode?awaitCreation=true").to("mock:result");
znode からの読み取り -(追加の Camel 2.10 以降) リンクのコピーリンクがクリップボードにコピーされました!
znode への書き込み。 リンクのコピーリンクがクリップボードにコピーされました!
from("direct:write-to-znode").to("zookeeper://localhost:39913/somepath/somenode");
from("direct:write-to-znode").to("zookeeper://localhost:39913/somepath/somenode");
CamelZooKeeperNode でキーのヘッダーが存在する場合、ヘッダーの値はサーバー上の znode へのパスとして使用されます。たとえば、上記の同じルート定義を使用する場合、以下のコードスニペットは /somepath/somenode ではなく、ヘッダー /somepath/someothernode からパスに書き込みます。ZooKeeper に保存されているデータはバイトベースであるため、testPayload は byte[] に変換する必要があります。
Object testPayload = ...
template.sendBodyAndHeader("direct:write-to-znode", testPayload, "CamelZooKeeperNode", "/somepath/someothernode");
Object testPayload = ...
template.sendBodyAndHeader("direct:write-to-znode", testPayload, "CamelZooKeeperNode", "/somepath/someothernode");
from("direct:create-and-write-to-znode").to("zookeeper://localhost:39913/somepath/somenode?create=true");
from("direct:create-and-write-to-znode").to("zookeeper://localhost:39913/somepath/somenode?create=true");
from("direct:delete-znode").setHeader(ZooKeeperMessage.ZOOKEEPER_OPERATION, constant("DELETE")).to("zookeeper://localhost:39913/somepath/somenode");
from("direct:delete-znode").setHeader(ZooKeeperMessage.ZOOKEEPER_OPERATION, constant("DELETE")).to("zookeeper://localhost:39913/somepath/somenode");
PERSISTENTPERSISTENT_SEQUENTIALEPHEMERALEPHEMERAL_SEQUENTIAL
from("direct:create-and-write-to-persistent-znode").to("zookeeper://localhost:39913/somepath/somenode?create=true&createMode=PERSISTENT");
from("direct:create-and-write-to-persistent-znode").to("zookeeper://localhost:39913/somepath/somenode?create=true&createMode=PERSISTENT");
CamelZookeeperCreateMode を使用します。ZooKeeper に保存されているデータはバイトベースであるため、testPayload は byte[] に変換する必要があります。
Object testPayload = ...
template.sendBodyAndHeader("direct:create-and-write-to-persistent-znode", testPayload, "CamelZooKeeperCreateMode", "PERSISTENT");
Object testPayload = ...
template.sendBodyAndHeader("direct:create-and-write-to-persistent-znode", testPayload, "CamelZooKeeperCreateMode", "PERSISTENT");
ZooKeeper が有効な Route ポリシー。 リンクのコピーリンクがクリップボードにコピーされました!
ZooKeeperRoutePolicy policy = new ZooKeeperRoutePolicy("zookeeper:localhost:39913/someapp/somepolicy", 1);
from("direct:policy-controlled").routePolicy(policy).to("mock:controlled");
ZooKeeperRoutePolicy policy = new ZooKeeperRoutePolicy("zookeeper:localhost:39913/someapp/somepolicy", 1);
from("direct:policy-controlled").routePolicy(policy).to("mock:controlled");