spring boot jar包tomcat内嵌方式启动

来源:互联网 发布:武汉发展前景知乎 编辑:程序博客网 时间:2024/05/22 12:20

因项目需要,将springMVC工程重构为springboot工程,并且需要用jar包内嵌tomcat的方式在Linux系统使用,

原来工程一直用的是WAR包模式,springMVC转springboot很顺利,基本一天完成了eclipse下本地启动运行正常。

在最后一步打jar,使用java -jar prj.jar运行时遇到了一个坑。

server,controller能够正常访问,但ViewResolver始终找不到正常页面,诡异的是本机dev开发环境下却是正常的,

就这个问题,竟然折腾了两天才搞定,记录如下:

正常配置

1.springboot mvc配置

@Configuration@EnableWebMvcpublic class MvcAdapterConfiguration extends WebMvcConfigurerAdapter {@Override    public void addResourceHandlers(ResourceHandlerRegistry registry) {        registry.addResourceHandler(ConfigUtil.getPropertyValue("fs.mapping")+"/**").addResourceLocations("file:"+ConfigUtil.getPropertyValue("fs.dir")+"/");        super.addResourceHandlers(registry);    }@Override    public void configureDefaultServletHandling(            DefaultServletHandlerConfigurer configurer) {        configurer.enable();    }@Overridepublic void configureViewResolvers(ViewResolverRegistry registry){registry.viewResolver(getViewResolverHTML());registry.viewResolver(getViewResolverJSP());super.configureViewResolvers(registry);}@Bean    public ViewResolver getViewResolverHTML() {        InternalResourceViewResolver resolver = new InternalResourceViewResolver();        resolver.setViewClass(InternalResourceView.class);        resolver.setOrder(0);        resolver.setPrefix("/views/html/pages/");        resolver.setContentType("text/html;charset=UTF-8");        return resolver;    }@Bean    public ViewResolver getViewResolverJSP() {        InternalResourceViewResolver resolver = new InternalResourceViewResolver();        resolver.setOrder(1);        resolver.setPrefix("/views/jsp/pages/");        return resolver;    }}


2.POM将资源加入resources路径

<plugins><!--打包成jar --><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>1.4.2.RELEASE</version><extensions>true</extensions><executions><execution><goals><goal>repackage</goal></goals></execution></executions><configuration><mainClass>${start-class}</mainClass><layout>JAR</layout><fork>true</fork></configuration></plugin><!-- java编译插件 --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><configuration><source>1.8</source><target>1.8</target><encoding>UTF-8</encoding></configuration></plugin><!-- 资源文件拷贝插件 --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-resources-plugin</artifactId><configuration><encoding>UTF-8</encoding></configuration></plugin></plugins>


3.(坑点)

     POM中jar包引用要点:

原本工程下引了

<dependency>       <groupId>org.springframework.boot</groupId>       <artifactId>spring-boot-starter-tomcat</artifactId>     </dependency>
最后发现,原来通过内嵌的jar方式启动tomcat,需要用的包不是springboot提供的这个包,而是apache提供的另外一个包

<dependency><groupId>org.apache.tomcat.embed</groupId><artifactId>tomcat-embed-jasper</artifactId></dependency>
必须要注意把<scope>删掉,否则不会打包到jar包中。



阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 指甲没有半月痕怎么办 手指半月痕少怎么办 轻中度宫颈糜烂怎么办 脸上长油脂粒怎么办 脸上长脂肪豆怎么办 眼周围有脂肪粒怎么办 英雄100爆杆怎么办 钢笔头歪了怎么办 毛笔笔尖弯了怎么办 win10迅雷闪退怎么办 21三体综合症怎么办 白裤子染色了怎么办 衣物被染色了怎么办 网站被黑客攻击怎么办 第二磨牙掉了怎么办 长智齿牙龈疼怎么办 qq贷款安逸花怎么办 网店不会装修怎么办 君子兰花谢后怎么办 牙龈萎缩怎么办小偏方 笑起来露牙龈怎么办 笑起来牙龈外露怎么办 左耳朵里面疼怎么办 狗狗伤口化脓怎么办 耳朵后面神经疼怎么办 狗狗耳朵发炎怎么办 上火耳朵里面疼怎么办 小孩睡觉不老实怎么办 中石化加油卡怎么办 手机wifi信号弱怎么办 家里wifi信号弱怎么办 产后胸部变小了怎么办 眼周围有细纹怎么办 眼睛周围有细纹怎么办 手上长个鱼鳞怎么办 手上长了鱼鳞怎么办 被蜈蚣咬伤后怎么办 家里蜈蚣多怎么办驱除 家里老是有蜈蚣怎么办 家里闷热 狗狗怎么办 小米账号忘了怎么办