惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Know Your Adversary
Know Your Adversary
阮一峰的网络日志
阮一峰的网络日志
V
Visual Studio Blog
H
Help Net Security
博客园 - Franky
博客园_首页
博客园 - 【当耐特】
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
腾讯CDC
人人都是产品经理
人人都是产品经理
T
Tailwind CSS Blog
博客园 - 三生石上(FineUI控件)
爱范儿
爱范儿
博客园 - 聂微东
小众软件
小众软件
宝玉的分享
宝玉的分享
美团技术团队
WordPress大学
WordPress大学
L
LINUX DO - 热门话题
S
Secure Thoughts
IT之家
IT之家
博客园 - 叶小钗
Apple Machine Learning Research
Apple Machine Learning Research
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
有赞技术团队
有赞技术团队
V
V2EX
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
The Cloudflare Blog
C
Cyber Attacks, Cyber Crime and Cyber Security
量子位
G
GRAHAM CLULEY
Attack and Defense Labs
Attack and Defense Labs
Jina AI
Jina AI
罗磊的独立博客
Security Archives - TechRepublic
Security Archives - TechRepublic
W
WeLiveSecurity
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
T
Tenable Blog
L
Lohrmann on Cybersecurity
S
SegmentFault 最新的问题
J
Java Code Geeks
Last Week in AI
Last Week in AI
Cyberwarzone
Cyberwarzone
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
大猫的无限游戏
大猫的无限游戏
T
Tor Project blog
酷 壳 – CoolShell
酷 壳 – CoolShell
月光博客
月光博客
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
H
Heimdal Security Blog

小松鼠的博客

记录一次线上k8s工作节点无法创建容器的问题排查思路与解决办法 记一次线上GoLang项目OOM排查过程 从LastPass转向拥抱开源KeePass的心路历程 故障定位与 AI 结合前后端编码实践 FileBeat收集nginx-ingress-controller日志 K8s云原生环境下文件描述符占用过高查询思路 2024年最新关闭火绒安全工具的开机自启方法 Kubernetes任务调度实践-Go语言实现Job和CronJob对比分析 离线更新k8s环境下的trivy漏洞库方法 使用Go语言接入Choerodon实现基于OAuth2的统一身份认证登录 在Vue2中自定义Switch组件并实现父子组件双向数据绑定 关于docker jdk1.8镜像中的GB18030-2022标准支持及验证 Go框架gin中的session存储gin-contrib-sessions和go-session 关于修改node_module中的源码问题记录 docker-compose网络和内网服务IP冲突问题 慎用存储过程:一条语句引发的数据库存储100%占用 Spring Boot中4种文件下载方法的实现 避坑-不能将specific类型的gitlab-runner改变为share类型 Docker compose中的MySQL主从复制模式和percona-toolkit工具使用 在minio中开启https访问以及使用rclone备份minio桶 在多机Docker环境下部署Choerodon的解决方案 Prometheus中Monitor添加对SpringBoot Actuator的Basic认证 在Nginx的容器镜像中隐藏Nginx的Server响应头 K8s中的两种nginx-ingress-controller及其区别 两个docker工具:runlike和whaler Grafana中的邮件报警和截图插件grafana-image-enderer K8s中externalName-service和services-without-selectors maven配置文件settings.xml中的一些概念总结 K8s中flexvolume插件驱动的安装 K8s中的coredns无法解析svc问题排查 K8s中使用Ingress访问请求体过大问题解决 关于k8s中对于SpringBoot应用TCP类型的就绪探针不准确的问题发现 K8s中的环境变量与应用程序的对应关系与操作 SpringMVC4升级为SpringBoot2实战 在Vmware中Ubuntu22.04的vm-tools和网络问题 修改k8s节点主机名并重新加入集群 离线安装Grafana插件 Spring Data Jpa 中使用CriteriaBuilder动态拼接SQL 在SpringBoot项目配置Liquibase数据库版本管理 记录Vue中父子组件传值的实战应用 实现单例模式的8种方法 三种常用的生产者消费者模式实现 使用两个线程交替打印0-100的奇偶数 关于部署于JBoss5中的Spring应用获取项目真实部署路径的问题 获取下一个完全对称日 通过短信验证码验证修改密码的解决方案 在Win10中使用Win+R快速启动软件 使用RSA加解密时注意Cipher.getInstance(String var0,Provider var1)提供的Provider是否正确 在RestEasy2.x中解决接口重复提交问题 几道简单的CTF题目思路 重温Spring---Spring事务控制与基于XML和注解的配置方法 重温Spring---Spring AOP基于XML和注解的配置 重温Spring---AOP动态代理和Spring AOP及其基本原理 重温Spring---Spring IOC基于XML和注解的配置和比较 在Windows10中安装MySQL5.7 Zip版本及常用配置 重温Spring---使用Spring IOC解决程序耦合 策略模式与责任链模式实战应用 Linux上直接打开war包修改文件 在Windows上运行两个微信的简单脚本 ThreadPoolExecutor的使用方法与分页查询数据实例 IDEA中Shelve Changes 和 Git Stash 通过resteasy发布RESTful接口 解决前端请求后台接口,后台报错Can not deserialize instance of java.util.ArrayList out of START_OBJECT token 使用VBA脚本汇总Excel文档 使用Jenkins+GitLab实现自动部署vue项目 Kubernetes:使用hostPath挂载nginx集群的配置文件和html 彻底搞定VirtualBox虚拟机的网络设定 在Docker中安装MySQL5.7并开启远程访问(附授权和修改密码方式) 利用git命令和java文件流 获取自己改动过的文件 浅谈Spring定时任务的使用(Scheduled注解) 在Spring项目简单配置Flyway(V4.2版本)数据库版本管理 解决Spring单元测试中因外键关联导致的失败integrity constraint violation:foreign key no action Redis安装与哨兵模式配置入门 关于Vue中使用Element-UI样式row-class-name失效的问题 Element-UI中实现可动态增加行列和可编辑单元格的表格 Windows系统查看端口占用、结束进程方法和命令 层次分析法(AHP)分析步骤与计算方法 源码分析之解决layui框架重载表格时额外参数不清空的问题 Spring Data Jpa 返回自定义对象(实体部分属性、多表联查) 如何将一个jar放到本地maven仓库中 关于SSM项目停止Tomcat时Log4j出现java.lang.NoClassDefFoundError: 获取el-table单元格值并根据该值对元素自定义样式渲染 解决Git每次push都要重新输入账号密码和HttpRequestException encountered的问题 解决前后端分离项目中Vue不带cookies的问题 SSM集成Shiro自定义权限过滤器不执行解决方案 SSM集成Shiro不进入自定义Realm的doGetAuthorizationInfo的解决方案 Vue+SSM中使用Token验证登录 Git拉代码推送代码提示密码错误如何修改 Git配置SSH Key(Git配置多个账户) 关于我
安装Tomcat服务器以及错误汇总(tomcat8.0、jdk8)
ycyin · 2019-10-05 · via 小松鼠的博客

