Tomcat 上的项目参数传递问题

简介: 部署在 Tomcat 上面的 Spring Boot 项目,在某些情况下,我们可能会修改配置文件中的参数,这样应该怎么做呢?

1. 修改 Tomcat 中的 catalina.sh 文件


部署在 Tomcat 上面的 Spring Boot 项目,在某些情况下,我们可能会修改配置文件中的参数,这样应该怎么做呢?

传统的方式是直接在本地修改,然后打包部署,但是这种方式太麻烦了,要是我只是修改了很小的一个参数,都要重新打包,得不偿失。

于是稍微研究了一下,找到了两种方式,来向项目传递参数。

第一种方式就是修改 Tomcat 中的 catalina.sh 这个文件,例如我在 Spring Boot 项目的配置文件中自定义了一个配置,如下:

#application.yml 中的配置
project:
  args: ${info}

然后修改 Tomcat 下面的 bin/catalina.sh 文件,添加一个 JAVA_OPTS 属性,指定 info 的值:

M9%WMRFA}L10B~))V{V[7TD.png

需要注意的是,如果指定的是一个包含了空格的字符串,要用单引号包围,例如上面的 -Dinfo="'I am roseduan'"

这种方式出现的问题:

但是,这种传递参数的方式是不太方便的,举个例子:在本地环境,启动项目的时候,该怎么去设置这个 info 的值呢?如果不指定肯定是要报错的。只不过我也找到了一种方式,在 IntelliJ IDEA 中,我们可以在 Run/Debug Configuration 中设置参数:

PW0]VR)D2IV3M(`J(PW@T4R.png

这样就能够在本地启动启动项目了。

但是还存在一个问题,就是使用 maven 打包的时候,也会报错,仍然是找不到 info 的值,这时候我们也可以使用mvn 打包时来传递参数,命令是:mvn package -Dinfo="I am roseduan" 。部署到 tomcat 中后,我们就可以使用修改 catalina.sh 中的内容来指定 info 的值。


2. 修改 Tomcat 中的 contxt.xml 文件


上面的这种方式,其实应该少量的配置是可以的,但是如果我们需要指定大量的配置,并且每个配置的内容都很长,这样就不是非常方便了,因为每次打包,都需要写很多参数。

所以第二种方式,修改 context.xml 文件,就十分的有优势了。我们不需要修改任务本地的配置,也不用配置任何参数,还是上面那个例子,假如 application.yml 中有如下配置:

#application.yml 中的配置
project:
  args: I am roseduan

并且这个配置是已经打包在了 Tomcat 上了,我们可以在 Tomcat 中的 conf/context.xml 中添加一些配置来修改这个参数的值:

9(0$ZG6QK@DQKAP1(JMMWBD.png

name 是配置参数在 application.yml 文件中的路径,Type 对应的是 Java 类型,value 是具体的值。

这样的话,我们可以直接在这个文件中指定很多的值了,这样修改还有一个好处便是,不用重启 Tomcat ,配置即时生效 (只不过需要多试几次,或者稍微等一会)。

最后,需要注意一点:配置在 application.yml 中的自定义配置,最好是小写,或者使用 - 分隔,不然有可能 context.xml 中的配置不会生效。

相关文章
|
5月前
|
Java 关系型数据库 MySQL
Windows用Tomcat发布Java项目
对于云服务器,程序员一般不会陌生,如果项目需要发布到现网,那么服务器是必不可缺的一项硬性条件,那么如何在云服务器上部署一个项目,需要做哪些配置准备,下面就由本文档为大家讲解,本篇以Tomcat服务器发布J2EE项目为例。
84 0
Windows用Tomcat发布Java项目
|
5月前
|
JavaScript Java 应用服务中间件
centos部署vue项目(java,tomcat环境的搭建)
centos部署vue项目(java,tomcat环境的搭建)
128 0
|
5月前
|
移动开发 Java 应用服务中间件
tomcat第1章 tomcat介绍、安装、部署项目
tomcat第1章 tomcat介绍、安装、部署项目
122 0
|
2月前
|
Java 应用服务中间件 Windows
【应用服务 App Service】App Service 中部署Java项目,查看Tomcat配置及上传自定义版本
【应用服务 App Service】App Service 中部署Java项目,查看Tomcat配置及上传自定义版本
|
4月前
|
Java 应用服务中间件 Maven
IDEA创建一个Servlet项目(tomcat10)
IDEA创建一个Servlet项目(tomcat10)
214 1
|
16天前
|
Java 应用服务中间件 Maven
idea+maven+tomcat+spring 创建一个jsp项目
这篇文章介绍了如何在IntelliJ IDEA中使用Maven和Tomcat创建一个JSP项目,包括配置Maven依赖、设置Tomcat服务器、编写JSP页面、创建控制器和配置文件,以及项目的运行结果。
62 0
idea+maven+tomcat+spring 创建一个jsp项目
|
8天前
|
Java 应用服务中间件 Linux
tomcat学习二:tomcat部署多个项目:不修改端口和修改端口 两种方式详解
这篇文章详细介绍了在Tomcat服务器上部署多个项目的方法,包括不修改端口和修改端口两种方式。
42 0
|
2月前
|
Java 应用服务中间件 Apache
使用IDEA修改Web项目访问路径,以及解决Apache Tomcat控制台中文乱码问题
本文介绍了在IntelliJ IDEA中修改Web项目访问路径的步骤,包括修改项目、模块、Artifacts的配置,编辑Tomcat服务器设置,以及解决Apache Tomcat控制台中文乱码问题的方法。
83 0
使用IDEA修改Web项目访问路径,以及解决Apache Tomcat控制台中文乱码问题
|
2月前
|
应用服务中间件
2022年最新最详细在IDEA中配置Tomcat(含有详细图解过程)、建立使用IEDA建立一个Web项目的案例
这篇文章提供了在IntelliJ IDEA中配置Tomcat服务器的详细步骤,包括添加Tomcat Server、选择安装路径、添加项目Artifact,以及创建和展示Web项目的流程。
|
4月前
|
XML Java 应用服务中间件
Tomcat项目创建 以及 在IDEA当中集成Tomcat
Tomcat项目创建 以及 在IDEA当中集成Tomcat