0

Web サービスのエラーをキャッチしようとしていますが、それもできません。このエラーをキャッチするにはどうすればよいですか? Java-Ws (Spring ではない) と JBoss を使用していることに注意してください。

11:19:54,457 WARNING [org.apache.cxf.phase.PhaseInterceptorChain] 
(http--0.0.0.0-8080-1) Interceptor for {http://services.com/}OppService#{http:
//services.com/}getopp has thrown exception, unwinding now:
org.apache.cxf.interceptor.Fault: Unmarshalling Error: Not a number: asdas 

番号を送信した場合、すべて正常に動作していますが、エラーをキャッチできるようにコードを壊したいのですが、Java コードにもハンドラーにも到達しないため、エラーをキャッチできないようです。エラーはハンドラーの前にあります。

wsdlを構築するためにJavaアノテーションを訴えていることに注意してください

4

1 に答える 1

0

DefaultValidationEventHandlerを見てください。ドキュメントに従って:

検証の警告またはエラーの通知を受け取ります。ValidationEvent には、エラーまたは警告が発生した場所を示す ValidationEventLocator が埋め込まれています。このメソッドから未チェックの実行時例外がスローされた場合、JAXB プロバイダーはメソッドが false を返したかのように処理し、現在の非整列化、検証、または整列化操作を中断します。

したがって、基本的に必要なことは、そのクラスを拡張し、handleEvent(ValidationEvent event)メソッドをオーバーライドして、次のことを確認することです。

if (event.getSeverity() == ValidationEvent.WARNING) {
    return super.handleEvent(event);
} else {
    throw new RuntimeException("build your own message.");
}
于 2013-03-18T10:27:07.350 に答える