2016-08-15 2 views
0

nicht gestartet werden Ich bekomme die folgende Ausnahme.Abrufen kann EmbeddedWebApplicationContext aufgrund fehlender EmbeddedServletContainerFactory Bean

Caused by: org.springframework.context.ApplicationContextException: Unable to start EmbeddedWebApplicationContext due to missing EmbeddedServletContainerFactory bean. 

unten ist das mein build.gradle

buildscript { 
    ext { 
     springBootVersion = '1.4.0.RELEASE' 
    } 
    repositories { 
     mavenCentral() 
    } 
    dependencies { 
     classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}") 
    } 
} 

ext { 
    aemVersion='1.0.25' 
    avroVersion = '1.8.0' 
    springWSVersion = '2.2.1.RELEASE' 
    jibxMinorVersion = "5" 
} 

apply plugin: 'java' 
apply plugin: 'eclipse' 
apply plugin: 'spring-boot' 

jar { 
    baseName = 'abc' 
    version = '0.0.1-SNAPSHOT' 
} 

sourceCompatibility = 1.7 
targetCompatibility = 1.7 

repositories { 
    flatDir { 
       dirs "${rootDir}/lib" 
      } 
    mavenLocal() 
    mavenCentral() 
    maven { 
    name 'springFramework' 
    url 'https://mvnrepository.com/artifact' 
    } 
} 

dependencies { 
    compile('org.apache.camel:camel-spring-boot-starter:2.17.2') 
    compile('org.apache.camel:camel-kafka:2.17.2') 
    compile group: 'org.apache.camel', name: 'camel-avro', version: '2.17.2' 
    compile "org.springframework.ws:spring-ws-core:$springWSVersion" 
    compile ('org.jdom:jdom:2.0.2') 
    compile group: 'org.apache.commons', name: 'commons-lang3', version: '3.4' 
    compile group: 'org.springframework.integration', name: 'spring-integration-kafka', version: '2.0.0.RELEASE' 
    compile group: 'org.springframework.integration', name: 'spring-integration-core', version: '4.3.1.RELEASE' 
    compile group: 'org.apache.kafka', name: 'kafka_2.10', version: '0.8.0' 
    compile ('org.jibx:jibx-run:1.2.5'){ 
     exclude group: 'bcel', module: 'bcel' 
    } 
    testCompile ('org.jibx:jibx-extras:1.2.5'){ 
     exclude group: 'bcel', module: 'bcel' 
    } 
    compile("org.springframework.boot:spring-boot-starter") 
    testCompile('org.springframework.boot:spring-boot-starter-test') 
} 

Meine Anwendung ist eine nicht-Web-Anwendung. Ich führe es von der Befehlszeile aus und verwende folgenden Code.

@SpringBootApplication 
public class MyApplication implements CommandLineRunner{  
    @Autowired 
    private Executor routeExecutor; 

    public static void main(String[] args) { 
     SpringApplication.run(MyApplication.class, args); 
    } 
    @Override 
    public void run(String... args) throws Exception { 
     System.out.println("Running Application from run method.."); 
     this.routeExecutor.executeRoute(); 
    } 
} 

Ich möchte nicht Tomcat. Ich habe nach dieser Ausnahme gesucht und es ist eine gewöhnliche Ausnahme, aber ich möchte keine "Spring-Boot-Starter-Web" -Abbindung hinzufügen, da es sich um eine Nicht-Web-Anwendung handelt. Bitte helfen Sie mir

+0

Wahrscheinlich ist es, weil Sie einen Web Service verwenden. Spring-ws, Kamel und Kafka. Wahrscheinlich fügen einige von ihnen eine Webabhängigkeit hinzu. – reos

Antwort

1

Spring Boot hat falsch geraten, dass Sie versuchen, eine Webanwendung basierend auf dem, was Sie auf dem Klassenpfad haben, zu erstellen. Sie können ihn korrigieren, indem SpringApplicationBuilder mit und web-false in Ihrem main Methode setzen:

public static void main(String[] args) { 
    new SpringApplicationBuilder(MyApplication.class).web(false).run(args); 
} 
Verwandte Themen