20.7.16. イベントマーシャリング


Hot Rod サーバーは、異なる形式でデータを保存できますが、Java Hot Rod クライアントユーザーは、タイプ化されたオブジェクトで機能する CacheEventConverter インスタンスまたは CacheEventFilter インスタンスを開発できます。デフォルトでは、フィルターとコンバーターは、データを POJO (application/x-java-object)として使用しますが、filter/converter からメソッド format() を上書きすることで、希望の形式を上書きすることができます。形式が null を返す場合、フィルター/変換は保存時にデータを受け取ります。

Marshalling Data セクションが示すように、Hot336 Java クライアントは、別の org.infinispan.commons.marshaller インスタンスを使用するよう設定でき ます。これ CacheEventConverter インスタンスや CacheEventFilter インスタンスをデプロイしたり、コンテンツをマーシャリングしたりするのではなく、Java オブジェクトでフィルター/変換できるようにするには、サーバーはオブジェクトとマーシャラーで生成されるバイナリー形式の間で変換できるようにする必要があります。

Marshaller インスタンスのサーバー側のデプロイするには、CacheEventConverterインスタンスまたはCacheEventFilterインスタンスをデプロイするのに使用されるものと同様の方法に従います。

  1. コンバーターの実装を含むJARファイルを作成します。
  2. JAR ファイル内で META-INF/services/org.infinispan.commons.marshall.Marshaller ファイルを作成し、フィルタークラス実装の完全修飾クラス名を作成します。
  3. JAR ファイルを Red Hat Data Grid Server にデプロイします。

Marshaller は個別の jar または CacheEventConverterインスタンスおよび/またはCacheEventFilterインスタンスと同じ jar にデプロイできることに注意してください。

20.7.16.1. Protostream マーシャラーのデプロイ

キャッシュに protostream マーシャラーを使用する際に発生するように protobuf コンテンツが格納されている場合、形式はすでにサーバーによってサポートされているため、カスタムのマーシャラーをデプロイする必要はありません。protobuf 形式から JSON や POJO のような最も一般的な形式へのトランスコーダーがあります。

これらのキャッシュでフィルター/変換を使用し、バイナリー prototobuf データではなく Java オブジェクトでフィルター/変換を使用することが望ましい場合には、フィルター/変換の前にサーバーがデータをアンマーシャリングできるように、追加の protostream マーシャラーをデプロイする必要があります。これを行うには、以下の手順に従います。

  1. 以下のインターフェースの実装が含まれる JAR ファイルを作成します。

    org.infinispan.query.remote.client.ProtostreamSerializationContextInitializer

    この実装は、Cache Manager の Serialization コンテキストに、さらにマーシャラーとオプションの Protobuf(.proto)ファイルを追加する必要があります。

  2. 以下のファイルを JAR ファイル内に作成します。

    META-INF/services/org.infinispan.query.remote.client.ProtostreamSerializationContextInitializer

    このファイルには、ProtostreamSerializationContextInitializer 実装の完全修飾クラス名が含まれている必要があります。

  3. 以下を含む JAR ファイル内に META-INF/MANIFEST.MF ファイルを作成します。

    Dependencies: org.infinispan.protostream, org.infinispan.remote-query.client
  4. Red Hat Data Grid Server がカスタムクラスにアクセスできるように、JBoss デプロイメント構造ファイル jboss-deployment-structure.xml を更新し、以下の内容を追加します。

    <jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.2">
         <deployment>
          <dependencies>
             <module name="org.infinispan.protostream" />
             <module name="org.infinispan.remote-query.client" services="import"/>
          </dependencies>
       </deployment>
    </jboss-deployment-structure>
  5. standalone/deployments フォルダーに追加して、JAR ファイルを Red Hat Data Grid Server にデプロイします。
  6. 以下のように、適切な Cache Manager でデプロイメントを設定します。

    <cache-container name="local" default-cache="default">
       <modules>
         <module name="deployment.my-file.jar"/>
       </modules>
       ...
    </cache-container>
重要

カスタムクラスを Red Hat Data Grid Server にデプロイする JAR ファイルは起動時に利用可能である必要があります。JAR を稼働中のサーバーインスタンスにデプロイできません。

Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2026 Red Hat
トップに戻る