Ich möchte einen Interceptor für meine Bean verwenden, der die Gültigkeit eines gegebenen Verbindungstokens überprüft.Wie ist der richtige Umgang mit Ausnahmen in Interceptors in EJB3?
Wenn die Verbindung ungültig ist, möchte ich eine bestimmte Ausnahme auslösen, wenn die Verbindung abgelaufen ist, möchte ich eine andere (TokenExpiredException, etwas in der Art) senden. Diese Ausnahmen sind in der Schnittstelle enthalten, die dem Client übergeben wird.
@AroundInvoke
public Object checkParams(InvocationContext ctx) throws TokenExpiredException, Exception{
//code to check token
//...
throw new TokenExpiredException();
}
Von dem, was ich versuchte, solche spezifische Ausnahme in dem Interceptor werfen führt zu einem UndeclaredThrowableException
auf der Client-Seite. Während diese Ausnahme den Verweis auf die Ursache enthält, ist sie nicht wirklich ideal und kann nicht mit regulären Fangklauseln behandelt werden.
Was ist der richtige Weg, um verschiedene Ausnahmetypen mit Interzeptoren zu deklarieren?