Klasse kann nicht in java.lang.reflect.ParameterizedType umgewandelt werden

8

Momentan ist VariableService @Autowired in meinem Controller.

Ich weiß, dass ich die Klasse ParameterizedType implementieren kann, damit dieser Fehler verschwindet, aber ich befürchte, dass ich in die falsche Richtung gehe. Gibt es einen besseren Weg dies zu tun oder muss ich in den sauren Apfel beißen und die Methoden von ParameterizedType implementieren?

  

org.springframework.beans.factory.BeanCreationException: Fehler beim Erstellen einer Bean mit dem Namen 'contentController': Die Injektion von Abhängigkeiten mit Autowired ist fehlgeschlagen; Verschachtelte Ausnahme ist org.springframework.beans.factory.BeanCreationException: Feld konnte nicht automatisch gestartet werden: private com.fettergroup.cmt.service.VariableService com.fettergroup.cmt.web.ContentController.variableService; Verschachtelte Ausnahme ist org.springframework.beans.factory.BeanCreationException: Fehler beim Erstellen von Bean mit dem Namen 'variableService' in der ServletContext-Ressource [/WEB-INF/dispatcher-servlet.xml] definiert: Instanziierung von Bean fehlgeschlagen; verschachtelte Ausnahme ist org.springframework.beans.BeanInstantiationException: Bean-Klasse konnte nicht instanziiert werden [com.fettergroup.cmt.service.VariableService]: Konstruktor hat Ausnahme ausgelöst; Die verschachtelte Ausnahme ist java.lang.ClassCastException: java.lang.Class kann nicht in java.lang.reflect.ParameterizedType

umgewandelt werden

Variabler Service

%Vor%

EntityService

%Vor%

Variablen-Repository

%Vor%

EntityRepository

%Vor%     
Webnet 14.05.2012, 19:23
quelle

4 Antworten

12

Ich sage nur, das ist ein ziemlich schlechtes Design zum Bestimmen des Entitätstyps. Sie sollten das folgende tun, anstatt sich auf die Reflexion zu verlassen, um seine Klasse def abzuleiten .. Es wird nicht nur diesen Fehler beseitigen, sondern es wird insgesamt sauberer und auf einem niedrigen Niveau sein, schneller als die Reflexion (nicht dass es wirklich ein Problem wäre).

%Vor%     
Atticus 10.10.2012, 21:50
quelle
5

EntityRepository ist kein ParameterizedType-Typ. Diese Klasse erweitert nur den ParameterizedType. Dies ist auch möglich, wenn der Frühling Ihre Klasse mit cglib proxisiert.

Wir müssen die Eltern der Klasse überprüfen

%Vor%     
Michael Panchenko 29.01.2015 07:32
quelle
2

Anscheinend missbrauchen Sie ParameterizedType . Im Konstruktor EntityRepository sollten Sie Folgendes mit den entsprechenden Überprüfungen verwenden:

%Vor%

Diese Implementierung ist jedoch noch lange nicht abgeschlossen, da Sie auch GenericArrayType -Werte sowie verschachtelte ParameterizedType verarbeiten sollten.

    
tonio 14.05.2012 20:18
quelle
1

@Repository Annotation muss aus der Klasse EntityRepository entfernt werden, um das Problem zu lösen.

Lesen Sie diesen Thread

java.lang .Class kann nicht in java.lang.reflect.ParameterizedType

umgewandelt werden     
balatamilmani 19.03.2017 14:49
quelle

Tags und Links