山口と申します。
引数をBeanとしたWebサービスを作成しています。
Beanはint型、String型、Object型で構成されてます。
現在は、Object型の値がnullであれば問題なく動作しています。
ただし、Object型にデータをセットすると以下のようなエラーが起きてしまいます。
|faultString: java.io.IOException: No serializer found for class
com.sample.bean.AddObject in registry
[EMAIL PROTECTED]
Beanの中のObject型のシリアライズ/デシリア
山口さん
木村です。
シリアライザの登録が上手くいっていないようです。
スタブを利用して実装されているようですから、APIはあまり
意識しなくても、WSDDさえしっかり記述してあげれば問題なく
動作するはずです。
ただ今回、具体的な問題箇所が分からないので、可能であれ
ば、エラーの発生するクライアント/サービス実装/WSDL/WSDD/
およびBean実装を可能な範囲で公開ください。最低でも、WSDD
とBean実装があることが望ましいところです。
よろしくお願いします。
---
Toshi <[EMAIL PROTECTED]>
On Sun, 4 Sep 2005 [E
木村様
山口です。
お世話になっております。
> ただ今回、具体的な問題箇所が分からないので、可能であれ
> ば、エラーの発生するクライアント/サービス実装/WSDL/WSDD/
> およびBean実装を可能な範囲で公開ください。最低でも、WSDD
> とBean実装があることが望ましいところです。
現在は、サンプルで動作を確認しています。
そのソース実装、WSDL、WSDDを添付します。
また、wsdl2javaで生成されたSoapBindingStubの一部を書き換えています。
よろしくお願い致します。
> -Original Message-
> From:
木村様
山口です。
お世話になっております。
> ただ今回、具体的な問題箇所が分からないので、可能であれ
> ば、エラーの発生するクライアント/サービス実装/WSDL/WSDD/
> およびBean実装を可能な範囲で公開ください。最低でも、WSDD
> とBean実装があることが望ましいところです。
添付します。
また、SoapBindingStubのTypeMappingの部分を以下のように書き換えています。
_call.registerTypeMapping(GoodsInfoBean.class, qName,
new BeanSerializerFactory(Go
木村です。
ソースを確認しただけで、動作させてのコメントではあり
ませんが、問題箇所はサービス実装部(...BindingImpl)の
in0.setObject(add);
という行だと思います。addは、com.sample.bean.AddObject
ですが、そのシリアライザが登録されていないため、エラー
が発生しているのではないかと推測します。
AddObjectクラスがどのようなものか分からないのですが
単にキャストして済むのであれば、
in0.setObject((Object)add);
がAxisの定義上では正しいと思われます。それで動作するか
山口です。
>in0.setObject((Object)add);
に変更して試してみたのですが、
変更前と同じIOExceptionが発生します。
AddObjectはBeanクラスです。
> AddObject用のカスタムシリアライザを作成して
> 登録することになると思います。
カスタムシリアライザの作成及び登録方法に
ついて教えていただけないでしょうか?
> -Original Message-
> From: Toshiyuki Kimura [mailto:[EMAIL PROTECTED]
> Sent: Monday, September 0
木村です。
AddObjectの実装が分からないので何ともいえないのですが
まずAxis標準のBeanSerializerでシリアライズできないのかを
確認して頂けませんか?
既に、登録しているGoodsInfoBeanを参考にして、AddObject
用のエントリーをWSDDに追加し、再デプロイした上で動作確認
をお願いします。以下はWSDDの記載例(一部抜き出し)。
http://bean.sample.com";
languageSpecificType="java:com.sample.bean.GoodsInfoBean"/>
http://bean.sample.c
山口です。
AddObjectクラスは添付のとおりです。
> 既に、登録しているGoodsInfoBeanを参考にして、AddObject
> 用のエントリーをWSDDに追加し、再デプロイした上で動作確認
> をお願いします。
上記のとおりデプロイし直して動作したところ、
これまでとは異なる以下のようなエラーが返ってきました。
AxisFault
faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
faultSubcode:
faultString: org.xml.sax.SA