4

私はJavaで携帯電話用のアプリケーションを書いています。目標は、サーバーとの間でVectorオブジェクトを送受信することです。しかし、ここで問題が発生ObjectOutputStreamしました。J2MEではサポートされていないため、配列に変換するVectorbyte、そのようなことを行う必要があります。

Vectorに変換しstring、ネットワーク経由で送信し、文字列から元のベクトルを再構築することを考えていましたが、適切な形式で機能することはほとんどないようです。

また、J2MEポーランド語などのいくつかのフレームワークを見てきましたが、残念ながら、インストールフォルダーでAPIを含むjarファイルを見つけることができませんでした。

それで、何かアイデアはありますか?

4

1 に答える 1

3

サーバーと Java ME デバイス間のネットワーク通信を容易にするために、Java オブジェクトをバイナリ表現にシリアライズおよびデシリアライズする比較的簡単な方法が 2 つあります。

  1. プロトコル バッファ

    プロトコル バッファは、ネットワーク上で非常に効率的なデータ交換を迅速に実装するために Google が作成したものです。交換するオブジェクトの仕様である「protobuf」ファイルを定義すると、protobuf ツールがクライアント側とサーバー側のスタブを作成して、ネットワーク接続を介したオブジェクトのシリアル化とシリアル化解除を処理します。

    「サードパーティ プラグイン ページ」に基づいて、Java ME でプロトコル バッファを処理するための Java ME プロジェクトがいくつかあります。他にも多くの言語ライブラリがあるため、このアプローチはサーバー側の実装オプションも豊富に提供します。個人的には、Java ME でこのアプローチを使用したことはありません。

  2. Netbeans の「Web アプリケーションへのモバイル クライアント」ツール

    サーバー側の実装が Java である場合、Netbeans の「モバイル クライアントから Web アプリケーションへ」ツールを使用して、サーバー側およびクライアント側のスタブを生成し、バイナリ データ ストリームを介して Java オブジェクトを送信できます。上記のリンクは、詳細な実装のための優れたチュートリアルです。

    一般的な手順は次のとおりです。

    a) ネットワーク接続を介して渡したいオブジェクトを含め、サーバー側の Web サービスを Java EE で定義します。

    b) 「Mobile Client to Web Application」ツールを実行して、クライアント側とサーバー側のスタブを生成します。

    私はこのアプローチをいくつかの Java ME アプリケーションで使用してきましたが、非常にうまく機能します。このアプローチの長所は、生成されたスタブのすべてのソース コードを、プロジェクト内でそのまま表示および編集できることです。考えられる欠点は、サーバー側コードの Java 実装が必要であり、プロトコル バッファーほど他のプラットフォームに移植できないことです。

于 2012-10-29T19:49:43.533 に答える