Ich bin ziemlich neu zu Spring und ich arbeite mit einer alten Version 3.2.4.RELEASE davon in einem Jetty-Container. Ich erhalte einen ziemlich seltsam Fehler, wenn ich versuche Anzeigekomponente-Scanner zu verwenden, dass die @Configuration Klasse I eingerichtet haben ist nicht eine erweiterte Klasse:@Configuration Annotation verursacht IllegalArgumentException "ist keine erweiterte Klasse"
Caused by: java.lang.IllegalArgumentException: class com.datasource.DBConfiguration$$EnhancerByCGLIB$$8a295c55 is not an enhanced class
at org.springframework.cglib.proxy.Enhancer.setCallbacksHelper(Enhancer.java:621) ~[spring-core-3.2.4.RELEASE.jar:3.2.4.RELEASE]
at org.springframework.cglib.proxy.Enhancer.registerStaticCallbacks(Enhancer.java:594) ~[spring-core-3.2.4.RELEASE.jar:3.2.4.RELEASE]
at org.springframework.context.annotation.ConfigurationClassEnhancer.createClass(ConfigurationClassEnhancer.java:120) ~[spring-context-3.2.4.RELEASE.jar:3.2.4.RELEASE]
at org.springframework.context.annotation.ConfigurationClassEnhancer.enhance(ConfigurationClassEnhancer.java:92) ~[spring-context-3.2.4.RELEASE.jar:3.2.4.RELEASE]
at org.springframework.context.annotation.ConfigurationClassPostProcessor.enhanceConfigurationClasses(ConfigurationClassPostProcessor.java:356) ~[spring-context-3.2.4.RELEASE.jar:3.2.4.RELEASE]
... 78 common frames omitted
Meine Feder Bohnen-Datei auf dem Classpath ist und Aussehen wie die folgende
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd">
<context:component-scan base-package="com.datasource" /></beans>
die Konfigurationsklasse, die ich bin versucht Setup sieht wie folgt aus:
@Configuration
public class DBConfiguration {
@Bean
public DataAccessInterface getDataAccessInterface(){
return new DBDatasource();
}
}
die Klasse, die ich die DbDataSource in aussieht t injizieren wollen er folgt:
@Service
public class DBService {
private DataAccessInterface dai;
@Autowired
public DBService(DataAccessInterface dai){
this.dai = dai;
}
}
Was bedeutet die Ausnahme, wenn sie besagt, dass es sich nicht um eine erweiterte Klasse handelt? Verwende ich den Komponenten-Scan und die Konfigurations-Anmerkung nicht richtig?
Können Sie Ihre pom.xml posten? Ich nehme an, dass das von den CGLib-Versionskonflikten, die Sie verwenden, abgesehen werden kann. Ist es auch OSGi? –
Ich sehe org.osgi.core-4.1.0.jar und cglib-nodep-2.2.jar auf meinem Klassenpfad, aber soweit ich weiß, verwende ich nicht OSGI – rhunter