- PR -

Excel⇔AxisでのSOAP送受信

1
投稿者投稿内容
ken
会議室デビュー日: 2003/03/27
投稿数: 14
投稿日時: 2003-09-12 22:07
お世話になります。

現在、Axisで公開したWebサービス(RPC)をExcelから呼び出す
アプリケーションを作成しているのですが、データが非常に
大きいため、時間がかかってしまいConnecionTimeoutが
発生してしまいます。

時間がかかってもよいので接続しつづけたいと思っています。
サーバ側の設定方法で解決できないかと思い、いろいろ
調べてみたのですがうまくいきません。

小さいデータであればクライアントがExcelのときも
Javaのときも問題なく実行でき、データが大きくなると
下記のエラーが発生するという状況です。

どなたかご存知でしたら、ご教授のほど
宜しくお願いします。


------エラー内容-------
■Excel(クライアント)⇔Java(Webサービス)において
→Excel(クライアント側)
実行時エラー'-2147221504'
Connector:Connection time out.

→Java(サーバ側)
- java.io.IOException:
java.net.SocketException: Connection reset by peer: socket write error
-以下省略-
・・・

(↓Javaクライアントの場合も試したのでエラーを記載します)
■Java(クライアント)⇔Java(Webサービス)において
→Java(クライアント側)
AxisFault
faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
faultSubcode:
faultString: java.net.SocketTimeoutException: Read timed out
faultActor:
faultNode:
faultDetail:{http://xml.apache.org/axis/}stackTrace: Java.net.SocketTimeoutException: Read timed out
-以下省略-
・・・

→Java(サーバ側)
- java.io.IOException:
java.net.SocketException: Connection reset by peer: socket write error
-以下省略-
・・・


-----環境---------
■クライアント&サーバ(ローカルでWebサービスの呼び出し)
Windows2000Pro
Tomcat4.1.24
axis-1_1
j2sdk1.4.2


[ メッセージ編集済み 編集者: ken 編集日時 2003-09-12 22:08 ]

[ メッセージ編集済み 編集者: ken 編集日時 2003-09-12 22:10 ]

[ メッセージ編集済み 編集者: ken 編集日時 2003-09-13 12:09 ]
kan
ベテラン
会議室デビュー日: 2002/11/28
投稿数: 55
投稿日時: 2003-09-14 01:35
クライアント側でタイムアウト値を設定されてますか?
Excelは知らないのですが、Axisであれば以下のような感じです。

((org.apache.axis.client.Call)call).setTimeout(new Integer(1000*30));
ken
会議室デビュー日: 2003/03/27
投稿数: 14
投稿日時: 2003-09-17 10:43
返答が遅くなりました。

kanさんご指摘ありがとうございます。
ご指摘の通りやってみたところ
サーバ側(Java)、クライアント側(Java)とも
エラーを発することなく予想した動作となりました。

---------------------------------------------
//自動生成されたスタブ内のコードを以下のように設定
_call.setTimeout(new Integer(600*1000));
---------------------------------------------

サーバ側の設定とばかり思っていました。
失礼しました。

Java同士での接続はできたことになりましたが、
これからExcelのtimeoutの設定について調べてみます。



[ メッセージ編集済み 編集者: ken 編集日時 2003-09-17 11:54 ]
ken
会議室デビュー日: 2003/03/27
投稿数: 14
投稿日時: 2003-09-17 11:53
Java同士での接続を元にExcelも下記コードを
自動生成されたスタブに記述することでできました。

Set test = New SoapClient30
test.ConnectorProperty("Timeout") = 600000

参考にしてください。

また、何かご指摘ありましたら
宜しくお願いします。

1

スキルアップ/キャリアアップ(JOB@IT)