2016-08-15 112 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); 
} 
相关问题