[Seasar-user:14073] Re: [s2axis2]戻り値が enum クラスのサービスについて

Chihiro Ueta [E-MAIL ADDRESS DELETED]
2008年 5月 4日 (日) 00:19:34 JST


植田です。

Takanori Suzuki さんは書きました:
> たかのりです。
> 
> 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型に変換してやる必要があります。

教えて頂いた通り、String型を使用するようにしたいと思います。
ご教示 ありがとうございます。

> 
> 以下のような実装になります。
> ------------------------------------
> 【サービスのインタフェース】
> ------------------------------------
> 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);
> 
> 



Seasar-user メーリングリストの案内