J2EE:Tomcat总结
来源:互联网 发布:数据选择器真值表 编辑:程序博客网 时间:2024/05/31 18:44
一、Tomcat
Tomcat是免费的轻量级web应用服务器,是Java Servet,JavaServer Page、Java表达式语言、Java websocket的一个开源实现。
能够不依赖其它插件,独立提供web服务的效果。
1 不使用tomcat访问html
可以在浏览器地址里使用
file:/C:/HelloWorld.java
以本地文件形式打开。
而上网用的html网址http://12306.cn/xxxx形式,因为有web服务器的存在。
2 启动Tomcat
下载Tomcat,解压缩到某一个盘。
运行E:\Javalearn\tomcat\bin 中的批处理文件startup.bat.
3 部署网页
部署一张图片s.jpeg,把s.jpeg复制到E:\Javalearn\tomcat\webapps\ROOT目录下,
访问http://127.0.0.1:8080/s.jpeg
8080是tomcat默认使用的端口号
二、Tomcat 可能出现的问题
1 JAVA_HOME问题
Tomcat本身是JAVA程序,必须要有JDK才可以执行,所以必须配置JAVA_HOME。
2 CATALINA_HOME未设置问题
分析:Tomcat执行必须依赖CATALINA_HOME或者CATALINA_BASE这两个环境变量。 如果没有在环境变量里配置过,那么会自动采用bin目录的父目录作为CATALINA_HOME和CATALINA_BASE。 如果配置了,而所配置的地方又不是正确的TOMCAT目录,那么就会出现这个错误。
解决:
1. 在环境变量中删除CATALINA_HOME,CATALINA_BASE的配置,记得不仅要检查环境变量,还要检查用户变量。
2. 或者把CATALINA_HOME设置为正确的TOMCAT目录。
3 端口冲突问题
现象:Address already in use: JVM_Bind :80,即表示端口被占用。
日志查看:在TOMCAT目录下的logs目录里,会有一个日志文件:catalina.yyyy-mm-dd.log(当天时间),在这个日志文件里会记载一样的错误:Address already in use: JVM_Bind :80。即表明80端口被占用了。
分析:端口是独占式的,一旦一个程序占用了这个端口,其他程序就不能够再去占用它了。而80端口,有可能是被已经存在的Tomcat占用了,也有可能是被其他不知名的软件占用了,比如Apache,IIS,Oracle等等。
4 启动startup.bat报错
现象:启动startup.bat就会报一大堆错误
检验:打开tomcat/logs目录里的localhost.yyyy-mm-dd.log文件,发现大量的报错信息。
分析:当server.xml, web.xml配置错误的时候,就会将错误信息输出到localhost.yyyy-mm-dd.log文件中。
5 Error FilterStart
现象:404错误,明明有文件,但是就是不能访问。
检验:这个严格地说,也是配置失败,但是tomcat不会大量报错,只会偷偷地来这么一句: startup failed dut to previous errors。
分析:过滤器启动失败就会报这个错。
解决:同样的,过滤器启动失败原因也是多种多样,好在它都会把具体错误信息输出到localhost.yyyy-mm-dd.log
6 持久化异常
Tomcat启动的时候会报一个Exception loading sessions from persistent storage异常
该问题的原因是tomcat的session持久化机制引起的,tomcat这个功能本身的用意在于重启tomcat后保存之前的session,Tomcat会把session持久化在%TOMCAT%/work/Catalina/localhost/session.ser 这个文件里。 但是因为tomcat非正常关闭,所以这个文件正确的结束(无EOF标记)
解决办法治标: 只需要删除 session.ser文件即可。
解决办法治本:关闭tomcat的持久化功能,就能一劳永逸的解决这个问题。具体为修改conf下的server.xml文件。在项目的context间加入一句代码
<Context path="/" docBase="D:\\project\\j2ee\\web" debug="0" reloadable="false" > <Manager className="org.apache.catalina.session.PersistentManager" saveOnRestart="false"/></Context>
重启tomcat!!
三、修改端口
server.xml
tomcat的端口配置相关信息在 server.xml中
E:\Javalearn\tomcat\conf\server.xml文件中找到8080端口
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8543" />
使用的是8080端口,把它修改为80,保存。
重启Tomcat,运行startup.bat !!
80 端口
此时,可以通过http://127.0.0.1/s.jpeg访问网页。
80端口是web 服务默认的端口号,所以不需要显式的写端口号。
四、端口被占用
1 查看80端口
netstat -ano | findstr "80"
查看 端口号包含”80”的占用情况
查询结果找到 80,8009,8005 (这三个都包含80)。
对应的pid(process id) 进程id 是33468
2 根据pid(进程id)查询对应的应用程序
tasklist | findstr "33468"
3 根据名称结束该程序
taskkill /f /t /im java.exe
- J2EE:Tomcat总结
- j2ee总结
- J2EE总结
- J2EE总结
- J2EE总结
- J2EE总结
- J2EE 总结
- J2EE 总结
- j2ee tomcat 配置文件学习
- Eclipse J2EE IDE +Tomcat
- 1.J2EE简介&Tomcat
- eclipse J2EE Tomcat配置
- J2EE+Tomcat环境配置
- j2ee + Tomcat 配置
- J2EE:赛迪网J2EE视频总结
- j2ee tomcat https 证书等一系列相关知识的学习总结
- J2EE学习笔记--Tomcat知识点
- tomcat支持哪些j2ee技术!
- 网络攻防之——web应用代理
- 阿里云 OSS开发使用文档
- 论文阅读:You Only Look Once: Unified, Real-Time Object Detection
- MediaRecorder(录音)的用法
- 用模板生成HTML页
- J2EE:Tomcat总结
- AIDL通信 android 在5.0以使用隐式Intent方式来启动Service的问题
- JAVA String 所有方法
- Maven编译:[ERROR] 致命错误: 在类路径或引导类路径中找不到程序包 java.lang
- spring JdbcTemplate().queryForList(String sql, Class<T> elementType)
- 用wait和notify模拟阻塞队列
- 前端 好看实用的颜色大全(16进制)
- 【机器学习】梯度下降算法分析与简述
- vs2013秘钥