首页 > 其他分享 >基于webflux的项目如何部署到Tomcat?

基于webflux的项目如何部署到Tomcat?

时间:2023-08-22 22:31:58浏览次数:27  
标签:Tomcat Servlet 部署 webflux WebFlux application spring servlet

WebFlux是为Netty设计的,这是一个异步和非阻塞的应用服务器,而不是Tomcat这样的传统servlet容器。

确实可以在Servlet 3.1+容器上运行WebFlux应用,只是这样做会有一些限制和需要特定的配置。为了使WebFlux应用在Tomcat上工作,你可以尝试以下步骤:

  1. 修改POM文件:
  • 添加spring-boot-starter-tomcat依赖,确保它与你使用的Tomcat版本兼容。
  • 确保移除或排除Netty的相关依赖。
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-tomcat</artifactId>
    <scope>provided</scope>
</dependency>
  1. 修改Application主类: 你的主要Spring Boot应用类需要扩展SpringBootServletInitializer
@SpringBootApplication
public class YourApplication extends SpringBootServletInitializer {

    public static void main(String[] args) {
        SpringApplication.run(YourApplication.class, args);
    }

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(YourApplication.class);
    }
}
  1. 配置文件更新: 在你的application.propertiesapplication.yml中,确保设置spring.main.web-application-type=servlet
  2. 打包为WAR: 在pom.xml中,修改packagingwar
  3. 确保Servlet 3.1+支持: WebFlux需要Servlet 3.1+。你正在使用Tomcat 9,所以这应该是满足的。
  4. 部署并测试: 将应用部署到Tomcat并进行测试。

请注意,即使按照上述步骤进行配置,WebFlux在Tomcat上运行时仍然会使用异步servlet,这可能会与传统的servlet应用有所不同。如果可能的话,考虑在生产环境中直接使用WebFlux的推荐运行时Netty,这样可以得到最佳性能和充分利用WebFlux的所有特性。

标签:Tomcat,Servlet,部署,webflux,WebFlux,application,spring,servlet
From: https://blog.51cto.com/u_16170893/7194163

相关文章

  • LNMP生产环境部署
    LNMP生产环境部署一、编译安装MySQLMySQL类型1、MySQLCommunityServer-MySQLCommunityServer是社区版本,开源免费,但不提供官方技术支持。MySQLCommunityServer也是我们通常用的MySQL的版本。根据不同的操作系统平台细分为多个版本。2、MySQLEnterpriseEdition-MySQL......
  • 制作一个内部的 zabbix-agent 快速部署脚本
    下载官方的基础agent部署包官方地址:点击到达curl-Ohttps://cdn.zabbix.com/zabbix/binaries/stable/5.0/5.0.36/zabbix_agent-5.0.36-linux-3.0-i386-static.tar.gz编写install脚本#!/bin/bash##变量定义#脚本所在路径BASE_DIR=$(cd$(dirname$0);pwd)#Zabbix......
  • Nginx具体使用_部署静态资源
           ......
  • 在Docker上安装部署SQL Server2019 Express
    在Docker上安装部署SQLServer2019Express_docker安装sqlserver2019_梦想天空分外蓝的博客-CSDN博客  梦想天空分外蓝_-CSDN博客......
  • 使用docker部署nginx
    ......
  • Django项目在CentOS7下部署
    Ubuntu部署Django项目方法详解:请看此文https://www.django.cn/article/show-22.html Django所有的部署都是基于asgi和wsgi,所以django早就设计好了,你们使用对应的方式部署都好,这里不做细讲,看相关文章即可。 部署是基于:centos7+nginx+uwsgi+python3+django之上做的软件版......
  • 在VMware虚拟机集群上部署HDFS集群
    本篇博客跟大家分享一下如何在VMware虚拟机集群上部署HDFS集群一·、下载hadoop安装包进入官网:https://hadoop.apache.org 下载hadoop安装包由于ApacheHadoop是国外网址,下载安装包对于网络要求较高 二、上传压缩包,进行解压在进行解压之前,保证自己已经完成vmwa的黄静配置......
  • linux启动tomcat后,关闭ssh连接,tomcat进程停止
    在tomcat停止后会报错:org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesJdbcWeb应用程序[ROOT]注册了JDBC驱动程序[com.alibaba.druid.proxy.DruidDriver],但在Web应用程序停止时无法注销它。为防止内存泄漏,JDBC驱动程序已被强制取消注册。我以为是代码的问......
  • SpringBoot内嵌Tomcat连接池分析
    目录1Tomcat连接池1.1简介1.2架构图1.2.1JDK线程池架构图1.2.2Tomcat线程架构1.3核心参数1.3.1AcceptCount1.3.2MaxConnections1.3.3MinSpareThread/MaxThread1.3.4MaxKeepAliveRequests1.3.5ConnectionTimeout1.3.6KeepAliveTimeout1.4核心内部线程1.4.1Acceptor1.......
  • 野火鲁班猫2安装部署.net6,闭坑system.Data.SQlite。
    近期应企业研发需求,做了一个.net6的Linux-arm研发;1、.net6跨平台,必须在发行版ubuntu22.04+版本以上才可以使用,否则需要用到mono技术;(内核与发行版对应关系) 2、安装.net6环境,不能直接suduapt-getinstalldotnet6,此方法安装的版本会导致使用时候异常,正确的方法是: 3、链......