当前位置:   article > 正文

20.springboot项目打包成war文件,在独立的Tomcat上运行_springboot使用内置tomcat打包后如何运行

springboot使用内置tomcat打包后如何运行

项目结构

 

1.新建springboot项目选择web起步依赖,其他依赖手动添加

 

详细代码

pom.xml文件

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  4. <modelVersion>4.0.0</modelVersion>
  5. <parent>
  6. <groupId>org.springframework.boot</groupId>
  7. <artifactId>spring-boot-starter-parent</artifactId>
  8. <version>2.7.3</version>
  9. <relativePath/> <!-- lookup parent from repository -->
  10. </parent>
  11. <groupId>com.it</groupId>
  12. <artifactId>025-springboot-war</artifactId>
  13. <version>1.0.0</version>
  14. <!--打包类型,默认是jar,修改为war-->
  15. <packaging>war</packaging>
  16. <properties>
  17. <java.version>1.8</java.version>
  18. </properties>
  19. <dependencies>
  20. <!--加入处理jsp的依赖-->
  21. <dependency>
  22. <groupId>org.apache.tomcat.embed</groupId>
  23. <artifactId>tomcat-embed-jasper</artifactId>
  24. </dependency>
  25. <dependency>
  26. <groupId>org.springframework.boot</groupId>
  27. <artifactId>spring-boot-starter-web</artifactId>
  28. </dependency>
  29. <dependency>
  30. <groupId>org.springframework.boot</groupId>
  31. <artifactId>spring-boot-starter-test</artifactId>
  32. <scope>test</scope>
  33. </dependency>
  34. </dependencies>
  35. <build>
  36. <!--打包后的文件名称-->
  37. <finalName>myboot</finalName>
  38. <!--resources插件,把jsp编译到指定的目录-->
  39. <resources>
  40. <resource>
  41. <directory>src/main/webapp</directory>
  42. <targetPath>META-INF/resources</targetPath>
  43. <includes>
  44. <include>**/*.*</include>
  45. </includes>
  46. </resource>
  47. <!--使用了mybatis,而且mapper文件放在src/main/java目录中-->
  48. <resource>
  49. <directory>src/main/java</directory>
  50. <includes>
  51. <include>**/*.xml</include>
  52. </includes>
  53. </resource>
  54. <!--把src/main/resources下面的所有文件,都包含到classes目录-->
  55. <resource>
  56. <directory>src/main/resources</directory>
  57. <includes>
  58. <include>**/*.*</include>
  59. </includes>
  60. </resource>
  61. </resources>
  62. <plugins>
  63. <plugin>
  64. <groupId>org.springframework.boot</groupId>
  65. <artifactId>spring-boot-maven-plugin</artifactId>
  66. </plugin>
  67. </plugins>
  68. </build>
  69. </project>

2.新建index.jsp

3.JspController类

  1. package com.it.controller;
  2. import org.springframework.stereotype.Controller;
  3. import org.springframework.ui.Model;
  4. import org.springframework.web.bind.annotation.RequestMapping;
  5. @Controller
  6. public class JspController {
  7. @RequestMapping("/main")
  8. public String main(Model model){
  9. model.addAttribute("data","springboot打包为war文件");
  10. return "index";
  11. }
  12. }

4.application.properties文件

  1. server.port=9001
  2. server.servlet.context-path=/myjsp
  3. #配置视图解析器
  4. spring.mvc.view.prefix=/
  5. spring.mvc.view.suffix=.jsp

5.主函数入口类,注意此时需要继承SpringBootServletInitializer这个类,才能够使用独立的tomcat服务器

  1. package com.it;
  2. import org.springframework.boot.SpringApplication;
  3. import org.springframework.boot.autoconfigure.SpringBootApplication;
  4. import org.springframework.boot.builder.SpringApplicationBuilder;
  5. import org.springframework.boot.web.servlet.server.Jsp;
  6. import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
  7. /**
  8. * SpringBootServletInitializer:继承这个类,才能够使用独立的tomcat服务器
  9. */
  10. @SpringBootApplication
  11. public class JspApplication extends SpringBootServletInitializer {
  12. public static void main(String[] args) {
  13. SpringApplication.run(JspApplication.class, args);
  14. }
  15. @Override
  16. protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
  17. return builder.sources(JspApplication.class);
  18. }
  19. }

项目测试:

1.首先不继承SpringBootServletInitializer这个类使用idea内部的Tomcat启动,查看是否可以正常访问

 2.项目可以正常访问,继承SpringBootServletInitializer这个类,编写代码后,点击clean,然后再进行打包处理

 

 

3.选择该打包文件,右键 show in explorer打开该文件所在的文件夹地址,选择该文件进行复制。复制到Tomcat下的webapp目录下,此时运行Tomcat时就会自动发布该文件

5.然后进入Tomcat的bin目录,点击startup.bat

6. 弹出下图的命令行窗口,等它运行完成后不能关闭,可以最小化使其保持运行状态

 

7.此时回到tomcat的webapps目录,就可以看到myboot.war包已经自动解压好了,里面的文件和依赖都和原项目保持一致

 

8.现在就可以打开浏览器输入Tomcat默认端口号+项目路径进行访问了,这是独立的Tomcat,不需要再借助idea上的Tomcat进行启动了。

localhost:8080/myboot/main

8080:独立Tomcat的端口号

myboot:文件名称

main:方法的路径名(requestmapping)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/147052
推荐阅读
相关标签
  

闽ICP备14008679号