该文章为博主原创,最初发表在我的博客园

Tomcat安装和启动

一、下载Tomcat

地址栏输入官网地址:http://tomcat.apache.org/,然后进入他的主页,在主页左侧可以找到Download,这里可以看到很多版本,我这里选择Tomcat8这个版本(因为我的MyEclipse是2014版,它支持配置的最高版本Tomcat是8),点击进去,这里我选择64-bit Windows zip这个版本,点击它就可以下载了。

二、安装Tomcat

怎么安装呢,其实解压就算是安装好了(听说分什么解压版和安装版,我这里就不说了,可能是上面下载的版本问题,但是我下载的这个也可以当作安装版呀),只是还需要相关配置才能正常工作哦,如图,下载的包是1,解压后是2.

然后,需要检查你的JAVA_HOME变量配好了没(很重要,看了后面其实也不用配,如果是新手,还是配上吧),当然path,classpath也需要正确配置,网上有很多关于配置JDK环境变量的文章,我这里就不一一解说了,举个例子,JAVA_HOME正确的是这样,如图,

注:变量名为大写,JAVA_HOME(中间有下划线),变量值为你的jdk存放路径(末尾不能有分号)

然后打开刚刚解压的Tomcat8文件夹,打开bin目录,然后可以看到很多,批处理文件,点击startup.bat运行,

如果点击过后等待若秒后,出现下面图中样子,并没有任何报错输出,并且你也可以在电脑服务中(win+r
输入services.msc)找到一个服务名为Apache Tomcat 8.0 Tomcat8的服务已经启动了,说明你已经启动成功了!

三、测试启动

这时,保持上面窗口没有关闭(如果你想关闭它,不要直接点击右上角的小叉,同样在bin目录下有一个shutdown.bat点击它可以关闭tomcat服务器),你可以在浏览器地址栏输入http://localhost:8080/检查是否真的启动成功,如果出现下面图中样式,则启动成功,你可以不用再往下看了。

