-
@SpringBootApplication
@ComponentScan(value = "ignore")
@RunWith(SpringRunner.class)
public class MyApplication {
@Bean
YAMLConfig myeadFromYMLFile() {
return new YAMLConfig();
}
public static void main(String[] args) throws InterruptedException {
ConfigurableApplicationContext context =
SpringApplication.run(MyApplication.class, args);
YAMLConfig myBean = context.getBean(YAMLConfig.class);
myBean.doSomething();
myBean.printApi();
}
}
-
@Configuration
@EnableConfigurationProperties
public class YAMLConfig {
@Value("${refresh.rate}")
private int refreshRate;
@Value("${datasource.apiUrl}")
private String apiUrl;
public void doSomething() {
System.out.printf("Refresh Rate : %s%n", refreshRate);
}
public void printApi() {
System.out.printf("Refresh Rate : %s%n", apiUrl);
}
public String getApiUrl() {
return apiUrl;
}
}
问:当我在src/java/main中运行类MyApplication时,一切都很酷。
启动ApplicationContext时出错。要显示条件报告,请在启用“调试”的情况下重新运行应用程序。
2018-09-06 17:14:21.389错误16515---[main]o.s。boot.spring应用程序:应用程序运行失败
org.springframework.context环境.ApplicationContextException:无法启动web服务器;嵌套异常为java.lang.NoClassDefFoundError文件:javax/servlet/http/HttpSessionIdListener
在org.springframework.context环境.support.AbstractApplicationContext.刷新(AbstracApplicationContext.java:544)~[spring-context-5.0.8。发布.jar:5.0.8.释放]
在org.springframework.boot启动.web.servlet.context.ServletWebServ服务eApplicationContext.refresh文件(ServletWebServ)eApplicationContext.java:140)~[spring-boot-2.0.4。发布.jar:2.0.4.释放]
在org.springframework.boot启动.SpringApplication.refresh文件(SpringApplication.java:762)[弹簧靴-2.0.4。发布.jar:2.0.4.释放]
在org.springframework.boot启动.SpringApplication.refreshContext(SpringApplication.java:398)[弹簧靴-2.0.4。发布.jar:2.0.4.释放]
在org.springframework.boot启动.SpringApplication.run(SpringApplication.java:330)[弹簧靴-2.0.4。发布.jar:2.0.4.释放]
在org.springframework.boot启动.SpringApplication.run(SpringApplication.java:1246)[弹簧靴-2.0.4。发布.jar:2.0.4.释放]
原因:java.lang.NoClassDefFoundError文件:javax/servlet/http/HttpSessionIdListener
在io.undertow.servlet.规范ServletContextImpl.EnsurentProgrammaticListener(ServletContextImpl.java:875)~[undertow-servlet-1.4.25。最终.jar:1.4.25.最终版本]
在io.undertow.servlet.规范ServletContextImpl.getSessionCookieConfig(ServletContextImpl.java:648)~[undertow-servlet-1.4.25。最终.jar:1.4.25.最终版本]
在io.undertow.servlet.核心.DeploymentManagerImpl.部署(D)eploymentManagerImpl.java:167)~[undertow-servlet-1.4.25。最终.jar:1.4.25.最终版本]
在org.springframework.boot启动.web.embedded.undertow网站.下拖器vletWebServerFactory.createDeploymentManager(下拖索)vletWebServerFactory.java:284)~[spring-boot-2.0.4。发布.jar:2.0.4.释放]
在org.springframework.boot启动.web.servlet.context.ServletWebServ服务eApplicationContext.CreateWeb服务器(ServletWebServ)eApplicationContext.java:179)~[spring-boot-2.0.4。发布.jar:2.0.4.释放]
在org.springframework.boot启动.web.servlet.context.ServletWebServ服务eApplication上下文.onRefresh(ServletWebServ)erApplicationContext.java:152)~[spring-boot-2.0.4。发布.jar:2.0.4.释放]
原因:java.lang.ClassNotFoundException类: javax.servlet.http.HttpSessionIdListener文件
在java.lang.ClassLoader类加载器.loadClass类(ClassLoader.java:424)~[na:1.8.0µ]
在sun.misc.启动器$AppClassLoader.loadClass类(Launcher.java:349)~[na:1.8.0µ]
在java.lang.ClassLoader类加载器.loadClass类(ClassLoader.java:357)~[na:1.8.0µ]
... 省略17个公共框架
另外,我有springbootstarterweb依赖项。
通过@SpringBootTest,我得到了:
org.springframework.context环境.ApplicationContextException:无法启动web服务器;嵌套异常为org.springframework.context环境.ApplicationContextException:由于缺少ServletWebServerFactory bean,无法启动ServletWebServerApplicationContext。
在org.springframework.boot启动.web.servlet.context.ServletWebServ服务eApplication上下文.onRefresh(ServletWebServ)eApplicationContext.java:155)~[spring-boot-2.0.4。发布.jar:2.0.4.释放]
在org.springframework.boot启动.web.servlet.context.ServletWebServ服务eApplicationContext.refresh文件(ServletWebServ)eApplicationContext.java:140)~[spring-boot-2.0.4。发布.jar:2.0.4.释放]
在org.springframework.boot启动.SpringApplication.refresh文件(SpringApplication.java:762)[弹簧靴-2.0.4。发布.jar:2.0.4.释放]
在org.springframework.boot启动.SpringApplication.refreshContext(SpringApplication.java:398)[弹簧靴-2.0.4。发布.jar:2.0.4.释放]
在org.springframework.boot启动.SpringApplication.run(SpringApplication.java:1258)[弹簧靴-2.0.4。发布.jar:2.0.4.释放]
在org.springframework.boot启动.SpringApplication.run(SpringApplication.java:1246)[弹簧靴-2.0.4。发布.jar:2.0.4.释放]
在我的应用程序.main(MyApplication.java:19)[测试类别/:na]
原因:org.springframework.context环境.ApplicationContextException:由于缺少ServletWebServerFactory bean,无法启动ServletWebServerApplicationContext。
在org.springframework.boot启动.web.servlet.context.ServletWebServ服务eApplicationContext.CreateWeb服务器(ServletWebServ)eApplicationContext.java:178)~[spring-boot-2.0.4。发布.jar:2.0.4.释放]
在org.springframework.boot启动.web.servlet.context.ServletWebServ服务eApplication上下文.onRefresh(ServletWebServ)erApplicationContext.java:152)~[spring-boot-2.0.4。发布.jar:2.0.4.释放]
... 省略8个公共框架