首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用嵌入式服务器和spring boot的Cors可以正常工作,但在使用tomcat 9进行部署时则不起作用

嵌入式服务器和Spring Boot的CORS(跨源资源共享)可以正常工作,但在使用Tomcat 9进行部署时不起作用的原因可能是Tomcat 9的默认配置不支持CORS。

CORS是一种浏览器机制,用于控制跨域请求资源的访问权限。在嵌入式服务器和Spring Boot中,CORS可以通过配置相关的跨域策略来实现。但是在使用Tomcat 9进行部署时,需要手动配置Tomcat的CORS过滤器才能使其生效。

要解决这个问题,可以按照以下步骤进行操作:

  1. 在Tomcat 9的安装目录下找到conf文件夹,进入该文件夹。
  2. conf文件夹中创建一个名为Catalina的文件夹(如果已存在则跳过此步骤)。
  3. 进入Catalina文件夹,创建一个名为localhost的文件夹(如果已存在则跳过此步骤)。
  4. 进入localhost文件夹,创建一个名为WEB-INF的文件夹(如果已存在则跳过此步骤)。
  5. 进入WEB-INF文件夹,创建一个名为web.xml的文件。
  6. 编辑web.xml文件,添加以下内容:
代码语言:txt
复制
<?xml version="1.0" encoding="UTF-8"?>
<web-app>
    <filter>
        <filter-name>CorsFilter</filter-name>
        <filter-class>org.apache.catalina.filters.CorsFilter</filter-class>
        <init-param>
            <param-name>cors.allowed.origins</param-name>
            <param-value>*</param-value>
        </init-param>
        <init-param>
            <param-name>cors.allowed.methods</param-name>
            <param-value>GET,POST,HEAD,OPTIONS,PUT</param-value>
        </init-param>
        <init-param>
            <param-name>cors.allowed.headers</param-name>
            <param-value>Content-Type,X-Requested-With,accept,Origin,Access-Control-Request-Method,Access-Control-Request-Headers</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>CorsFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
</web-app>

上述配置中,cors.allowed.origins表示允许的跨域请求源,cors.allowed.methods表示允许的请求方法,cors.allowed.headers表示允许的请求头。

  1. 保存web.xml文件。
  2. 重新启动Tomcat 9。

通过以上步骤,我们在Tomcat 9中添加了一个CORS过滤器,并配置了允许的跨域请求源、请求方法和请求头。这样就可以使Tomcat 9支持CORS,从而解决了CORS在使用Tomcat 9进行部署时不起作用的问题。

请注意,以上解决方案是基于Tomcat 9的默认配置进行的,如果你对Tomcat的配置进行了修改,可能需要根据实际情况进行相应的调整。

关于嵌入式服务器、Spring Boot、CORS以及Tomcat的更多详细信息,你可以参考腾讯云的相关产品和文档:

  1. 嵌入式服务器:嵌入式服务器是一种轻量级的服务器,可以直接嵌入到应用程序中,提供Web服务。腾讯云提供了云服务器(CVM)产品,可用于搭建嵌入式服务器。了解更多信息,请访问腾讯云云服务器产品介绍
  2. Spring Boot:Spring Boot是一个用于简化Spring应用程序开发的框架。它提供了自动配置、快速开发等特性,可以帮助开发人员快速构建独立的、生产级别的Spring应用程序。腾讯云提供了云开发(CloudBase)产品,支持Spring Boot应用程序的部署和管理。了解更多信息,请访问腾讯云云开发产品介绍
  3. CORS:跨源资源共享(CORS)是一种浏览器机制,用于控制跨域请求资源的访问权限。了解更多关于CORS的信息,请参考MDN Web文档中的CORS介绍
  4. Tomcat:Tomcat是一个开源的Java Servlet容器,用于实现Java Servlet和JavaServer Pages(JSP)规范。腾讯云提供了云服务器(CVM)产品,可用于部署Tomcat应用程序。了解更多信息,请访问腾讯云云服务器产品介绍

希望以上信息能够帮助到你,如果还有其他问题,请随时提问。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Spring Boot 面试,一个问题就干趴下了!

