概述

  上篇记录了IDEA上创建Maven SpringBoot+mybatisplus+thymeleaf 项目,但是如何将SpringBoot发布到Tomcat,直接采用Maven 命令Clear-Package指令之后,生成的War并不能访问,任然显示404错误。所以这个时候,需要修改代码内容部分;

代码调整项

1、修改pom.xml文件;

(1)、finalName要和Application.properties中的server.context-path值保持一致;

  1. <build>
  2. <finalName>htcv</finalName>
  3. <plugins>
  4. <plugin>
  5. <groupId>org.apache.maven.plugins</groupId>
  6. <artifactId>maven-compiler-plugin</artifactId>
  7. <configuration>
  8. <source>${jdk.version}</source>
  9. <target>${jdk.version}</target>
  10. </configuration>
  11. </plugin>
  12. </plugins>

(2)、pom加上javax.servlet.servlet-api依赖项;

  1. <dependency>
  2. <groupId>javax.servlet</groupId>
  3. <artifactId>servlet-api</artifactId>
  4. <version>3.0-alpha-</version>
  5. </dependency>

(3)、发布的时候排除内嵌tomcat服务器,避免冲突;

  1. <dependency>
  2. <groupId>org.springframework.boot</groupId>
  3. <artifactId>spring-boot-starter-web</artifactId>
  4. <exclusions>
  5. <exclusion>
  6. <groupId>org.springframework.boot</groupId>
  7. <artifactId>spring-boot-starter-tomcat</artifactId>
  8. </exclusion>
  9. </exclusions>
  10. </dependency>

完整的pom.xml配置如下,记得将<packaging>jar</packaging>修改成<packaging>war</packaging>

  1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  2. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  3. <modelVersion>4.0.</modelVersion>
  4. <groupId>com.justin</groupId>
  5. <artifactId>htcspringboot</artifactId>
  6. <packaging>war</packaging>
  7. <version>1.0-SNAPSHOT</version>
  8. <name>Maven Quick Start Archetype</name>
  9. <url>http://maven.apache.org</url>
  10.  
  11. <parent>
  12. <groupId>org.springframework.boot</groupId>
  13. <artifactId>spring-boot-starter-parent</artifactId>
  14. <version>1.5..RELEASE</version>
  15. <relativePath />
  16. </parent>
  17.  
  18. <properties>
  19. <project.build.sourceEncoding>UTF-</project.build.sourceEncoding>
  20. <java.version>1.8</java.version>
  21. <jdk.version>1.8</jdk.version>
  22. <mybatis-starter-version>1.2.</mybatis-starter-version>
  23. <mybatis.plus.version>2.1.</mybatis.plus.version>
  24. <ojdbc14.version>10.2.0.5.</ojdbc14.version>
  25. <druid.version>1.0.</druid.version>
  26. <spring.boot.version>1.5..RELEASE</spring.boot.version>
  27. </properties>
  28.  
  29. <dependencies>
  30. <dependency>
  31. <groupId>org.springframework.boot</groupId>
  32. <artifactId>spring-boot-starter-web</artifactId>
  33. <exclusions>
  34. <exclusion>
  35. <groupId>org.springframework.boot</groupId>
  36. <artifactId>spring-boot-starter-tomcat</artifactId>
  37. </exclusion>
  38. </exclusions>
  39. </dependency>
  40.  
  41. <dependency>
  42. <groupId>org.springframework.boot</groupId>
  43. <artifactId>spring-boot-starter-thymeleaf</artifactId>
  44. <version>${spring.boot.version}</version>
  45. </dependency>
  46.  
  47. <dependency>
  48. <groupId>org.mybatis.spring.boot</groupId>
  49. <artifactId>mybatis-spring-boot-starter</artifactId>
  50. <version>${mybatis-starter-version}</version>
  51. </dependency>
  52.  
  53. <dependency>
  54. <groupId>com.baomidou</groupId>
  55. <artifactId>mybatis-plus</artifactId>
  56. <version>${mybatis.plus.version}</version>
  57. </dependency>
  58.  
  59. <dependency>
  60. <groupId>com.oracle</groupId>
  61. <artifactId>ojdbc14</artifactId>
  62. <version>${ojdbc14.version}</version>
  63. </dependency>
  64. <dependency>
  65. <groupId>com.alibaba</groupId>
  66. <artifactId>druid</artifactId>
  67. <version>${druid.version}</version>
  68. </dependency>
  69. <dependency>
  70. <groupId>javax.servlet</groupId>
  71. <artifactId>servlet-api</artifactId>
  72. <version>3.0-alpha-</version>
  73. </dependency>
  74. </dependencies>
  75.  
  76. <build>
  77. <finalName>htcv</finalName>
  78. <plugins>
  79. <plugin>
  80. <groupId>org.apache.maven.plugins</groupId>
  81. <artifactId>maven-compiler-plugin</artifactId>
  82. <configuration>
  83. <source>${jdk.version}</source>
  84. <target>${jdk.version}</target>
  85. </configuration>
  86. </plugin>
  87. </plugins>
  88. </build>
  89.  
  90. </project>

