Hallo zusammen!
Ich versuche den Component-Scan mit Spring zum laufen zu bekommen.
Aus den Sourcen klappt das auch. Wenn ich jetzt allerdings eine Version mit Jenkins baue und diese dann aus den Jars starte, bekomme ich eine NoSuchBeanDefinitionException.
Er kann die angegebene Bean also nicht finden.
Ich habe Klassen, welche mit @Component gekennzeichnet sind, und welche per @Autowired instanziiert werden.
Schon beim instanziieren der ersten Bean im ApplicationContext gibts die Exception.
Ich kann leider nur code-stücke oder Pseudo-Code posten, mehr darf ich nicht.
Der Einstiegspunkt im Programmcode:
Beispiel des MainControllers:
Die ctx.xml:
[XML]<?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
="http://www.springframework.org/schema/p"
xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
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
Index of /schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd
Index of /schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd
Index of /schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
<context:component-scan base-package="package.package2"/>
</beans>[/XML]
Die mit @Component annotierten Klassen sind alle in verschiedenen Packages unter package2.
Teile des Quellcodes werden obfuscated, die Klassen die mit @Component gekennzeichnet sind, werden von der obfuscation ausgeschlossen. Hab das in der erstellten Jar schon überprüft.
Hab ich vielleicht noch irgendwas vergessen? Ich versteh einfach nicht, warum es aus Eclipse heraus läuft, aber nicht aus den JARs.
Hat jemand vielleicht ne Idee, woran das liegen könnte?
Ich versuche den Component-Scan mit Spring zum laufen zu bekommen.
Aus den Sourcen klappt das auch. Wenn ich jetzt allerdings eine Version mit Jenkins baue und diese dann aus den Jars starte, bekomme ich eine NoSuchBeanDefinitionException.
Er kann die angegebene Bean also nicht finden.
Ich habe Klassen, welche mit @Component gekennzeichnet sind, und welche per @Autowired instanziiert werden.
Schon beim instanziieren der ersten Bean im ApplicationContext gibts die Exception.
Ich kann leider nur code-stücke oder Pseudo-Code posten, mehr darf ich nicht.
Der Einstiegspunkt im Programmcode:
Java:
...
GenericApplicationContext context = new GenericApplicationContext();
XmlBeanDefinitionReader xmlReader = new XmlBeanDefinitionReader(context);
xmlReader.loadBeanDefinitions(new ClassPathResource("META-INF/ctx.xml"));
context.refresh();
mainController = context.getBean("MainController");
....
Beispiel des MainControllers:
Java:
@Component("MainController")
public class MainController implements Observer {
@Autowired
private MainModel model;
...
}
Die ctx.xml:
[XML]<?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
xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
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
Index of /schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd
Index of /schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd
Index of /schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
<context:component-scan base-package="package.package2"/>
</beans>[/XML]
Die mit @Component annotierten Klassen sind alle in verschiedenen Packages unter package2.
Teile des Quellcodes werden obfuscated, die Klassen die mit @Component gekennzeichnet sind, werden von der obfuscation ausgeschlossen. Hab das in der erstellten Jar schon überprüft.
Hab ich vielleicht noch irgendwas vergessen? Ich versteh einfach nicht, warum es aus Eclipse heraus läuft, aber nicht aus den JARs.
Hat jemand vielleicht ne Idee, woran das liegen könnte?