tomcat 倒序

时间:2021-6-7 作者:qvyue

9.内存泄漏

原因:@table类缺少主键设置
修改:加上


  @Id
  @GeneratedValue(strategy = GenerationType.IDENTITY)
  @Column(name = "user_id")
  private String userId;

8.unregister mbean error

原因:Tomcat中部署了两个web应用,启动时报错抛异常
效果:待定


修改Tomcat 下的 catalina.sh的两种方法:
1.在最后面,不要放在前面或者中间的逻辑判断附近添加 
set JAVA_OPTS="-Ddruid.registerToSysProperty=true" 
2.在开头JAVA_OPTS添加 
JAVA_OPTS="$JAVA_OPTS -Ddruid.registerToSysProperty=true"

7.在web应用程序停止时未能将其删除。线程将随着时间的推移而更新,以尝试避免可能的内存泄漏。

原因:因为tomcat 存在 threadlocals 内存泄漏风险,需要手动清理过期的request请求中创建的本地线程。
springboot 项目:第一步:添加监听,第二步:自定义监听实现类
学习网址以及代码:实测不能解决问题。https://blog.csdn.net/weikzhao0521/article/details/106259773

6.tomcat线上服务器部署项目(多模块)

1.安装配置
学习网址:完整步骤按此来可行。
https://blog.51cto.com/u_12348890/2093732
部分步骤备份:

- 配置jdk和maven
1.传Oracle JDk和Tomcat服务器的压缩包到服务器:
传了自己的apache-maven-3.6.3.zip。
Tomcat下载地址:[http://tomcat.apache.org/](http://tomcat.apache.org/)
JDK下载地址:[http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html](http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html)
2.在usr目录下创建文件夹
sudo mkdir –p  /usr/java
配置jdk环境变量并生效
export JAVA_HOME=/usr/java/jdk1.8.0_161
export JRE_HOME=${JAVA_HOME}/jre 
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib 
export PATH=.:${JAVA_HOME}/bin:$PATH
source  /etc/profile
java -version
3.解压Tomcat到指定文件夹
/usr/dev/apache-maven-3.6.3
修改server.xml配置文件,在最后的标签后面添加下列语句:
    #其中docBase是我的Tomcat目录
4.关闭防火墙(不太管用):
查看:systemctl status firewalld.service
关闭:systemctl stop firewalld.service
关开机启动:systemctl disable firewalld.service

2.更改端口号8080为80
需要先设置开放端口80,再关闭防火墙。
学习网址:实测好用 https://blog.csdn.net/JUFENG_FEI/article/details/116236488

tomcat 倒序
图片文字备份用
打开配置文件就会发现,他默认只开放了22端口,我们就可以复制那一行,并在紧挨着他的下面插入,并改为我们想要开放的端口号。注意:必须是紧挨着的下一行。
再彻底关闭防火墙以及tomcat重启时的开机启动

设置完成后重启:service iptables restart
查看防火墙状态: service iptables status
关闭防火墙:service iptables stop
禁止防火墙自启动:chkconfig iptables off
查看自启动状态列表:chkconfig iptables --list

5.无法将位于-的资源添加到Web应用程序-的缓存中,因为在清除过期缓存条目后可用空间仍不足 – 请考虑增加缓存的最大空间。

在/conf/context.xml 的 前添加以下内容(大小默认是1024,单位是KB):

4.tomcat server.xml中的标签

标签:

xxx.xxx.com

标签:
path: 指定访问该Web应用的URL入口。
docBase: 指定Web应用的文件路径,可以给定绝对路径,也可以给定相对于的appBase属性的相对路径,如果Web应用采用开放目录结构,则指定Web应用的根目录,如果Web应用是个war文件,则指定war文件的路径。
reloadable:如果这个属性设为true,tomcat服务器在运行状态下会监视在WEB-INF/classes和WEB-INF/lib目录下class文件的改动,如果监测到有class文件被更新的,服务器会自动重新加载Web应用。

3.信息 [http-nio-8080-exec-15] org.apache.coyote.http11.Http11Processor.service 解析 HTTP 请求 header 错误

    java.lang.IllegalArgumentException: 在方法名称中发现无效的字符串, HTTP 方法名必须是有效的符号.
        at org.apache.coyote.http11.Http11InputBuffer.parseRequestLine(Http11InputBuffer.java:431)
        at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:503)
        at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
        at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:831)
        at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1629)
        at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
        at java.lang.Thread.run(Thread.java:748)

发请求时不要带https 用http,暂不处理。

2.javax.management.InstanceAlreadyExistsException:com.zaxxer.hikari:name=mallDataSource


application.xxx 加入代码 spring.jmx.enabled=false

1.查看日志/清空日志


du -h *.* | sort -hr 查看文件大小并排序
tail -f catalina.out 查看日志
echo "" > catalina.out  清空日志

1、tail