错误排查

很多时候并不是这样一帆风顺,下面列出几个常见的错误,也是我遇到的。比如:

错误一:启动失败

点击startup.bat后,屏幕闪一下就没了,并没有启动成功!

查看错误:首先应该想到的是,你的JAVA_HOME环境变量没有配好(路径后面一定要没有分号,因为Tomcat需要获取这个值),如果是配好了,那就右击startup.bat选择编辑,在最后一行输入pause,目的是让当前窗口暂停,不让他消失,如图:

然后再启动它,如果配置正确的话应该是可以看到这些值的,如图:

解决方法一:在tomcat的bin目录下的startup.bat中set JAVA_HOME=""set JRE_HOME="...\jre",以及CATALINA_BASE或CATALINA_HOME然后测试http://localhost:8080

rem ---------------------------------------------------------------------------
rem Start script for the CATALINA Server
rem ---------------------------------------------------------------------------
 
setlocal
 
rem ---------当前bat文件目录的上级--------
set CATALINA_HOME=%~dp0.. 
rem -----------setclasspath.bat中要用到JAVA_HOME----------
set JAVA_HOME=C:\Program Files\Java\jdk1.7.0_15

解决方法二:去配置这些环境变量,名字是前面大写的部分(如:CATALINA_HOME),值就是后面的了。其实,我配置的是下面的几个:

解决方法三:如果,上面两种方法都试过了,并且配置了各种路径正确,还不行,那么只有试试这种方法了:

首先先上面说到的环境变量保证配好,然后,你点击bin目录下的这个选项(如图),是不是弹出一个框说是没有安装。

如果上面说的环境变量(特别是path和CATALINA_HOME)配置好了,那么现在按win+R或者直接打开运行,输入cmd,回车(如图):

然后输入service install Tomcat8
回车,会提示你安装成功(如图,由于我已经安装过,说以会说是失败),如果提示说:"......"不是内部命令或外部命令,那就是你环境变量没配好。

如果某一天你想卸载它,命令是:service uninstall Tomcat8(卸载Tomcat8)。

现在你再点击bin目录下的tomcat8w.exe就会出现一个对话框了,里面的一些路径需要和你配置的环境变量和tomcat安装目录一致(默认会自动配置,但有可能不对),如图:

日志文件可以帮助你找到关于tomcat启动、运行中出现的错误或信息。

这些都对了,你可以启动tomcat服务器了,点击start启动,关闭点stop如图:

错误二:端口占用

8080端口被占用

因为Tomcat服务器默认使用你电脑里的8080端口,如果这个端口被其它程序所占用,
就启动不了了,这时需要去修改它的默认端口,怎么修改呢?打开tomcat安装目录,找到conf目录下的
server.xml文件,右键编辑,找到如图所示地方,修改8080为其它,我这里修改为5200.

重新启动tomcat服务,现在在浏览器中输入http://localhost:5200/(注:5200就是上面你改过的端口号),出现如图页面,就成功了。

如果在安装过程中,还有其它错误,你可以查看,上文提到的日志文件,里面或许可以找到你需要的。

错误三:Manager无法进入

Tomcat进入Server Status 、Manager App、Host Manager报401或403错误

某些情况下可能会用到 Server Status、 Manager App、 Host Manager这三个工具,在tomcat启动主页的靠右边点可以看到这三个选项。一般来说安装完成tomcat,测试成功能进入tomcat主页面,但点击Server Status或Manager App、Host Manager都会先让你输入账号密码,然后出现错误,如下图:

这个时候我们可以通过错误提示进行配置。错误中说你需要设置一个角色和用户名以及密码。那我们就去配置,打开conf目录下的tomcat-users.xml文件,拉到最后,配置好相应的角色和用户名及密码,对应角色拥有的权限在上面图中的错误页面可以看到。配置如下图:

<role />标签

  • manager-gui - allows access to the HTML GUI and the status pages用于可以进入tomcat的Server Status或Manager App,

  • admin-gui - allows access to the HTML GUI可以进入Host Manager,

<user/>标签:配置用户名、密码以及该用户拥有的角色。配置完成后保存并重启tomcat,发现可以通过用户名和密码进入Server Status或Manager App、Host Manager这三个页面了。

本文如有错误,希望您能帮我指出。如有任何问题请直接在网站右上方留言板给我留言。谢谢。

该文章为博主原创,最初发表在我的博客园