Spring boot 遇到的问题
IDEA中打包war文件:
pom.xml修改:
修改packaging标签,没有则新增
<packaging>war</packaging>
添加dependency
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
Tomcat运行正常,访问404:
Application添加注解@SpringBootApplication并继承SpringBootServletInitializer类,重写configure方法
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(JxtApplication.class);
}
上边的操作做完后tomcat启动项目报错
错误信息:
ERRORorg.springframework.boot.SpringApplication- Application run failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘entityManagerFactory’ defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Invocation of init method failed; nested exception is javax.persistence.PersistenceException: [PersistenceUnit: default] Unable to build Hibernate SessionFactory; nested exception is org.hibernate.cfg.beanvalidation.IntegrationException: Error activating Bean Validation integration
…
Caused by: javax.persistence.PersistenceException: [PersistenceUnit: default] Unable to build Hibernate SessionFactory; nested exception is org.hibernate.cfg.beanvalidation.IntegrationException: Error activating Bean Validation integration
…
Caused by: org.hibernate.cfg.beanvalidation.IntegrationException: Error activating Bean Validation integration
…
Caused by: java.lang.NoClassDefFoundError: javax/el/ELManager
…
到处搜索问题原因解决办法
application.properties中第一行添加:
spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
修改Tomcat版本,我用的Tomcat7,版本过低不兼容改为Tomcat8运行成功
补充一句:从Tomcat官网下载的Tomcat8.5版本在我电脑上运行startup.bat闪退,修改了环境变量,删除重新配置,编辑startup.bat中添加路径,删除所有原来Tomcat7内容
都不好使 !!!
最后和同事要了一个Tomcat,什么都没配置,运行正常~