- 締切済み
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" ); } : 目的としては、サーブレットクラスの例外を取れればいいのですが、 根本的にやり方が間違っている場合もご指摘いただけると助かります。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- bgbg
- ベストアンサー率53% (94/175)
SOAP::Lite->faultは通信自体の成功を見るためのもので、サーブレット側でExceptionが発生したかどうかを調べるためのものではありません。 Exceptionが発生したなら取得結果にエラーメッセージが書かれていると思われるのでそちらを見たらどうでしょうか。
お礼
ご回答ありがとうございます。 上記コードで言いますと、 SOAP::Lite->faultとは、service->faultのことで、 取得結果のエラーは、a->faultのこと。 と認識しておりましたが、違いますでしょうか? 取得結果のエラーメッセージはどのように見るものでしょうか? (取得結果自体はa->resultで取れました。)