To: 阿久津さん

 木村です。

 状況報告有難うございました。
 特に急ぎではないので、何か進展がありましたら
情報共有をお願いできればと思います。

ソースレベルで何かわかればうれしいのですが、
スタブのcreateCall内firstCallはどのような時に
trueからfalseに変わるのかはご存知でしょうか?

# 以下、org.apahce.axis.をo.a.a.と省略します。

 自動生成されたStubは、o.a.a.client.Stubを継承
していますから、詳しくは当該クラスのソースの中
を確認して頂くのがより分かり易いと思われます。
そのメソッド名の通り、初回呼び出し時のみtrueの
boolean値を返し、それ以外はfalseが返されるよう
になっています。

http://svn.apache.org/viewvc/webservices/axis/
trunk/java/src/org/apache/axis/client/Stub.java?
revision=264831&view=markup

よろしくお願い致します。
---
Toshi <[EMAIL PROTECTED]>

On Mon, 11 Sep 2006, [EMAIL PROTECTED] wrote:


To:木村さん

回答ありがとうございます。
また返答が遅くなりまして申し訳ございません。

「複数newして使用してはいけない」という仕様はないのですね。
安心しました。
ありがとうございます。

サンプルのご提供の話ですが、
簡単なサンプルは現在持ち合わせていません。

また担当者が別作業を行なっておりますので、
しばらく作成することができない状況です。
申し訳ございません。

ソースレベルで何かわかればうれしいのですが、
スタブのcreateCall内firstCallはどのような時に
trueからfalseに変わるのかはご存知でしょうか?

よろしくお願いします。




                     Toshiyuki Kimura
                     <[EMAIL PROTECTED]        宛先:    axis-user-ja@ws.apache.org
                     >                        cc:      (bcc: Tohru 
Akutsu/R/RICOH)
                                              件名:    Re: createCall
                     2006/08/28 21:48
                     axis-user-ja へ返
                     信してください






To: 阿久津さん

はじめまして。
木村と申します。

初歩的な話かも知れませんが、スタブはそもそも複数newして
使用してはいけないという仕様なのでしょうか?

「複数newして使用してはいけない」という仕様がある訳では
ありません。実際、複数インスタンスを生成して動作している
例も報告されているので、不具合があるようであればAxis内の
バグの可能性も考えられます。

完全に同一のソースである必要は無いのですが、現象が再現
可能なレベルのサンプルを共有することは可能でしょうか?

よろしくお願いします。
---
Toshi <[EMAIL PROTECTED]>

On Thu, 27 Jul 2006, [EMAIL PROTECTED] wrote:

はじめまして。阿久津と申します。

axis1.1を用いてWebアプリケーションを作成しています。

wsdl2javaで作成されたスタブをハイパースレッド環境で複数newし、

同時にサービスを呼び出すと、スタブのcreateCall内のresisterTypeMappingが同時
に呼ばれてしまい
まれにSOAPメッセージを正しく受信できずにSAXExceptionが発生しました。

発生個所は以下です。
     at

org.apache.axis.encoding.ser.BeanDeserializer.onStartChild(BeanDeserializer.java:260)

     at

org.apache.axis.encoding.DeserializationContextImpl.startElement(DeserializationContextI
$
     at

org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:198)

     at

org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java:722)

     at
org.apache.axis.message.RPCElement.deserialize(RPCElement.java:323)
     at
org.apache.axis.message.RPCElement.getParams(RPCElement.java:347)
     at org.apache.axis.client.Call.invoke(Call.java:2272)
     at org.apache.axis.client.Call.invoke(Call.java:2171)
     at org.apache.axis.client.Call.invoke(Call.java:1691)


とりあえずcreateCall内の”synchronized(this)”を”synchronized(staticなロック
オブジェクト)”に変更することで、問題は回避できました。


初歩的な話かも知れませんが、スタブはそもそも複数newして使用してはいけないと
いう仕様なのでしょうか?
(axis1.4からスタブを生成しても同様のようでした。)

どなたがご存知のかたがいらっしゃったら教えていただければと思います。

よろしくお願いいたします。


---------------------------------------------------------------------
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]

メールによる返信