2017-01-27 1 views
1

ich eine einfache Feder Anwendung habe:Frühling Anwendung funktioniert nicht, nachdem im Glas Gebäude

Hauptklasse:

@SpringBootApplication 
@EnableScheduling 
public class SchedulerApplication { 

    public static void main(String[] args) { 
     SpringApplication.run(SchedulerApplication.class, args); 
    } 
} 

und Klasse für geplanten Auftrag

@Component 
public class Executor { 

    private static final Logger log = LoggerFactory.getLogger(Executor.class); 
    private Integer jobCounter = 1; 

    @Scheduled(fixedDelay = 1000) 
    public void run() { 
     log.info("Start task (" + jobCounter + ")"); 
     log.info("Stop task"); 
     jobCounter ++; 
    } 
} 

Dies ist pom. xml

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 

    <groupId>ru.alexeyzhulin</groupId> 
    <artifactId>scheduler</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <packaging>jar</packaging> 

    <name>scheduler</name> 
    <description>Task scheduler</description> 

    <parent> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-parent</artifactId> 
     <version>1.4.4.RELEASE</version> 
     <relativePath/> <!-- lookup parent from repository --> 
    </parent> 

    <properties> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
     <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> 
     <java.version>1.8</java.version> 
    </properties> 

    <dependencies> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter</artifactId> 
     </dependency> 

     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-test</artifactId> 
      <scope>test</scope> 
     </dependency> 

     <dependency> 
      <groupId>org.postgresql</groupId> 
      <artifactId>postgresql</artifactId> 
      <scope>runtime</scope> 
     </dependency> 
    </dependencies> 

    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.springframework.boot</groupId> 
       <artifactId>spring-boot-maven-plugin</artifactId> 
      </plugin> 
     </plugins> 
    </build> 


</project> 

Th an ist meine Projektstruktur

enter image description here

Es arbeitet unter der IDE (IntelliJ IDEA) in Ordnung, aber wenn ich dieser Code kompilierte Datei jar und läuft:

java -jar scheduler.jar 

Ich habe einen langen Stapel Fehler wie diese

org.springframework.beans.factory.BeanDefinitionStoreException: Fehler beim Verarbeiten von Importkandidaten für die Konfigurationsklasse [ru.alexeyzhulin.SchedulerApplication]; Die verschachtelte Ausnahme ist java.lang.IllegalArgumentException: In META-INF/spring.f actories wurden keine Autokonfigurationsklassen gefunden. Wenn Sie eine benutzerdefinierte Verpackung verwenden, stellen Sie sicher, dass die Datei korrekt ist.

Was habe ich verpasst?

+0

Zeigen Sie uns Ihr Projekt pom – VHS

+0

ich meine Frage –

Antwort

0

Fügen Sie das folgende Element unter Ihrem Zweig Boot Maven Plugin in Pom.

<configuration> 
    <fork>true</fork> 
    <mainClass>Your-main-config-class</mainClass> 
</configuration> 
+0

Leider modifed, aber es scheint, dass ich nicht tat verstehe deine Antwort. Ich habe diese Art von Modifikation in meiner pom-Datei: \t ' \t \t \t \t \t \t \t \t \t org.springframework. Boot \t \t \t \t Feder-boot-Maven-Plugin \t \t \t \t \t \t \t \t \t wahr \t \t \t \t \t ru.alexeyzhulin.SchedulerApplication \t \t \t \t \t \t \t \t \t \t ' Aber es funktioniert nicht. Wo liege ich falsch? –

0

Es scheint, dass sich Ihre SpringBootApplication-Klasse an einem falschen Ort befindet. Es sollte richtig lokalisiert werden. Normalerweise befindet es sich in einer Wurzel Ihres Artefaktpakets. Zum Beispiel:

ru.alexeyzhulin.scheduler 
    ru.alexeyzhulin.scheduler.SchedulerApplication 
    ru.alexeyzhulin.scheduler.Executor 

oder

ru.alexeyzhulin.scheduler 
    ru.alexeyzhulin.scheduler.SchedulerApplication 
ru.alexeyzhulin.scheduler.components 
    ru.alexeyzhulin.scheduler.components.Executor 

Und es betrachtet: Failed to process import candidates for configuration class

+0

Ich änderte meine Frage, wo ich über meine Projektstruktur erwähnte. Es scheint, dass meine Projektstruktur wie Ihre erste Option aussieht. –

+0

Ok. Aha. Was enthält deine MANIFEST.MF im Inneren? Normalerweise erstellt SpringBoot diese Ressource selbst. Versuchen Sie, ein Projekt ohne es zu erstellen. ' – rvit34

Verwandte Themen