具体详细可以参考:Spring Boot 为什么这么火? 问:Spring Boot Starter 工作原理是什么?...让我们来思考如何使服务器成为应用程序一部分? 你只需要一个安装了 Java 虚拟机,就可以直接在上面部署应用程序了, 是不是很爽? 这个想法是嵌入式服务器起源。...当我们创建一个可以部署应用程序时候,我们将会把服务器(例如,tomcat)嵌入到可部署服务器中。...例如,对于一个 Spring Boot 应用程序来说,你可以生成一个包含 Embedded Tomcat 应用程序 jar。你就可以像运行正常 Java 应用程序一样来运行 web 应用程序了。...嵌入式服务器就是我们可执行单元包含服务器二进制文件(例如,tomcat.jar)。 三、微服务同时调用多个接口,怎么支持事务啊?

60650

Spring Boot 面试,一个问题就干趴下了!

让我们来思考如何使服务器成为应用程序一部分? 你只需要一个安装了 Java 虚拟机,就可以直接在上面部署应用程序了,是不是很爽? 这个想法是嵌入式服务器起源。...当我们创建一个可以部署应用程序时候,我们将会把服务器(例如,tomcat)嵌入到可部署服务器中。...例如,对于一个 Spring Boot 应用程序来说,你可以生成一个包含 Embedded Tomcat 应用程序 jar。你就可以像运行正常 Java 应用程序一样来运行 web 应用程序了。...嵌入式服务器就是我们可执行单元包含服务器二进制文件(例如,tomcat.jar)。 三、微服务同时调用多个接口,怎么支持事务啊?...它利用 Spring Boot 开发便利性巧妙地简化了分布式系统基础设施开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以Spring Boot 开发风格做到一键启动部署

