木村です。
検証結果のご連絡ありがとうございました。
うまく動作したということで安心しました。
蛇足かも知れませんが...
ソースを拝見して一つ感じた点は、GoodsInfoBeanのアトリビュート
であるobjectは、AddObject(JavaBeanクラス)であることが決定して
いるように感じられました。(実際のところは、断定できませんが)
もし、そうだとすると、java.lang.Objectで定義している箇所は、
com.sample.bean.AddObjectの方が妥当なような気がしました。
こちらの方は、プログラムの設計にあわせて設定して頂ければと
思います。
よろしくお願いします。
---
Toshi <[EMAIL PROTECTED]>
On Wed, 7 Sep 2005 [EMAIL PROTECTED] wrote:
木村様
山口です。
お世話になっております。
下記の手順通りにやったら上手くいきました。
古いWSDLのままクライアントを作成していたのが原因のようでした。
本当にありがとうございました。
-----Original Message-----
From: Toshiyuki Kimura [mailto:[EMAIL PROTECTED]
Sent: Monday, September 05, 2005 5:57 PM
To: axis-user-ja@ws.apache.org
Subject: RE: BeanSerializer
木村です。
単純なJavaBeanですから、標準のBeanSerializerで
(デ)シリアライズできるはずです。再度、下記の手順
で確認お願いします。
1.AddObject用のシリアライザ設定を追加したWSDDを作成
2.上記1)のWSDDを利用してサービスを再デプロイ
3.新しいWSDLを取得
4.wsdl2Javaでクライアントスタブの再生成
(TypeMappingを確認)
私の環境では、BoodsInfoBeanもAddObjectも無事送受信
できました。
---
Toshi <[EMAIL PROTECTED]>
On Mon, 5 Sep 2005 [EMAIL PROTECTED] wrote:
山口です。
AddObjectクラスは添付のとおりです。
既に、登録しているGoodsInfoBeanを参考にして、AddObject
用のエントリーをWSDDに追加し、再デプロイした上で動作確認
をお願いします。
上記のとおりデプロイし直して動作したところ、
これまでとは異なる以下のようなエラーが返ってきました。
AxisFault
faultCode:
{http://schemas.xmlsoap.org/soap/envelope/}Server.userException
faultSubcode:
faultString: org.xml.sax.SAXException: No deserializer for
{http://bean.sample.com}AddObject
faultActor:
faultNode:
faultDetail: {http://xml.apache.org/axis/}stackTrace:
org.xml.sax.SAXException: No deserializer for
{http://bean.sample.com}AddObject
(一部抜粋)
-----Original Message-----
From: Toshiyuki Kimura [mailto:[EMAIL PROTECTED]
Sent: Monday, September 05, 2005 3:09 PM
To: axis-user-ja@ws.apache.org
Subject: RE: BeanSerializer
木村です。
AddObjectの実装が分からないので何ともいえないのですが
まずAxis標準のBeanSerializerでシリアライズできないのかを
確認して頂けませんか?
既に、登録しているGoodsInfoBeanを参考にして、AddObject
用のエントリーをWSDDに追加し、再デプロイした上で動作確認
をお願いします。以下はWSDDの記載例(一部抜き出し)。
<beanMapping qname="ns:GoodsInfoBean"
xmlns:ns="http://bean.sample.com"
languageSpecificType="java:com.sample.bean.GoodsInfoBean"/>
<beanMapping qname="ns:AddObject"
xmlns:ns="http://bean.sample.com"
languageSpecificType="java:com.sample.bean.AddObject"/>
よろしくお願いします。
---
Toshi <[EMAIL PROTECTED]>
On Mon, 5 Sep 2005 [EMAIL PROTECTED] wrote:
山口です。
in0.setObject((Object)add);
に変更して試してみたのですが、
変更前と同じIOExceptionが発生します。
AddObjectはBeanクラスです。
AddObject用のカスタムシリアライザを作成して
登録することになると思います。
カスタムシリアライザの作成及び登録方法に
ついて教えていただけないでしょうか?
-----Original Message-----
From: Toshiyuki Kimura [mailto:[EMAIL PROTECTED]
Sent: Monday, September 05, 2005 2:07 PM
To: axis-user-ja@ws.apache.org
Subject: RE: BeanSerializer
木村です。
ソースを確認しただけで、動作させてのコメントではあり
ませんが、問題箇所はサービス実装部(...BindingImpl)の
in0.setObject(add);
という行だと思います。addは、com.sample.bean.AddObject
ですが、そのシリアライザが登録されていないため、エラー
が発生しているのではないかと推測します。
AddObjectクラスがどのようなものか分からないのですが
単にキャストして済むのであれば、
in0.setObject((Object)add);
がAxisの定義上では正しいと思われます。それで動作するか
どうかは試してご報告頂きたいのですが、もし動作しないの
であれば、AddObject用のカスタムシリアライザを作成して
登録することになると思います。
よろしくお願いします。
---
Toshi <[EMAIL PROTECTED]>
On Mon, 5 Sep 2005
[EMAIL PROTECTED] wrote:
木村様
山口です。
お世話になっております。
ただ今回、具体的な問題箇所が分からないので、可能であれ
ば、エラーの発生するクライアント/サービス実装/WSDL/WSDD/
およびBean実装を可能な範囲で公開ください。最低でも、WSDD
とBean実装があることが望ましいところです。
添付します。
また、SoapBindingStubのTypeMappingの部分を以下のように書き換えて
い
ま
す。
_call.registerTypeMapping(GoodsInfoBean.class, qName,
new BeanSerializerFactory(GoodsInfoBean.class,qName),
new BeanDeserializerFactory(GoodsInfoBean.class,qName));
-----Original Message-----
From: Toshiyuki Kimura [mailto:[EMAIL PROTECTED]
Sent: Monday, September 05, 2005 11:34 AM
To: axis-user-ja@ws.apache.org
Subject: Re: BeanSerializer
山口さん
木村です。
シリアライザの登録が上手くいっていないようです。
スタブを利用して実装されているようですから、APIはあまり
意識しなくても、WSDDさえしっかり記述してあげれば問題なく
動作するはずです。
ただ今回、具体的な問題箇所が分からないので、可能であれ
ば、エラーの発生するクライアント/サービス実装/WSDL/WSDD/
およびBean実装を可能な範囲で公開ください。最低でも、WSDD
とBean実装があることが望ましいところです。
よろしくお願いします。
---
Toshi <[EMAIL PROTECTED]>
On Sun, 4 Sep 2005
[EMAIL PROTECTED] wrote:
山口と申します。
引数を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型のシリアライズ/デシリアライズの方法を教えて
いただけないでしょうか?
wsdl2Javaでスタブやスケルトンを生成した際に、サービスの引数に
しているBeanに
public static org.apache.axis.encoding.Serializer
getSerializer(
java.lang.String mechType,
java.lang.Class _javaType,
javax.xml.namespace.QName _xmlType) {
return
new org.apache.axis.encoding.ser.BeanSerializer(
_javaType, _xmlType, typeDesc);
}
のような追記されているメソッドがいくつかあるのですがこれを利用
するのでしょうか。
よろしくお願い致します。
木村様>
お礼が遅くなってしまいましたが、
先日は回答頂きありがとうございました。
おかげさまで解決できました。
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail:
[EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail:
[EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]