2.14. Hot Rod Java クライアントマーシャリング


Hot Rod は、Java オブジェクトをバイナリー形式に変換する必要があるバイナリー TCP プロトコルです。これにより、ネットワーク経由で転送したり、ディスクに保存したりできます。

デフォルトでは、Data Grid は ProtoStream API を使用して、言語に依存しない下位互換性のある形式で、Java オブジェクトをプロトコルバッファー (Protobuf) にエンコードおよびデコードします。ただし、カスタムマーシャラーを実装して使用することもできます。

2.14.1. SerializationContextInitializer 実装の設定

ProtoStream SerializationContextInitializer インターフェイスの実装を Hot Rod クライアント設定に追加して、Data Grid がカスタム Java オブジェクトをマーシャリングできるようにします。

手順

  • 以下のように SerializationContextInitializer 実装を Hot Rod クライアント設定に追加します。

hotrod-client.properties

infinispan.client.hotrod.context-initializers=org.infinispan.example.LibraryInitializerImpl,org.infinispan.example.AnotherExampleSciImpl
Copy to Clipboard Toggle word wrap

プログラムによる設定

ConfigurationBuilder builder = new ConfigurationBuilder();
builder
      .addServer()
      .host("127.0.0.1")
      .port(11222)
      .addContextInitializers(new LibraryInitializerImpl(), new AnotherExampleSciImpl());
RemoteCacheManager rcm = new RemoteCacheManager(builder.build());
Copy to Clipboard Toggle word wrap

2.14.2. カスタムマーシャラーの設定

カスタムマーシャラーを使用するように Hot Rod クライアントを設定します。

手順

  1. org.infinispan.commons.marshall.Marshaller インターフェイスを実装します。
  2. Hot Rod クライアント設定でクラスの完全修飾名を指定します。
  3. Java クラスを Data Grid デシリアライズホワイトリストに追加します。

    以下の例では、Person または Employee が含まれる完全修飾名を持つクラスのみが許可されます。

    ConfigurationBuilder clientBuilder = new ConfigurationBuilder();
    clientBuilder.marshaller("org.infinispan.example.marshall.CustomMarshaller")
      .addJavaSerialWhiteList(".*Person.*", ".*Employee.*");
      ...
    Copy to Clipboard Toggle word wrap
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat