- ベストアンサー
例外のキャッチ方法
- perlクライアントからJavaのサーブレットを呼び出す際に、発生したエラーをキャッチする方法について教えてください。
- perlクライアントからSOAP::Liteモジュールを使用し、Javaのサーブレットを呼び出しています。サーブレットで例外が発生した場合、perlクライアントでその例外をキャッチする方法を教えてください。
- perlクライアントからSOAP::Liteモジュールを使用し、Javaのサーブレットを呼び出しています。サーブレットで例外が発生した場合の処理方法について教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
当方の環境では取得できますが・・・ ActivePerl v5.6.1 SOAP::Lite v0.55 Apache axis v1.4 JDK 1.5.0_12 --- perlソース --- use SOAP::Lite; use Data::Dumper; my $service = SOAP::Lite -> uri('http://localhost:8080/axis') -> proxy('http://localhost:8080/axis/Hello.jws') ; $result = $service->sayHello(); if($result->fault){ print STDERR $result->faultstring; } --- javaソース --- import java.lang.Exception; public class Hello{ public String sayHello() throws Exception{ throw new Exception(); return "Hello!"; } ※axisは http://muimi.com/j/axis/ を参考にセットアップしています。
その他の回答 (1)
- bgbg
- ベストアンサー率53% (94/175)
$result->fault $result->faultcode $result->faultstring で例外の種類、メッセージが取れませんか? クライアントによりfaultがうまく取得できないことがあるようなので、サーバ側で例外をキャッチしたら例外用レスポンスを自前で作るほうが安全だとは思いますが。
お礼
ご回答ありがとうございます。 ご指摘の方法ですと、通信エラー(無効サーバや回線切断)などは キャッチできるのですが、サーバが吐き出すExceptionは無視されてしまいます。 クライアントにより・・というのに関係があるのでしょうか・・。
お礼
度々のご回答ありがとうございます。 現状のシステムではうまくいかないため、別の原因があるかもしれません。 (少々複雑なつくりになっているので・・) とりあえずHelloWorldなど、簡易環境を作ってみて試行してみたいと思います。