2016-08-15 53 views
0

我收到以下異常。獲取異常由於缺少EmbeddedServletContainerFactory bean而無法啓動EmbeddedWebApplicationContext

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

下面是我的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') 
} 

我的應用程序是一個非Web應用程序。我從命令行運行它並使用下面的代碼。

@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(); 
    } 
} 

我不想要tomcat。我尋找這個異常,這是一個常見的異常,但我不想添加「spring-boot-starter-web」依賴項,因爲它是一個非web應用程序。請幫助我

+0

也許是因爲你使用web服務。 Spring-ws,駱駝和卡夫卡。可能其中一些是添加一個web依賴。 – reos

回答

1

Spring Boot錯誤地猜測您正在嘗試根據您在類路徑中的內容構建Web應用程序。您可以通過使用SpringApplicationBuilder並在main方法設置webfalse更正:

public static void main(String[] args) { 
    new SpringApplicationBuilder(MyApplication.class).web(false).run(args); 
} 
相關問題