命令格式:
tail[必要参数][选择参数][文件]
-f 循环读取
-q 不显示处理信息
-v 显示详细的处理信息
-c 显示的字节数
-n 显示行数
-q, --quiet, --silent 从不输出给出文件名的首部
-s, --sleep-interval=S 与-f合用,表示在每次反复的间隔休眠S秒

举例:
tail -n 10 test.log 查询日志尾部最后10行的日志;
tail -n +10 test.log 查询10行之后的所有日志;
tail -fn 10 test.log 循环实时查看最后1000行记录(最常用的)

配合grep用:
tail -fn 1000 test.log | grep '关键字'  

如果一次性查询的数据量太大,可以进行翻页查看,例如:
tail -n 4700 aa.log |more -1000 可以进行多屏显示(ctrl + f 或者 空格键可以快捷键)


>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>


2.head
跟tail是相反的head是看前多少行日志

head -n 10 test.log 查询日志文件中的头10行日志;
head -n -10 test.log 查询日志文件除了最后10行的其他所有日志;

head其他参数参考tail


>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>


3.cat
cat 是由第一行到最后一行连续显示在屏幕上

一次显示整个文件 :
$ cat filename

从键盘创建一个文件 :
$cat > filename

将几个文件合并为一个文件:
$cat file1 file2 > file 只能创建新文件,不能编辑已有文件.

将一个日志文件的内容追加到另外一个 :
$cat -n textfile1 >> textfile2

清空一个日志文件:
$cat : >textfile2

注意:> 意思是创建,>>是追加。千万不要弄混了。
cat其他参数参考tail



>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>




4.more
more命令是一个基于vi编辑器文本过滤器,它以全屏幕的方式按页显示文本文件的内容,支持vi中的关键字定位操作。

more名单中内置了若干快捷键,常用的有H(获得帮助信息),Enter(向下翻滚一行),空格(向下滚动一屏),Q(退出命令)。more命令从前向后读取文件,因此在启动时就加载整个文件。
该命令一次显示一屏文本,满屏后停下来,并且在屏幕的底部出现一个提示信息,给出至今己显示的该文件的百分比:–More–(XX%)

more的语法:more 文件名
Enter 向下n行,需要定义,默认为1行
Ctrl f 向下滚动一屏
空格键 向下滚动一屏
Ctrl b 返回上一屏
= 输出当前行的行号
:f 输出文件名和当前行的行号
v 调用vi编辑器
!命令 调用Shell,并执行命令
q退出more


>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>


5.sed
这个命令可以查找日志文件特定的一段 , 根据时间的一个范围查询,可以按照行号和时间范围查询

按照行号
sed -n '5,10p' filename 这样你就可以只查看文件的第5行到第10行。

按照时间段
sed -n '/2014-12-17 16:17:20/,/2014-12-17 16:17:36/p' test.log


>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>


6.less

less命令在查询日志时,一般流程是这样的
less log.log
shift + G 命令到文件尾部 然后输入 ?加上你要搜索的关键字例如 ?1213
按 n 向上查找关键字
shift+n 反向查找关键字
less与more类似,使用less可以随意浏览文件,而more仅能向前移动,不能向后移动,而且 less 在查看之前不会加载整个文件。

常用命令参数:
less与more类似,使用less可以随意浏览文件,而more仅能向前移动,不能向后移动,而且 less 在查看之前不会加载整个文件。
less log2013.log 查看文件
ps -ef | less ps查看进程信息并通过less分页显示
history | less 查看命令历史使用记录并通过less分页显示
less log2013.log log2014.log 浏览多个文件

常用命令参数:
-b  设置缓冲区的大小
-g 只标志最后搜索的关键词
-i 忽略搜索时的大小写
-m 显示类似more命令的百分比
-N 显示每行的行号
-o  将less 输出的内容在指定文件中保存起来
-Q 不使用警告音
-s 显示连续空行为一行
/字符串:向下搜索"字符串"的功能
?字符串:向上搜索"字符串"的功能
n:重复前一个搜索(与 / 或 ? 有关)
N:反向重复前一个搜索(与 / 或 ? 有关)
b 向后翻一页
h 显示帮助界面
q 退出less 命令


>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

其他命令
history // 所有的历史记录
history | grep XXX // 历史记录中包含某些指令的记录
history | more // 分页查看记录
history -c // 清空所有的历史记录

!! 重复执行上一个命令
查询出来记录后选中 : !323

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>


linux日志文件说明
/var/log/message 系统启动后的信息和错误日志,是Red Hat Linux中最常用的日志之一
/var/log/secure 与安全相关的日志信息
/var/log/maillog 与邮件相关的日志信息
/var/log/cron 与定时任务相关的日志信息
/var/log/spooler 与UUCP和news设备相关的日志信息
/var/log/boot.log 守护进程启动和停止相关的日志消息
/var/log/wtmp 该日志文件永久记录每个用户登录、注销及系统的启动、停机的事件


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:qvyue@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。