2

私のアプリケーションでは、Flex と Java 間の通信に BlazeDS を使用しています。Java での BlazeDS 統合に Spring を使用しています。

TransactionStatus という列挙型があります。フレックス側では、対応するプロパティが整数として設定されます。この変換を処理するためにカスタム コンバーターを使用しようとしています。ここに私のコンバーターがあります:

public class TransactionStatusIntConverter implements Converter<TransactionStatus, Integer> {

    @Override
    public Integer convert(TransactionStatus src) {
        if(src == null){
            return 0;
        } else {
            return src.getValue();
        }
    }

}

public class IntTransactionStatusConverter implements Converter<Integer, TransactionStatus> {

    @Override
    public TransactionStatus convert(Integer src) {
        return TransactionStatus.fromInt(src);
    }

}

Flex クライアントから Java にデータを送信すると、変換が成功し、期待どおりに TransactionStatus インスタンスが取得されます。ただし、Java から Flex にデータを送信する場合、変換関数は実行されません。両方のコンバーターは確実に私の ConfigProcessor クラスに登録されています

@Override
protected void configureConverters(ConverterRegistry registry) {
    registry.addConverter(new IntTransactionStatusConverter());
    registry.addConverter(new TransactionStatusIntConverter());
}

何が起きてる?

4

0 に答える 0