2、修改java文件内;

  让程序入口Main方法类继承SpringBootServletInitializer,重写configure方法;

  1. import com.justin.model.Einvoice;
  2. import com.justin.serviceapi.EinvoiceService;
  3. import org.mybatis.spring.annotation.MapperScan;
  4. import org.springframework.beans.factory.annotation.Autowired;
  5. import org.springframework.boot.Banner;
  6. import org.springframework.boot.SpringApplication;
  7. import org.springframework.boot.autoconfigure.SpringBootApplication;
  8. import org.springframework.boot.builder.SpringApplicationBuilder;
  9. import org.springframework.boot.web.support.SpringBootServletInitializer;
  10. import org.springframework.web.bind.annotation.PathVariable;
  11. import org.springframework.web.bind.annotation.RequestMapping;
  12. import org.springframework.web.bind.annotation.RestController;
  13.  
  14. @SpringBootApplication
  15. @RestController
  16. @MapperScan("com.justin.dao")
  17. public class Application extends SpringBootServletInitializer
  18. {
  19. @Autowired
  20. private EinvoiceService einvoiceservice;
  21.  
  22. @RequestMapping("/")
  23. public String Greeting()
  24. {
  25. return "Justin Say Hello WOrld!";
  26. }
  27.  
  28. @RequestMapping("/Add")
  29. public String AddEinvoice()
  30. {
  31. Einvoice Einv=new Einvoice();
  32. Einv.setInvoicecode("");
  33. Einv.setInvoicenum("");
  34. einvoiceservice.insertOne(Einv);
  35. return "INser SUCC";
  36. }
  37.  
  38. @RequestMapping("/check/{invoicecode}")
  39. public String ShowInfo(@PathVariable("invoicecode") String invoicecode)
  40. {
  41. return einvoiceservice.GetInvoiceNUmByCode(invoicecode);
  42. }
  43. @RequestMapping("/Update/{invoicecode}/{invoicenum}")
  44. public String UpInfo(@PathVariable("invoicecode") String invoicecode,@PathVariable("invoicenum") String invoicenum)
  45. {
  46. einvoiceservice.ChangeCode(invoicenum,invoicecode);
  47. return "SUCC";
  48. }
  49.  
  50. public static void main(String[] args)
  51. {
  52. SpringApplication.run(Application.class,args);
  53.  
  54. }
  55.  
  56. @Override
  57. protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
  58. return configureApplication(builder);
  59. }
  60.  
  61. private static SpringApplicationBuilder configureApplication(SpringApplicationBuilder builder) {
  62. return builder.sources(Application.class).bannerMode(Banner.Mode.OFF);
  63. }
  64. }

重新打包发布即可,输入网址 http://localhost:8080/htcv//HE/CIndex  即可访问自定义的页面内容项;

参考博客网址

spring boot项目发布tomcat容器(包含发布到tomcat6的方法) http://www.cnblogs.com/weixliu/p/6432342.html

