Linux部署Tomcat发布项目过程中各种问题及解决方法

部署项目到项目现场测试环境

JDK1.8
Tomcat8.5
Maven打包好的war
Linux-----Centos
不知道谁给现场的Tomcat,将其上传到Linux平台******目录,并且进行解压。直接启动

图1:

问题1

因为是第一次启动Tocmat,没有日志文件。所以直接启动 ./startup.sh。后续可以使用以下命令动态的查看日志信息。执行后提示没有执行权限

./startup.sh & tailf ../logs/catalina.out

问题分析: .sh可执行文件 当前用户都不具备权限

问题解决: 使用命令:chmod u+x *.sh。在tomcat/bin目录下执行

命令分析: 表示对当前目录下的所有.sh文件的所有者增加可执行权限。

  • chmod是权限管理命令change the permissions mode of a file的缩写
  • u 代表所有者;
  • x 代表执行权限;
  • “+” 表示增加权限。
  • 也可以单独指定一个文件 比如:chmod u+x abc.sh
  • 然后用./startup.sh启动。

图2:

问题2

启动之后报错找不到 *****目录下的文件。

问题分析: 此问题出现是因为在 tomcat 的server.xml文件中配置了多个 Context环境。但是在指定的目录下并没有项目部署。

问题解决: 删除server.xml文件中所有的Context。删除 tomcat 目录webapps以及wtpwebapps 下所有部署过的项目。此时只是单独启动一个 ebank。启动成功,访问8080成功。

图3:

问题3

在 tomcat 服务器 webapps上添加Maven打包好的war包。之后进行启动。但是报错端口被占用。

问题分析: 这个操作是在没有暂停之前那一步操作进行的。所以导致端口被占用。可是直接暂停tomcat之后还是报端口被占用

问题解决: 采用暴力一点的方式:
查询ebank进程ID:ps aux|grep tomcat
直接杀掉进程:kill-9 PID 杀掉tomcat的进程,之后可以正常的启动图4:

问题4

此时虽然可以正常启动,但是报错:java.lang.OutOfMemoryError: PermGen space(提示内存溢出,属于永久区的内存溢出)。

问题分析: Tomcat的内存参数之前并没有设置过,当前部署的项目占用内存较大加载的class较多。导致永久区内存不够使用。

问题解决: 将tomcat 的bin 下 catalina.sh文件复制一份进行修改,将原先的进行备份。在catalina.sh文件中 找到cygwin=false位置的前面 添加参数,注意引号要带上
JAVA_OPTS="-Xms256m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=256m"
将修改后的文件替换到tomcat/bin下。

图5:

图6:

问题5

此时再次启动,但是提示找不到catalina.sh文件?

问题分析: 因为在startup.sh执行文件中会调用catalina.sh执行文件。从而启动Tomcat服务。后续使用命令 ll 查看bin目录下。发现问题此时的catalina.sh 文件不在是一个可以执行的文件了。(不是绿色的)问题解决: 再次使用chmod u+x catalina.sh 赋予可以执行的权限。

图7:

图8:图中以hello.sh 举个栗子。(显示为黑色,与catalina.sh 不同)

问题6

启动成功,但是在浏览器确访问不到项目,访问8080成功。

问题分析: 在Tomcat的webapps目录下发现,经过Tocmat的解压缩将各个War包解压后 都带有版本号(war包是Maven打包生成的,带有版本号)。浏览器访问的正确地址是不带版本号的问题解决: 删除项目,重新命名War包。再次启动。到此为止全部成功图8:

额外使用的命令

清空日志:

echo -n "" > ../logs/catalina.out
	固定语法:echo -n "" >

查看日志大小:

du -h ../logs/catalina.out
	固定语法:du -h >

