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.第12章 Bean バリデーター
Bean バリデーターコンポーネント リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
Apache Camel 2.3 で利用可能
バリデーターコンポーネントは、Java Bean Validation API (JSR 303) を使用してメッセージボディーの Bean 検証を実行します。Camel は Hibernate Validator のリファレンス実装を使用します。
Maven ユーザーは、このコンポーネントの
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 オプション リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
以下の 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 デプロイメント リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
OSGi 環境で Hibernate Validator を使用するには、
org.apache.camel.component.bean.validator.HibernateValidationProviderResolver
と同じように、専用の ValidationProviderResolver
実装を使用します。以下のスニペットは、このアプローチを示しています。Camel 2.13.0 から HibernateValidationProviderResolver
を使用できることに注意してください。
例12.1 Using HibernateValidationProviderResolver
カスタム
ValidationProviderResolver
が定義されておらず、バリデーターコンポーネントが OSGi 環境にデプロイされている場合、HibernateValidationProviderResolver
は自動的に使用されます。
例 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
以下のアノテーションを持つ Java Bean があると仮定します。
Car.java
カスタムバリデーショングループのインターフェイス定義:
OptionalChecks.java
public interface OptionalChecks { }
public interface OptionalChecks {
}
以下の Apache Camel ルートでは、製造元および licensePlate 属性の @NotNull 制約のみが検証されます(Apache Camel はデフォルトのグループ
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")
両方のグループからの制約を確認する場合は、最初に新しいインターフェイスを定義する必要があります。
AllChecks.java
@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")
また、独自のメッセージインターポレーター、通過可能なリゾルバー、および制約バリデーターファクトリーを提供する必要がある場合は、次のようなルートを記述する必要があります。
制約は、Java アノテーションではなく XML として記述することもできます。この場合、次のようなファイル
META-INF/validation.xml
を提供する必要があります。
validation.xml
constraints-car.xml
ファイル
constraints-car.xml