• 締切済み

axis SOAP Fault

お世話になります。 perlクライアントから、axisサーブレット(javaクラス)の呼出を行っています。 サーブレットであるエラーが発生したときに、例外を投げているのですが、 perlクライアント側でその例外をキャッチすることができません。 ▼perlクライアント --------------------------------------------- my $service = SOAP::Lite -> uri('http://xxx/axis/services/TestService') -> proxy('http://xxx/axis/services/TestService?wsdl'); $a = $service->Test( 0, 0 ); unless ( $a->fault ) { print "Success\n"; # Exceptionが発生してもSuccessになる。 } else { print "Error\n"; } ▼javaサーブレットクラス ------------------------------------- public class Test( int a, int b ) { : if ( a==0 || b==0 ) { throw Exception( "testException" ); } : 目的としては、サーブレットクラスの例外を取れればいいのですが、 根本的にやり方が間違っている場合もご指摘いただけると助かります。

みんなの回答

  • bgbg
  • ベストアンサー率53% (94/175)
回答No.1

SOAP::Lite->faultは通信自体の成功を見るためのもので、サーブレット側でExceptionが発生したかどうかを調べるためのものではありません。 Exceptionが発生したなら取得結果にエラーメッセージが書かれていると思われるのでそちらを見たらどうでしょうか。

mozori01
質問者

お礼

ご回答ありがとうございます。 上記コードで言いますと、 SOAP::Lite->faultとは、service->faultのことで、 取得結果のエラーは、a->faultのこと。 と認識しておりましたが、違いますでしょうか? 取得結果のエラーメッセージはどのように見るものでしょうか? (取得結果自体はa->resultで取れました。)

関連するQ&A

専門家に質問してみよう