到此这篇关于解决Linux部署Tomcat发布项目过程中各种问题的文章就介绍到这了,更多相关Linux部署Tomcat内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Linux CentOS下安装Tomcat9及web项目的部署

    环境:阿里云ECS 云服务器Linux CentOS 使用XShell客户端连接服务器,进行操作实践. 1.下载Tomcat 部署到 /usr/local/tomcat,创建好文件夹.目录. 使用wget指令: wget http://mirrors.shu.edu.cn/apache/tomcat/tomcat-9/v9.0.10/bin/apache-tomcat-9.0.10.tar.gz 结果如下,成功下载了apache-tomcat-9.0.10.tar.gz 2.解压缩 tar -z

  • window和linux通过tomcat9手工部署war包的方法

    亲测在windows环境和linux环境不一样 Windows 第1步: 用maven打war包 (假如得到的war包名为: hello-back.war) 第2步: 把war包拷贝到tomcat安装的webapps目录下 第3步: 启动tomcat (可以在conf/server.xml修改端口号) 第4步: 浏览器访问就好了127.0.0.1::8080 linux 同样的操作 同样的部署,没有样式,什么鬼 不急不急... 这里有个问题,它默认根目录是要加项目名的,如上加了hello-bac

  • Linux 单个tomcat多实例部署shell脚本详解

    Linux 单个tomcat多实例部署shell脚本详解 步骤: 1. 下载tomcat,解压安装 2.将tomcat下的webapps,conf,temp等目录分别拷至根目录www下A,B,C目录下 3.新建如下脚本restart_tomcat.sh 4.使用restart_tomcat.sh A/B/C #!/bin/sh if [ -z $1 ] then echo "\033[31;1mplease input the app which you need restart...\033[

  • linux实现自动部署tomcat脚本

    由于经常部署war到tomccat上,经常有一些重复的工作要做:停服务.备份war包.上传新的war包.启动服务.索性就写了一个自动部署的脚本. 脚本如下autoDeploy.sh: #! /bin/sh echo '####################开始自动部署####################' path=`pwd` #当前路径 tomcatPath=tomcat-7 #指定tomcat文件目录名称 cd ../$tomcatPath/bin #进入tomcat的bin目录 PI

  • linux服务器部署tomcat和Nginx的教程

    项目需要,申请了三台测试机器,好在测试机里面光秃秃的什么都没有,我就可以好好的学习一把玩一把了!接下来以图文的形式讲一下我所碰到的坑以及小小的收获吧! 一.准备工作 首先你得有一台可以玩的linux服务器,知道用户名和密码,然后你需要在windows电脑上安装两个可以连上linux服务器的工具,Xshell 5和Xftp 5,安装教程不多说,补图说明如何连上服务器: xshell连接界面如下,输入好主机ip后点击确定,xshell会弹出窗口输入用户名和密码即可连接成功! xftp连接界面如下,填

  • Linux部署Tomcat发布项目过程中各种问题及解决方法

    部署项目到项目现场测试环境 JDK1.8 Tomcat8.5 Maven打包好的war Linux-----Centos 不知道谁给现场的Tomcat,将其上传到Linux平台******目录,并且进行解压.直接启动 图1: 问题1 因为是第一次启动Tocmat,没有日志文件.所以直接启动 ./startup.sh.后续可以使用以下命令动态的查看日志信息.执行后提示没有执行权限 ./startup.sh & tailf ../logs/catalina.out 问题分析: .sh可执行文件 当前

  • Linux下Tomcat启动正常,但浏览器无法访问的解决方法

    1.服务器可ping通 2.服务器抓本地的http请求包,可以抓到 3.本地抓服务器返回的http响应包,抓不到 经过查找,是由于开启了Linux防火墙 查看防火墙配置(需要root权限) [root@localhost ~]# service iptables status Redirecting to /bin/systemctl status  iptables.service iptables.service - IPv4 firewall with iptables Loaded: l

  • 利用forever和pm2部署node.js项目过程

    本文主要给大家分享的是利用forever和pm2部署node.js项目过程的相关内容,分享出来供大家参考学习,下面来看看详细的介绍: 一.forever forever可以在cmd或ssh连接断开时,让项目一直运行,而且可以在项目崩溃时自动重启 安装 npm install -g forever forever的帮助手册 forever --help 使用forever启动项目 forever start app.js 使用forever停止项目 forever stop app.js 列出所有

  • SpringBoot应用部署到Tomcat中无法启动的解决方法

    背景 最近公司在做一些内部的小型Web应用时, 为了提高开发效率决定使用SpringBoot, 这货自带Servlet容器, 你在开发Web应用时可以直接在本地像运行控制台应用一样启动,省去了重复部署的时间:配置上相比于SpringMVC也是有了大大的简化.SpringBoot的应用可以直接打成一个可运行的jar包, 你无需发愁为了不同应用要部署多个Tomcat.但是实际部署时你会发现打成Jar包的方式有一个致命的缺点, 当你改动了一个资源文件.或者一个类时, 打要往服务器重新上传全量jar包.

  • 解决新建一个vue项目过程中遇到的问题

    我就废话不多说了,大家还是直接看代码吧~ /usr/local/bin/node /usr/local/lib/node_modules/npm/bin/npm-cli.js run dev --scripts-prepend-node-path=auto > mytodolists@1.0.0 dev /Users/chenqiurui/WebstormProjects/myVue > webpack-dev-server --inline --progress --config build

  • 安装node.js以及搭建vue项目过程中遇到的问题详解

    目录 一.node.js安装 二.如何找node.js历史版本 1.点击DOWNLOADS 2.点击页面下方 3.翻页找到历史版本 三.检查是否安装成功? 四.安装成功后需要配置环境变量: 五.环境搭建 六.项目创建 总结 一.node.js安装 进入官网 https://nodejs.org/en/download/ 直接点击下载安装!安装过程直接下一步就行: 二.如何找node.js历史版本 (https://nodejs.org/en/download/) 1.点击DOWNLOADS 2.

  • Mysql数据库从5.6.28版本升到8.0.11版本部署项目时遇到的问题及解决方法

    mysql数据库版本从5.6.28升到8.0.11过程中部署项目时遇到的问题和解决方法,具体介绍如下所示: 首先这个项目用到了hibernate4.2.0,链接mysql5.6.28没问题,换到8.0.11,启动报错 1.Caused by: org.hibernate.HibernateException: Connection cannot be null when 'hibernate.dialect' not set 报错就配置吧 启动项目不报错了,但是访问项目报错了 2.访问报错com

  • 项目启动tomcat失败的几种可能原因和解决方法(小结)

    目录 1.java配置路径有问题 2.项目未添加tomcat驱动 3.项目中的web.xml中配置的servlet的名称写错,tomcat无法识别 4.端口被占用 1.java配置路径有问题 请配置好jdk路径,具体参考java路径的配置吧. 2.项目未添加tomcat驱动 (一般提示The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path属于这一类) 解决方法:保证已经装了

  • SpringMail使用过程中的报错解决办法

    SpringMail使用过程中的报错解决办法 1.Unable to locate provider for protocol: smtp –>缺少依赖造成的 <dependency> <groupId>javax.mail</groupId> <artifactId>mail</artifactId> <version>1.4</version> </dependency> <dependency

  • docker安装rocketMQ和安装过程中出现问题的解决

    目录 拉取rocketmq镜像 创建namesrv 创建单个broker节点 rocketMQ-console服务 本文主要介绍安装rocketMQ4.4.0,主要分为四步,分别为: 1.拉取rocketmq镜像. 2.创建namesrv. 3.创建broker节点,我在这里介绍的是创建单个broker的. 4.rocketMQ-console服务,用于管理rocketMQ的管理界面. 拉取rocketmq镜像 docker命令如下 docker pull rocketmqinc/rocketm

随机推荐