7

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

とにかく、私の質問は次のとおりです。この問題をどのようにデバッグできますか? Flex アプリをデバッグ モードで実行すると、あまり役に立たない一般的なエラーがコンソールに出力されます (TypeError: Error #1034: Type Coercion failed: cannot convert Object@5d1d809 to valueObjects.SomeClass.)。

私はこのAMF / Flex + Java全体に不慣れなので、ヒントをいただければ幸いです。

4

5 に答える 5

13

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

  • Charlesなど、クライアントとサーバー間の呼び出しを表示する HTTP プロキシ ツールを使用する

Charles は、開発者がマシンとインターネット間のすべての 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">

于 2009-06-11T06:36:35.013 に答える
4

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

于 2011-01-31T11:25:26.437 に答える
2

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

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

于 2010-07-14T18:04:48.910 に答える
0

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

于 2009-06-18T09:18:33.537 に答える
0

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

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

于 2011-03-25T15:59:23.023 に答える