[Seasar-user:14072] Re: [s2axis2]戻り値が enum クラスのサービスについて
Takanori Suzuki
[E-MAIL ADDRESS DELETED]
2008年 5月 3日 (土) 16:51:18 JST
たかのりです。
2008/05/01 15:25 Chihiro Ueta <[E-MAIL ADDRESS DELETED]>:
> お世話になります。植田と申します。
>
> S2Axis2Examples 0.5.0を参考にさせて頂き、enum クラスを返すサービスをデプ
> ロイしてクライアントプログラムから実行すると、下のような例外が発生しました。
>
> org.apache.axis2.AxisFault: java.lang.RuntimeException:
> org.apache.axis2.AxisFault: Mapping qname not fond for the package:
> org.apache.catalina.loader
>
> どのような原因が考えられますでしょうか?
Axis2 1.3(S2Axis2 0.5.0で使用) では、enum型は未サポートです。
enum型を利用する場合は、
サービスの戻り値を、enum型ではなくString型とし、
クライアントで、enum型に変換してやる必要があります。
以下のような実装になります。
------------------------------------
【サービスのインタフェース】
------------------------------------
public interface Abc {
public enum Type {
A,B
}
public Type getType();
}
------------------------------------
【サービスの実装クラス】
------------------------------------
public class AbcImpl implements Abc {
public String getType() {
return Type.A.toString();
}
}
------------------------------------
【クライアントのクラス】
------------------------------------
JDK15Service service;
・・・
String typeValue = service.getType();
Type type = Type.valueOf(colorTypeValue);
--
====
Takanori Suzuki
Seasar-user メーリングリストの案内