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 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

JTable Suchfunktion mit SQL Daten
JTable Suchfunktion mit SQL Daten im Forum Java Basics - Anfänger-Themen
Suche Java-Programmierer/in für ein Spiel
Suche Java-Programmierer/in für ein Spiel im Forum Private Stellangebote und Stellensuche von Usern
SQL Statement gesucht...
SQL Statement gesucht... im Forum Datenbankprogrammierung
Suche Programmierer/in für eine Java Aufgabe
Suche Programmierer/in für eine Java Aufgabe im Forum Private Stellangebote und Stellensuche von Usern
NoSuchElementException
NoSuchElementException im Forum Java Basics - Anfänger-Themen
Thema: context:component-scan: No such bean definition