1.4. マーシャリングされた Java オブジェクト


Data Grid は、マーシャリングされた Java オブジェクトをバイトアレイとしてキャッシュに保存します。たとえば、以下は、メモリーに値として保存される Person オブジェクトの単純な表現です。

value=[61 6c 61 6e 0a 70 61 72 74 72 69 64 67 65]
Copy to Clipboard Toggle word wrap

キャッシュにマーシャリングされたオブジェクトを保存するには、厳密な要件がない限り、ProtoStream マーシャラーを使用する必要があります。たとえば、クライアントアプリケーションを古いバージョンの Data Grid から移行する場合は、Hot Rod Java クライアントで JBoss マーシャリングを一時的に使用する必要がある場合があります。

Data Grid は、以下のメディアタイプでマーシャリングされた Java オブジェクトをバイトアレイとして保存します。

  • application/x-protostream
  • application/x-jboss-marshalling
  • application/x-java-serialized-object
注記

アンマーシャリングされた Java オブジェクトを保存する場合、Data Grid は equals() および hashCode() のオブジェクト実装を使用します。マーシャリングされたオブジェクトを保存する場合、マーシャリングされたバイトは等価性について比較され、代わりにハッシュ化されます。

1.4.1. クライアントおよびマーシャリングされたオブジェクト

Hot Rod Java クライアントをマーシャラーを使用するように設定する場合は、そのマーシャラーのエンコーディングでキャッシュを設定する必要があります。

それぞれのマーシャラーは異なるメディアタイプを使用して、クライアントが Data Grid Server に送信できる byte[] コンテンツを生成します。サーバーから読み取る場合、クライアントマーシャラーは逆の操作を行います。メディアタイプを使用して byte[] コンテンツからデータを生成します。

キャッシュエンコーディングは Hot Rod クライアントマーシャラーと互換性がある必要があります。たとえば、キャッシュエンコーディングを application/x-protostream として設定している場合、クライアント上で ProtoStream マーシャラーを使用して、そのキャッシュ上で動作させることができます。ただし、クライアントマーシャラーが、Data Grid が application/x-protostream との間で変換できないエンコーディングを使用する場合、Data Grid はエラーメッセージを出力します。

JavaSerializationMarshaller または GenericJBossMarshaller を使用する場合は、キャッシュを application/x-java-serialized-object または application/x-jboss-marshalling メディアタイプでエンコードする必要があります。

ProtoStream から JSON への変換

Data Grid は、application/x-protostream メディアタイプでエンコードされたキーと値を application/json に変換します。

これにより、REST クライアントは要求ヘッダーに JSON メディアタイプを追加し、ProtoStream エンコーディングを使用するキャッシュで操作を実行することができます。

  • Accept: application/json(読み取り操作の場合)
  • Content-Type: application/json(書き込み操作の場合)
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2026 Red Hat
トップに戻る