0

シリアライゼーションを実装するいくつかの Java クラスと、IExternalizable を実装する対応する AS オブジェクト (GAS によって自己生成) があります。

サーバーからのオブジェクトの受信に問題はありませんが、オブジェクトをサーバーに送信しようとすると、例外がスローされます。

[BlazeDS]Class 'xxx' must implement java.io.Externalizable to receive client 
 IExternalizable instances. flex.messaging.io.SerializationException: Class 'xxx' must  
implement java.io.Externalizable to receive client IExternalizable instances.

オブジェクトを Java サーバーに送信するには、Externalizable を実装する必要がありますか?!

4

2 に答える 2

1

実際、Externalizable を実装する必要はなく、Serializable を実装する必要さえありません。代わりに、Flex 側で、完全な Java クラス パスを指すエイリアスを持つリモート クラスであることを指定する必要があります。また、プロパティ名 (またはゲッターとセッター) が Java オブジェクトのプロパティ名と同じであることも確認する必要があります。最後に、オブジェクト/プロパティの型が適切に一致または変換されていることを確認する必要があります (数値の Java オブジェクトを Flex の Number に変換するなど)。

于 2011-12-13T09:17:46.730 に答える
0

Externalizableを実装する必要があります。

http://help.adobe.com/en_US/LiveCycleDataServicesES/3.1/Developing/WSc3ff6d0ea77859461172e0811f00f6eab8-7ffdUpdate.htmlを参照してください

ActionScriptとJava間のカスタムシリアル化の使用

クライアント上のActionScriptとサーバー上のJavaの間でデータをシリアル化および逆シリアル化するための標準メカニズムがニーズを満たさない場合は、独自のシリアル化スキームを作成できます。クライアントにActionScriptベースのflash.utils.IExternalizableインターフェイスを実装し、サーバーに対応するJavaベースのjava.io.Externalizableインターフェイスを実装します。

于 2011-11-14T12:58:52.360 に答える