1K30
  • 微服务架构之Spring Boot(三十九)

    28.4.5 JSP限制 运行使用嵌入式servlet容器Spring Boot应用程序(并打包为可执行存档),JSP支持存在一些限制。...使用JettyTomcat,如果使用war包装,它应该可以工作使用 java -jar 启动,可执行战争将起作用,并且还可以部署到任何标准容 器。使用可执行jar不支持JSP。...28.5嵌入式Reactive Server支持 Spring Boot包括对以下嵌入式响应式Web服务器支持:Reactor Netty,Tomcat,JettyUndertow。...大多数开发人员使用适当 “Starter”来获取完全配置实例。默认情况下,嵌入式服务器在端口8080上侦听HTTP请求。...默认情况下,这些资源也将与Reactor NettyJetty客户端共享以获得最佳性能,具体如下: 相同技术用于服务器客户端 客户端实例使用Spring Boot自动配置 WebClient.Builder

    78820

    超详细Spring Boot教程,搞定面试官!

    (3)嵌入式内存LDAP服务器 8.10、InfluxDB (1)连接到InfluxDB 9、缓存 9.1、支持缓存提供程序 (1)通用 (2)JCache(JSR-107) (3)EhCache...Spring应用程序 20.3、测试Spring Boot应用程序 (1)检测Web应用程序类型 (2)检测测试配置 (3)不包括测试配置 (4)使用运行服务器进行测试 (5)嘲笑侦察豆 (6)自动配置测试...Beanstalk 使用Tomcat平台 使用Java SE平台 (2)概要 1.5、Boxfuse亚马逊网络服务 1.6、Google Cloud 2、安装Spring Boot应用程序...、使用'短'命令行参数 2.5、使用YAML作为外部属性 2.6、设置活动弹簧配置文件 2.7、根据环境更改配置 2.8、发现外部属性内置选项 3、嵌入式Web服务器 3.1、使用另一个Web服务器...应用程序 12.9、在不使用情况下从Ant构建可执行文件 spring-boot-antlib 13、传统部署 13.1、创建一个可部署战争文件 13.2、为较老Servlet容器创建一个可部署战争文件

    6.9K20

    Spring Boot系列 – 2. Spring Boot提供特性

    六、开发web应用 Spring Boot非常适合开发web应用。你可以使用内嵌Tomcat,Jetty或Undertow轻松创建一个HTTP服务器。...嵌入servlet容器 Spring Boot支持内嵌Tomcat, JettyUndertow服务器。多数开发者只需要使用合适’Starter POM’来获取一个完全配置好实例即可。...Spring boot自动配置DataSource池选择顺序如下: 由于Tomcat数据源连接池性能并发,在tomcat可用时,我们总是优先使用它。 如果HikariCP可用,我们将使用它。...当部署到一个恰当J2EE应用服务器也会支持JTA事务。  当发现一个JTA环境Spring Boot使用SpringJtaTransactionManager来管理事务。...Buildpack将你部署代码打包进任何启动应用所需包里:可能是个JDK一个java调用,可能是一个嵌入式web服务器,也可能是一个完整应用服务器

    1.7K30

    Spring Boot 中文参考指南(二)-Web

    WAR部署错误处理 当部署到servlet容器Spring Boot使用其错误页面过滤器将具有错误状态请求转发到适当错误页面。...6.1.3 嵌入式Servlet容器支持 对于servlet应用程序,Spring Boot包括对嵌入式Tomcat、JettyUndertow服务器支持。...JSP限制 当运行使用嵌入式servlet容器(并打包为可执行存档)Spring Boot应用程序时,JSP支持有一些限制。 有了JettyTomcat,如果你使用war打包,它应该可以工作。...当使用java -jar启动,可执行war将起作用,也可以部署到任何标准容器中。使用可执行jar不支持JSP。 Undertow不支持JSP。...Spring Boot包括对以下嵌入式反应式网络服务器支持:Reactor Netty、Tomcat、JettyUndertow。

    3.9K30

    饿了么三面:让你怀疑人生Spring Boot夺命连环40问

    用来简化spring应用初始搭建以及开发过程 使用特定方式来进行配置(properties或yml文件) 创建独立spring引用程序 main方法运行 嵌入Tomcat 无需部署war文件...这可以使用DEV工具来实现。通过这种依赖关系,您可以节省任何更改,嵌入式tomcat将重新启动。 Spring Boot有一个开发工具(DevTools)模块,它有助于提高开发人员生产力。...我们为什么要使用嵌入式服务器呢? 思考一下在你虚拟机上部署应用程序需要些什么。...当我们创建一个可以部署应用程序时候,我们将会把服务器(例如,tomcat)嵌入到可部署服务器中。...嵌入式服务器就是我们可执行单元包含服务器二进制文件(例如,tomcat.jar)。 19、如何在 Spring Boot 中添加通用 JS 代码?

    1.4K40

    精选SpringBoot面试题(附刷题小程序)

    用来简化Spring应用初始搭建以及开发过程,使用特定方式来进行配置 创建独立Spring引用程序main方法运行 嵌入tomcat无需部署war文件 简化maven配置 自动配置Spring添加对应功能...当用户登录以后,正常使用;当用户退出登录状态时或者token过期,由于拦截器跨域顺序有问题,出现了跨域现象。...它使文档能够以与服务器相同速度更新。当通过Swagger 正确定义,消费者可以使用最少量实现逻辑来理解远程服务并与其进行交互。因此,Swagger 消除了调用服务猜测。 <!...4.8 SpringBoot项目如何热部署? 这可以使用 DEV 工具来实现。通过这种依赖关系,您可以节省任何更改,嵌入式tomcat 将重新启动。...开发人员可以重新加载 Spring Boot更改,而无需重新启动服务器。这将消除每次手动部署更改需要。Spring Boot 在发布它第一个版本没有这个功能。这是开发人员最需要功能。

    2.8K40

    Spring Boot 2.5.5发布:开始支持Java 17了!

    作者 | 冷冷 来源 | https://mp.weixin.qq.com/s/hlxkXLve1krPr9z3DPrNIw 9 月 23 日官方发布了 Spring Boot 2.5.5 版本,此版本包括... Spring Integration DataSource 初始化时由于非空模式下导致启动失败#28079 当过滤器抛出 NestedServletException 以外异常,Web MVC...指标可能具有错误状态#28069 URL 中包含特殊字符嵌入式 Undertow 抛出 MalformedURLException #28032 并发镜像构建导致删除构建器镜像出错#27993...独立 Tomcat War 部署会导致内存泄漏 运行大于 4GB Zip64 jar 文件出现 IndexOutOfBoundsException #27900 在 Windows 上未正确检测到...-2x/ 文档调整 使用 AspectJ weaving devtools 重启不起作用 #28083 spring.data.elasticsearch.client.reactive.endpoints

    1.5K20

    面试必问40个SpringBoot面试题!需要拿走SpringBoot面试题【建议收藏】

    可以使用DEV工具来实现。通过这种依赖关系,您可以节省任何更改,嵌入式tomcat将重新启动。 Spring Boot有一个开发工具(DevTools)模块,它有助于提高开发人员生产力。...我们为什么要使用嵌入式服务器呢? 思考一下在你虚拟机上部署应用程序需要些什么。...当我们创建一个可以部署应用程序时候,我们将会把服务器(例如,tomcat)嵌入到可部署服务器中。...例如,对于一个 Spring Boot 应用程序来说,你可以生成一个包含 Embedded Tomcat 应用程序 jar。你就可以想运行正常 Java 应用程序一样来运行 web 应用程序了。...嵌入式服务器就是我们可执行单元包含服务器二进制文件(例如,tomcat.jar)。 19、如何在 Spring Boot 中添加通用 JS 代码?

    9.1K31

    SpringBoot解决内、外tomcat部署兼容问题

    但在线上环境需要放入外部tomcat部署,这时候你会发现如果不做任何处理是无法在外部tomcat启动。 ? 那么如何才能让springBoot项目才能在外部tomcat部署呢?...调用了这个入口,进而使用内部tomcat实现了服务部署。...也就是说其实根本就不需要导入spring-boot-starter-tomcat,只要不排除web包下tomcat,依然能够实现本地main方法,外部tomcat部署兼容性问题。 ?...而还有些项目中既没有排除web包下tomcat,又同时导入了spring-boot-starter-tomcat,同样也能实现本地main方法,外部tomcat部署,这又是怎么回事呢?...这也就能解释为什么web下tomcat导入spring-boot-starter-tomcat为什么能够共存而不引起冲突,那是因为压根就轮不到web下tomcat起作用,当导入了spring-boot-starter-tomcat

    2.8K20

    Cors跨域(三):Access-Control-Allow-Origin多域名?

    做Java开发小伙伴对Tomcat再熟悉不过,但由于Spring Boot普及它屏蔽了开发者对Web Server感知,所以可能虽然天天用但其实鲜有接触,特别是standaloneTomcat服务器...这样通过如图中3个域名就都可对页面进行正常访问啦 ? ? 3. 书写前端html页面 multiple_origins_cors.html内容如下 <!...在与浏览器“沟通”过程中,不恰当使用Cors会造成一些可能漏洞,比如最常见便是当允许多个域名跨域请求,很多同学为了方便就将Access-Control-Allow-Origin写为*,或者在Ng...说明:关于Spring/Spring Boot场景下对Cors跨域问题解决方案以及原理分析,本系列已安排在下下篇详细剖析 补充:Vary: Origin解决缓存问题 在文章最后想补充一个“小知识点...它是一个HTTP响应头,决定了对于下一个请求,应该使用缓存还是向源服务器请求一个新Response,内容协商(你知道,内容协商也属于我一个技术专栏)有关。

    6.4K32

    SpringBoot进阶

    Spring Boot简介 采用约定大于配置,简化Spring开发步骤与复杂部署流程 快速创立可独立运行Spring项目以及集成主流框架 嵌入式Servlet容器,无需打war包 starter自动依赖与版本控制...嵌入式Servlet容器 SpringBoot默认使用嵌入式Servlet容器(Tomcat) 1)定制修改Servlet容器相关配置 server.port=8081 server.servlet.context-path...() throws BeansException { } **子容器重写该方法:**就会创建嵌入式Servlet容器 子容器抽象类下面的实现类,Tomcat使用SerlvetWebServerApplicaitonContext...使用外置Servlet容器 嵌入式简单便捷、优化定制比较复杂,使用定制器或properties等来改变 外置Serlvlet容器:外面安装Tomcat服务器--应用打包war包打包 必须创建war包...将嵌入式Tomcat指定为provided 必须编写一个ServletInitializer,并调用configure方法 启动服务器 外置Servlet容器启动原理, jar包:执行Spring主类

    90520

    【2022最新Java面试宝典】—— SpringBoot面试题(44道含答案)

    SpringBoot Starter工作原理 8. Spring Boot 2.X 有什么新特性?与 1.X 有什么区别? 9. SpringBoot支持什么前端模板, 10....Spring boot 监视器可帮助您访问生 产环境中正在运行应用程序的当前状态。有几个指标必须在生产环境中进行检查监控。即使一 些外部应用程序可能正在使用这些服务来向相关人员触发警报消息。...如何重新加载 Spring Boot更改,而无需重新启动服务器Spring Boot项目如何热部署? 这可以使用 DEV 工具来实现。...通过这种依赖关系,您可以节省任何更改,嵌入式tomcat 将重新启 动。Spring Boot 有一个开发工具(DevTools)模块,它有助于提高开发人员生产力。...Java 开 发人员面临一个主要挑战是将文件更改自动部署服务器并自动重启服务器。开发人员可以重新 加载 Spring Boot更改,而无需重新启动服务器。这将消除每次手动部署更改需要。

    1.4K10

    Spring Boot 核心编程思想-第一部分-读书笔记「建议收藏」

    也就是JarLauncher WarLauncher 本质上 无差别,建议 Spring boot应用使用非传统Web部署,尽可能使用JAR归档方式。...:引入 spring-boot-maven-plugin 插件,需要配置 repackage元素,否则不会添加Spring boot引导依赖。...第4章 理解嵌入式Web容器 首先理解嵌入容器,基本上大一点Web容器,自身都提供了嵌入式容器支持。然后大致就能明白SpingBoot嵌入式容器,Spring Boot嵌入式容器进行了封装。...Servlet规范实现三种容器版本对应关系: Servlet4.0规范 :tomcat 9.x Jetty9.x Undertow2.x Servlet3.1规范:tomcat 8.x Jetty8...image.png Tomcat 插件插件生成jar包 Spring boot 生成jar区别 1、Tomcat maven插件,本质上还是传统Tomcat部署,先将WEB应用打包为ROOT.war

    86010

    精选Spring Boot 面试题,帮你整理好了!

    用来简化spring应用初始搭建以及开发过程 使用特定方式来进行配置(properties或yml文件) 创建独立spring引用程序 main方法运行 嵌入Tomcat 无需部署war文件...这可以使用DEV工具来实现。通过这种依赖关系,您可以节省任何更改,嵌入式tomcat将重新启动。 Spring Boot有一个开发工具(DevTools)模块,它有助于提高开发人员生产力。...我们为什么要使用嵌入式服务器呢? 思考一下在你虚拟机上部署应用程序需要些什么。...当我们创建一个可以部署应用程序时候,我们将会把服务器(例如,tomcat)嵌入到可部署服务器中。...嵌入式服务器就是我们可执行单元包含服务器二进制文件(例如,tomcat.jar)。 19 如何在 Spring Boot 中添加通用 JS 代码?

    3.5K30

    为什么说 Java 程序员到了必须掌握 Spring Boot 时候?

    Spring 开发者意识到这里绝大多数工作可以可以自动化Spring Boot 出现了!...Spring boot 2.0(2018 年 03 月)-基于 Java 8,支持 Java 9,支持 Quartz ,调度程序大大简化了安全自动配置,支持嵌入式 Netty Spring Boot 简单性使...这意味着如果使用特定 Spring IO 版本创建项目,则不再需要定义库版本。即使是 Spring Boot 启动项目也是这个 Spring IO 一部分。...以往我们做Spring应用开发,要知道配置哪些类来让HibernateSpring一起工作,要知道如何配置view resolver来控制哪个模版进行视图层展示。...开发完成之后,我们还要考虑部署问题,且不说部署到非常笨重应用服务器,比如WebSphere, Weblogic或者JBoss,即使部署Tomcat或者Jetty这种轻量级容器上面,我们要知道如何配置容器

    69320

    SpringBoot使用小技巧合集

    设置网站图标 原来我们在使用tomcat开发,设置网站图片时,即icon图标,一般都是直接替换root包下favicon.ico替换成自己,或者在网页头部设置linkref为icon然后设置其...它允许浏览器向跨源(协议 + 域名 + 端口)服务器,发出XMLHttpRequest请求,从而克服了AJAX只能同源使用限制。...所以部署在独立tomcat,需要如何解决呢?其实也简单,只需要将项目打包方式修改为war包,然后修改下启动类配置即可。 0.修改pom打包方式为war,同时排除了内置tomcat。...动态设置后 热部署 前面讲了这么多章节,因为功能都很单一,所以一般上都是直接重启服务来进行更新操作。但当服务功能一多,启动速度缓慢,还是配置个热部署比较方便。...Boot Version: ${spring-boot.version}${spring-boot.formatted-version} 题外话:手输字符画是不太现实,大家可通过一些网站进行快速生成

    55320

    SpringBoot面试题整理,常问SpringBoot面试题汇总(2020版)

    9Spring Boot 是否可以使用 XML 配置 ?...当用户登录以后,正常使用;当用户退出登录状态时或者token过期,由于拦截器跨域顺序有问题,出现了跨域现象。...28、如何重新加载 Spring Boot更改,而无需重新启动服务器Spring Boot项目如何热部署? 这可以使用 DEV 工具来实现。...通过这种依赖关系,您可以节省任何更改,嵌入式tomcat 将重新启动。Spring Boot 有一个开发工具(DevTools)模块,它有助于提高开发人员生产力。...Java 开发人员面临一个主要挑战是将文件更改自动部署服务器并自动重启服务器。开发人员可以重新加载 Spring Boot更改,而无需重新启动服务器。这将消除每次手动部署更改需要。

    1.4K10
    领券