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%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%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% Anscheinend missbrauchen Sie ParameterizedType
.
Im Konstruktor EntityRepository
sollten Sie Folgendes mit den entsprechenden Überprüfungen verwenden:
Diese Implementierung ist jedoch noch lange nicht abgeschlossen, da Sie auch GenericArrayType
-Werte sowie verschachtelte ParameterizedType
verarbeiten sollten.
@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 werdenTags und Links java spring-mvc