In meiner JEE Anwendung, 3 auf Glassfish laufen, ich habe die folgende Situation:JEE: Wie Parameter Abfangjäger passieren
MyFacade Klasse
@Interceptors(SomeInterceptor.class)
public void delete(Flag somethingForTheInterceptor, String idToDelete) {
.......
}
@Interceptors(SomeInterceptor.class)
public void update(Flag somethingForTheInterceptor, MyStuff newStuff) {
.......
}
Die Variable somethingForTheInterceptor
wird nicht verwendet in diese Verfahren werden nur in dem Abfangjäger verwendet:
SomeInterceptor Klasse
@AroundInvoke
public Object userMayAccessOutlet(InvocationContext ctx) throws Exception {
Flag flag = extractParameterOfType(Arrays.asList(ctx.getParameters()), Flag.class);
// some checks on the flag
}
Irgendwie ist es nicht gut, einen Parameter zu haben, der nicht in der Methode verwendet wird. Gibt es eine andere Möglichkeit, somethingForTheInterceptor
an den Abfangjäger zu senden?
UPDATE: Die Anrufer von delete()
und update()
haben verschiedene Möglichkeiten, die somethingForTheInterceptor
Variable zu berechnen. Und das ist keine Konstante. Die für die Berechnung erforderlichen Informationen befinden sich im REST-Aufruf. Die 2 REST-Methoden haben jedoch unterschiedliche Eingabeobjekte, so dass es nicht ausreicht, die HTTP-Anfrage zu injizieren.
Dies sind die Anrufer:
MyResource Klasse
@DELETE
@Path("/delete/{" + ID + "}")
public Response delete(@PathParam(ID) final String id) {
Flag flag = calculateFlagForInterceptor(id);
facade.delete(flag, id);
}
@POST
@Path("/update")
@Consumes(MediaType.APPLICATION_JSON + RestResourceConstants.CHARSET_UTF_8)
public Response update(final WebInputDTO updateDetails) throws ILeanException {
Flag flag = calculateFlagForInterceptor(updateDetails);
facade.update(flag, convertToMyStuff(updateDetails));
}
dachte ich - ist es möglich, dass die Methoden in der Ressource, die Flagge in einer Art Kontext zu setzen, dass sein später in den Interceptor injiziert?
Was dieses Flag Wert sein könnte? Könnte es eine Konstante in der Anmerkung sein? Können Sie die Notwendigkeit dieser Flagge erklären? – AxelH