IDEA上创建 Maven SpringBoot项目发布到Tomcat的更多相关文章

  1. IDEA上创建 Maven SpringBoot+mybatisplus+thymeleaf 项目

    概述 在WEB领域,Java也是在不断的探索和改进,从开始的JSP--->Struts1--->Struts2+Spring--->Spring MVC--->SpringBo ...

  2. IDEA快速创建Maven+SpringBoot项目时:Cannot download https://start.spring.io;Status:403

    先展示一下我遇到的问题: 用浏览器搜索是有页面的,但是但是但是呢,用IDEA快速构建的时候就报403 咳咳!巴格虐我万千遍,我待技术如初恋... 我看到的解决办法有以下两种,当然,我只想说:" ...

  3. idea 创建maven web项目部署在 tomcat maven plugin中

    前提:1.安装jdk,多数系统使用jdk1.8.xxx,因此选择下载此版本的居多 2.安装Maven 3.部署到tomcat我们可以有两种方式,一种是利用tomcat插件来进行部署,另一种是下载tom ...

  4. IDEA上创建 Maven SpringBoot + zookeeper +dubbo 实例

    概述 首先声明,本文是学习总结类型的博客内容,如有雷同纯属学习.本位主要结合zookeeper和dubbo做个简单实例.目前来说,一般网站架构随着业务的发展,逻辑越来越复杂,数据量越来越大,交互越来越 ...

  5. IntelliJ IDEA上创建maven Spring MVC项目

    IntelliJ IDEA上创建Maven Spring MVC项目 各软件版本 利用maven骨架建立一个webapp 建立相应的目录 配置Maven和SpringMVC 配置Maven的pom.x ...

  6. Java归去来第2集:利用Eclipse创建Maven Web项目

    一.前言 如果还不了解剧情,请返回第一集的剧情          Java归去来第1集:手动给Eclipse配置Maven环境 二.利用Eclipse创建Maven Web项目 选择File-New- ...

  7. Java Web 入门(一)使用 Intellij IDEA 14.1.5 创建 Maven Web项目

    1.基础配置 1.1 安装 JDK1.7,配置系统变量:JAVA_HOME 和 Path 1.2 安装 Tomcat 7.0 1.3 安装  Intellij IDEA 14.1.5 1.4 Mave ...

  8. Intellij IDEA创建Maven Web项目

    1前言 在创建项目中,IDEA提供了非常多项目模板,比方Spring MVC模板,能够直接创建一个基于Maven的Spring MVC的demo,各种配置都已经设定好了,直接编译部署就能够使用. 最開 ...

  9. Eclipse创建Maven Web项目后更改Servlet版本

    Eclipse创建Maven Web项目后更改Servlet版本 1.场景基于Eclipse通过maven-archetype-webapp原型创建一个Web项目后,其默认Servlet版本是2.3, ...

随机推荐

  1. 【转】thread.sleep(0)与thread.sleep(1)的区别

    Thread.Sleep(0) Sleep的意思是告诉操作系统自己要休息n毫秒,这段时间就让给一个就绪的线程吧.当n=0时,意思是要放弃自己剩下的时间片,但是仍然是就绪状态.Sleep(0)只允许那些 ...

  2. sass个人学习笔记

    Materliu 在慕课的视频: http://www.imooc.com/learn/364 . http://www.imooc.com/wiki/371 sass入门:http://www.w3 ...

  3. WebSocket参考

    websocker是一种网页和服务端建立tcp全双工通信的技术,可以不再让页面进行向服务器发送轮询请求. 需要注意使用的场景,如果建立的tcp过多的话,会对服务器有很大压力. WebSocket前后台 ...

  4. Go断言

    用Go语言提供的类型检测方法,同时也可作为断言的解决方案: package main import ( "fmt" "reflect" ) type MyStr ...

  5. Django 笔记(五)自定义标签 ~ 映射mysql

    创建简单标签: 1-3 或者 2-3 创建包含标签: 1-2或1-3或1-4(推荐) 包含标签使用: 2 和 4对应上面的使用方法 在虚拟环境中安装: pip install pymysql 在set ...

  6. css3 曲线阴影,翘边阴影

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. ios 本地存储文件夹的使用注意

    文件夹 tmp 属于临时文件夹,不需要自己删除,系统会在应用退出后清空   文件夹 Library 下面的子文件 Caches 也是用来存储的,,但是Library 基本上不会被清除,但是在内存不足的 ...

  8. Confluence 6 设置 Oracle 数据库准备

    请查看 Supported Platforms 页面来获得 Confluence 系统支持的 Oracle 数据库版本.你需要在安装 Confluence 之前升级你的 Oracle 数据库. 如果你 ...

  9. Confluence 6 选择一个默认的语言

    管理员可以设置应用到你 Confluence 站点所有空间的默认语言.请注意,一个独立的用户可以在他们自己的属性中选择他们独立的语言属性. 设定默认的语言 在 Confluence 站点中修改默认的语 ...

  10. vue.js----之router详解(一)

    在vue1.0版本的超链接标签还是原来的a标签,链接地址由v-link属性控制 而vue2.0版本里超链接标签由a标签被替换成了router-link标签,但最终在页面还是会被渲染成a标签的 至于为什 ...