Spring context:component-scan: No such bean definition

Diskutiere context:component-scan: No such bean definition im Application Tier Forum; Hallo zusammen! Ich versuche den Component-Scan mit Spring zum laufen zu bekommen. Aus den Sourcen klappt das auch. Wenn ich jetzt allerdings...

  1. Boiorix
    Boiorix Neues Mitglied
    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:

    Code (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:

    Code (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:p="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?
     
  2. Vielleicht hilft dir dieser Java-Kurs hier weiter --> (hier klicken)
  3. mvitz
    mvitz Aktives Mitglied
    Die Vermutung liegt wohl nahe, dass es am Obfuscator liegt.

    Dein Pseudocode funktioniert bei mir wie erwartet.
     
  4. Boiorix
    Boiorix Neues Mitglied
    Du hast mit deiner Vermutung richtig gelegen!
    ProGuard optimiert noch den ganzen Quellcode und schmeisst Annotations raus!!!
    Annotations müssen wie folgend in der Proguard-Config eingetragen werden:

    Code (Text):


    -keepattributes *Annotation*
    -keepdirectories

    -keep @org.springframework.beans.factory.annotation.Component class *
    -keepclassmembers class * { @org.springframework.beans.factory.annotation.Autowired *; }

     
    So bleiben jetzt die Annotationen @Component und @Autowired beibehalten.
    Ob keepAttributes und -keepdirectories zwingend notwendig sind, weiss ich jetzt nicht.
    Denn wirklich funktioniert hat das ganze erst, mit dem Einfügen der anderen 2 Zeilen.
     
Die Seite wird geladen...

context:component-scan: No such bean definition - Ähnliche Themen

Suche in einer ListView
Suche in einer ListView im Forum Mobile Geräte
Suche nach einer horizontal aufklappbaren Toolbar
Suche nach einer horizontal aufklappbaren Toolbar im Forum AWT, Swing, JavaFX & SWT
Versuchszähler erstellen mit String? HILFE!
Versuchszähler erstellen mit String? HILFE! im Forum Hausaufgaben
Suche Java Programmierer für 3 studentische Arbeiten
Suche Java Programmierer für 3 studentische Arbeiten im Forum Private Stellangebote und Stellensuche von Usern
Hilfe gesucht beim einstieg in Java und erste Aufgaben aus der Berufsschule
Hilfe gesucht beim einstieg in Java und erste Aufgaben aus der Berufsschule im Forum Java Basics - Anfänger-Themen
Thema: context:component-scan: No such bean definition