2017-05-11 3 views
0

Habe ich nur noch @Cacheable(value = "testCaching", key = "#id") auf eine Methode in der @RestController wie die folgenden:Warum @Cacheable Annotation führt zu java.lang.IllegalArgumentException?

@Cacheable(value = "testCaching", key = "#id") 
    public Book getCachedMsg(@PathVariable("id") final int id, final HttpServletResponse response) 

und bekam die folgende Fehlermeldung:

java.lang.IllegalArgumentException: Name for argument type [int] not available, and parameter name information not found in class file either. 

Jeder kennt den Grund?

+0

sind Sie versucht, mit "key = id"? – cralfaro

+0

Sie beabsichtigen, # zu entfernen; Ja, das habe ich auch gemacht und den gleichen Fehler bekommen! –

+0

vielleicht ist das Problem, weil Sie das cachefähig zu einer Controller-Methode hinzufügen, wäre vielleicht besser, wenn Sie von der Steuerung einen Aufruf an einen Dienst mit der cachefähigen Annotation innerhalb machen. Kannst du das versuchen? – cralfaro

Antwort

0

Try this:

@Cacheable(value = "testCaching", key = "#p0") 
    public Book getCachedMsg(@PathVariable("id") final int id, final HttpServletResponse response) 
+0

funktioniert nicht! .. –

Verwandte Themen