我收到以下异常。
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 :(得分:1)
Spring Boot错误地猜到你正在尝试根据你在类路径上得到的内容构建一个Web应用程序。您可以使用SpringApplicationBuilder
并在web
方法中将false
设置为main
来更正它:
public static void main(String[] args) {
new SpringApplicationBuilder(MyApplication.class).web(false).run(args);
}