Java オブジェクトの AMF (BlazeDS) シリアル化を Actionscript にデバッグするにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/979617

質問

BlazeDS を使用して、Flex アプリケーションで使用しているいくつかの Java オブジェクトをリモートにしています。クラスの 1 つで型強制エラーが発生しましたが、これは一生わかりません。同じデータ型を使用して正常に動作する他のクラスもあり、マッピングを何十回も見直しました。私の知る限り、ゲッターとセッターに必要な規則はすべてに従っています...

とにかく、私の質問は次のとおりです。この問題をデバッグするにはどうすればよいですか? Flex アプリをデバッグ モードで実行すると、あまり役に立たないいくつかの一般的なエラーがコンソールに吐き出されます (TypeError:エラー #1034:型強制が失敗しました:Object@5d1d809 を valueObjects.SomeClass に変換できません。)

私は AMF / Flex + Java についてはまったくの初心者なので、ヒントがあれば大変助かります。

役に立ちましたか?

解決

これらは、BlazeDS、AMF などを使用するときに使用する 2 つのツールです。

  • HTTPプロキシツールを使用する これは、クライアントとサーバー間の呼び出しを示しています。 チャールズ

チャールズは、開発者がマシンとインターネット間のすべてのHTTPおよびSSL / HTTPSトラフィックを表示できるようにするHTTPプロキシ / HTTPモニター /リバースプロキシです。これには、リクエスト、応答、HTTPヘッダー(Cookieとキャッシュ情報が含まれています)が含まれます。

  • BlazeDS のログをオンにする. 。内で WEB-INF/conf/services-conf.xml, 、デバッグ レベルを ' に下げます。debug' 以下の抜粋のように。かなり詳細な出力が次のように表示されます。 {tomcat-home}/logs/localhost.yyyy-mm-dd.log

    <target class="flex.messaging.log.ConsoleTarget" level="debug">

他のヒント

サービス クライアント AMF メッセージ間の通信を確認する最も簡単な方法は、FireFox を使用し、インストールすることです。 ファイアバグ 拡張子を追加して、 AMFエクスプローラー. 。構造化されたリクエストとレスポンスを確認できます。

クライアント側で逆シリアル化される Java クラスには、アプリケーション (mxml または as3) 内の対応する AS3 クラスのオブジェクトへの参照が必要です。そうしないと、as3 クラスが swf ファイルにロードされず、Java クラスが汎用の as3 オブジェクトに逆シリアル化されます。

更新しましたこれは、マッピング、ゲッター、セッターがあるにもかかわらず発生します。mxml の script セクションで、対応する AS3 クラスのオブジェクトを宣言するだけです。

私は Flex Builder を使用しており、クライアント側とサーバー側の両方のデバッグ用にセットアップしています。最初はセットアップするのが大変でしたが、Google でステップバイステップのチュートリアルを参照できます。RPC のデバッグには非常に価値があると思います。最後に確認したところ、Flex Builder には無料トライアルがあり、学生と失業者は無料で利用できます。

また、Java でのインストルメンテーションによって情報の損失が発生したり、シリアル化プロセスやストリームに干渉したりする可能性があることにも注意してください。

私はこれを経験しました TypeError: Error #1034: Type Coercion failed データ アクセス層が iBatis で実装され、遅延読み込みがオンになっているプロジェクト (Flex<->BlazeDS+Spring) では、(少なくとも理論的には) 効率の損失が少なくなるという理由から、遅延読み込みをオフにしました。私たちが実施していた他の回避策と比較して。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top