CentOS7安装多个实例tomcat8

多个tomcat安装办法:

(1)解压多个tomcat挨个修改需要的端口,以前一直这么干

(2)用一个tomcat来启动多个应用实例,每个应用相互独立,互不干扰

下边说下第二种方法:

(1)解压tomcat8.5.30,重命名成tomcat文件夹,接着在tomcat文件夹下边创建tomcat8530_8081和tomcat8530_8082两个文件夹(可以自己定义各个文件夹的名字),把tomcat下边的conf (配置文件) 、logs (日志目录) 、temp (临时目录) 、webapps (自动装载的应用程序的目录) 、work (JVM临时文件目录[java.io.tmpdir])分别复制到之前创建的两个文件夹中(tomcat8530_8081和****8082中),完成后如下图(忽略8081目录中的tomcat8081.sh脚本)


(2)修改默认的tomcat端口号(8005、8080、8009),注:tomcat_8081和tomcat8082都修改成自己想要的

(3)创建启动脚本,上图中的绿色tomcat8081.sh脚本

#!/bin/sh
. /etc/init.d/functions
RETVAL=$?
# tomcat实例目录
export CATALINA_BASE="$PWD"
# tomcat安装目录
export CATALINA_HOME="/usr/local/tomcat"
# 可选
export JVM_OPTIONS="-Xms1024m -Xmx1024m -XX:PermSize=128m -XX:MaxPermSize=512m"
case "$1" in
start)
if [ -f $CATALINA_HOME/bin/startup.sh ];then
echo $"Start Tomcat"
$CATALINA_HOME/bin/startup.sh
fi
;;
stop)
if [ -f $CATALINA_HOME/bin/shutdown.sh ];then
echo $"Stop Tomcat"
$CATALINA_HOME/bin/shutdown.sh
fi
;;
*)
echo $"Usage:$0 {start|stop}"
exit 1
;;
esac
exit $RETVAL

(4)赋予脚本权限

Chmod +x tomcat8081.sh

(5)启动/关闭tomcat8081

 #启动

./tomcat8081.sh start
#停止
./tomcat8081.sh stop

文章中有的地方目录直接写成tomcat808·,其实应该是tomcat8530_8081

freemarker判空


(1)加感叹号可以解决为空的问题

${(userId)!}
如果userId为空就默认!后边的字符
${(userId!'')}

或者

<#if userId??>
……
</#if>


(2)加上括号,感叹号解决对象导航为空的问题(对象的属性)

${(user.name)!} 
或者
<#if (user.name)??>
......
</#if>


SpringBoog 集成freemarker 数字类型逗号问题

(1)模板页面中取值时候按照下边方法,两种办法都比较麻烦,不过可以解决问题

${num?c}  

或者

${num.toString()}

(2)公共的模板页面加入以下配置

<#setting number_format="#">


(3)下边这个是网上找的,但是配置了不生效,不知道问题出在哪里

spring.freemarker.settings.number_format=0.##


贴一个Springboot集成freemarker的配置

#FREEMARKER(FreeMarkerAutoConfiguration)
spring.freemarker.allow-request-override = false#设置是否允许HttpServletRequest属性覆盖(隐藏)控制器生成的同名的模型属性。
spring.freemarker.allow-session-override = false#设置是否允许HttpSession属性覆盖(隐藏)控制器生成的同名的模型属性。
spring.freemarker.cache = false#启用模板缓存。
spring.freemarker.charset = UTF-8#模板编码。
spring.freemarker.check-template-location = true#检查模板位置是否存在。
spring.freemarker.content-type = text / html#Content-Type值。
spring.freemarker.enabled = true#启用此技术的MVC视图分辨率。
spring.freemarker.expose-request-attributes = false#设置在与模板合并之前是否应将所有请求属性添加到模型中。
spring.freemarker.expose-session-attributes = false#设置在与模板合并之前是否应将所有HttpSession属性添加到模型中。
spring.freemarker.expose-spring-macro-helpers = true#设置是否向Spring的宏库公开一个RequestContext,名称为“springMacroRequestContext”。
spring.freemarker.prefer-file-system-access = true#首选文件系统访问模板加载。文件系统访问可以对模板更改进行热检测。
spring.freemarker.prefix =#在构建URL时先查看名称的前缀。
spring.freemarker.request-context-attribute =#所有视图的RequestContext属性的名称。
spring.freemarker.settings。* =#众所周知的FreeMarker密钥将被传递给FreeMarker的配置。
spring.freemarker.suffix =#在构建URL时附加到查看名称的后缀。
spring.freemarker.template-loader-path = classpath:/ templates /#模板路径的逗号分隔列表。
spring.freemarker.view-names =#可以解决的视图名称的白名单。




Springboot官网配置模板

Centos 7启动tomcat 7 tomcat8异常缓慢

启动慢主要是卡在初始化Session,Tomcat的SessionID是通过SHA1PRNG算法计算得到的,SHA1算法需要一个密钥,这个密钥在Tomcat启动的时候随机生成一个,生成是使用了Linux随机函数生成器/dev/random。读取它相当于生成随机数字。/dev/random会根据 噪音 产生随机数,如果噪音不够它就会阻塞。Linux是通过I/O,键盘终端、内存使用量、CPU利用率等方式来收集噪音的,如果噪音不够生成随机数的时候就会被阻塞。

解决办法:

yum install rng-tools # 安装rngd服务(熵服务,增大熵池)
systemctl start rngd  # 启动服务


CentOS安装 JDK1.8

rpm安装

rpm -ivh jdk-8u172-linux-x64.rpm

编辑 JDK环境变量:

 vim /etc/profile.d/java.sh

添加下边的环境变量配置:

JAVA_HOME=/usr/java/jdk1.8.0_172-amd64
JRE_HOME=/usr/java/jdk1.8.0_172-amd64/jre
CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME PATH CLASSPATH

立即生效

source /etc/profile.d/java.sh