• 20.springboot项目打包成war文件,在独立的Tomcat上运行


    项目结构

     

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

     

    详细代码

    pom.xml文件

    1. "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.0modelVersion>
    5. <parent>
    6. <groupId>org.springframework.bootgroupId>
    7. <artifactId>spring-boot-starter-parentartifactId>
    8. <version>2.7.3version>
    9. <relativePath/>
    10. parent>
    11. <groupId>com.itgroupId>
    12. <artifactId>025-springboot-warartifactId>
    13. <version>1.0.0version>
    14. <packaging>warpackaging>
    15. <properties>
    16. <java.version>1.8java.version>
    17. properties>
    18. <dependencies>
    19. <dependency>
    20. <groupId>org.apache.tomcat.embedgroupId>
    21. <artifactId>tomcat-embed-jasperartifactId>
    22. dependency>
    23. <dependency>
    24. <groupId>org.springframework.bootgroupId>
    25. <artifactId>spring-boot-starter-webartifactId>
    26. dependency>
    27. <dependency>
    28. <groupId>org.springframework.bootgroupId>
    29. <artifactId>spring-boot-starter-testartifactId>
    30. <scope>testscope>
    31. dependency>
    32. dependencies>
    33. <build>
    34. <finalName>mybootfinalName>
    35. <resources>
    36. <resource>
    37. <directory>src/main/webappdirectory>
    38. <targetPath>META-INF/resourcestargetPath>
    39. <includes>
    40. <include>**/*.*include>
    41. includes>
    42. resource>
    43. <resource>
    44. <directory>src/main/javadirectory>
    45. <includes>
    46. <include>**/*.xmlinclude>
    47. includes>
    48. resource>
    49. <resource>
    50. <directory>src/main/resourcesdirectory>
    51. <includes>
    52. <include>**/*.*include>
    53. includes>
    54. resource>
    55. resources>
    56. <plugins>
    57. <plugin>
    58. <groupId>org.springframework.bootgroupId>
    59. <artifactId>spring-boot-maven-pluginartifactId>
    60. plugin>
    61. plugins>
    62. build>
    63. 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)

  • 相关阅读:
    2024届校招-Java开发笔试题-S4卷
    AI绘画:StableDiffusion实操教程-斗破苍穹-云韵-婚服(附高清图下载)
    投稿有礼,双社区签约博主名额等你赢!
    深度探索C++对象模型 记录
    前端面试HTML和CSS总结,这一篇就够了!
    Android Bundle putBinder传输超过1MB数据,Kotlin
    鸿鹄工程项目管理系统em Spring Cloud+Spring Boot+前后端分离构建工程项目管理系统
    PHP引用符&的用法介绍
    自己动手从零写桌面操作系统GrapeOS系列教程——9.实模式介绍
    MySQL架构设计详解
  • 原文地址:https://blog.csdn.net/weixin_59334478/article/details/126734535