2007年6月4日月曜日

FlashRemoingのFaultクラスとJavaの例外クラス

スズキです。

近頃、S2Flex2使って、Flash(AS2)とAMF0で通信する仕事を結構こなしてます。

この通信はデータだけでなくJavaの例外も送ることができます。
Flashの受け側は表記のとおり、Faultクラス(FlashRemoting)となります。
(参考) http://blog.ozacc.com/archives/000971.html

ということで、Seasarのメッセージ管理の仕組み(S2Logger)と組み合わせた、
AS2のFaultクラス用の例外クラスを作ってみました。
(S2Logger) http://s2container.seasar.org/ja/S2Logger.html

--------ServiceForAsException
import org.seasar.framework.message.MessageFormatter;

public class ServiceForAsException extends RuntimeException {

  public ServiceForAsException(String code) {
    this(code, null);
  }

  public ServiceForAsException(String code, Object[] args) {
    this(code, args, null);
  }

  public ServiceForAsException(String code, Object[] args, Throwable cause) {
    super(MessageFormatter.getSimpleMessage(code, args), cause);
  }

}
--------

--------XXXMessages_ja.properties
WXXX0001=AAA
WXXX0002=BBB
WXXX0003=CCC
--------

使い方はこんな感じです。

--------
throw new ServiceForAsException("WXXX0001");
--------

引数にメッセージファイル(XXXMessages_ja.properties)上の
ログコード(WXXX0001)を入力すると、それに対応するメッセージが、
Faultクラス(AS2)のfaultstringに入るようになっています。

次は、認証系がんばろう。

--
blog: http://suz-lab.blogspot.com/

0 コメント: