0

Java/Hibernate/BlazeDS/Flex-Setup で型強制に問題があります。

まず、私のクラスは次のようになります。


--- ジャバ ---

インターフェイス I
(抽象) クラス A は I を実装します
クラス B は Aを拡張します

--- アクションスクリプト ---

インターフェース I
クラス A は I を実装します
クラス B は A を拡張します


すべての ActionScript クラス/インターフェイス I、A、および B で RemoteClass-Meta-Tags を取得しました。パッケージ構造とクラス/インターフェイス名はまったく同じです。

問題は次のとおりです。私の Java サービスは、Hibernate を介してデータベースからクラス B のオブジェクトを正常に取得します。インターフェイス型 I のメンバー プロパティを持つ別のクラス C を取得したので、型 B のオブジェクトを割り当てることができるはずですが、何らかの理由で次のエラー メッセージが表示されます。

TypeError: エラー #1034: Object@28b44a89 を package.name.I に変換できません

サービスで Java オブジェクト タイプを確認したところ、タイプ B で、まったく問題ないようです。型 B のオブジェクトを型 I のメンバー変数に代入できないのはなぜですか? これは私を夢中にさせています。

前もって感謝します。

4

2 に答える 2

0

サービス呼び出しによって返されたオブジェクトのタイプを確認します(Flash Builderのデバッガーで結果を確認します)。おそらく、それらはタイプBに適切に変換されず、ObjectProxyが作成されます。そうでない場合は、コードを投稿してください。

于 2010-05-24T15:08:49.003 に答える
0

同じ奇妙な問題が発生しました。

私の状況は次のとおりです: Flex 4 + Spring で Web アプリケーションを開発しています

Java では、クラス Message があります。Flex には Message クラスがあります。

サーバーからリモート Java オブジェクトを取得し、Flex で Message タイプにキャストすると、このエラーが発生します。奇妙なことに、最初はリモート Java オブジェクトから Flex の Message タイプにキャストしても問題なく、エラーは発生しません。しかし、2回目は失敗し、エラーが表示されます。

これを解決するには、1 つの解決策があります。registerClassAlias() メソッドを使用してリモート Java クラスに登録します。

しかし、この問題に対する他の解決策があるのではないかと思います。これはFlexのバグですか?

于 2011-01-06T10:39:08.520 に答える