2016-04-07 20 views
0

私は自分のカスタムエラーメッセージを返したいと思っています。私はこの@SchemvaValidationをカスタムに使用します。Jax-Wsカスタム検証エラー応答メッセージ

public class MyErrorHandler extends ValidationErrorHandler { 
private final static Logger logger = Logger.getLogger(LoggingHandler.class); 

public void warning(SAXParseException exception) throws SAXException { 
    logger.warn("warning", exception); 
} 

public static String message = ""; 

public void error(SAXParseException exception) throws SAXException { 
    logger.error("error", exception); 
    message += exception.getMessage(); 
    throw new SAXParseException("my custom" + exception.getMessage(),null); 
} 

public void fatalError(SAXParseException exception) throws SAXException { 
    logger.fatal("fatal error", exception); 
    throw new SAXParseException("my custom" + exception.getMessage(),null); 
} 

}

問題は、私は自分自身のメッセージをスローする場合、他のエラーは、省略され、私がいない場合、それは私のWebMethodの前にそれ自身の例外がスローされますです。何か解決策はありますか?

答えて

0

コンストラクタを使用して例外をスローします。 SAXParseException(文字列メッセージ、ロケータロケータ、例外e)

throw new SAXParseException("my custom" + exception.getMessage(),null, exception); 

例:

try { 
    RuntimeException re = new RuntimeException("my runtime exception message"); 
    SAXException se = new SAXParseException("saxparse 1",null,re); 
    SAXException se1 = new SAXParseException("saxparse 2",null,se); 
    throw se1; 

    } catch (SAXException e) { 
     Exception e2 = e.getException(); 
     System.out.println(e2.getMessage()); 
     System.out.println(e.getMessage()); 
    } 

また、私はSAXExceptionのは、例のSAXParseExceptionのものより適していると思います。

+0

関数エラー(SAXParseException例外)が2回呼び出されるので、最初にスローすると、後では –

+0

が省略されます。スロー呼び出しは更新された呼び出しで置き換えられます。 – sashwat

+0

私は最後のエラーでそれを投げる必要があります。おそらく4番か5番です。 –

関連する問題