2018-03-08 tomcat安装、介绍、常见问题 vim
2018-03-11 10:51 受匕图灵 阅读(693) 评论(0) 收藏 举报 1、安装jdk(见我另一篇博客https://www.cnblogs.com/shoubituling/p/9121909.html)
2、下载Tomcat
//通过wget下载。若提示未发现tar包,请通过浏览器搜索其他tar包
wget http://mirrors.shu.edu.cn/apache/tomcat/tomcat-7/v7.0.85/bin/apache-tomcat-7.0.85.tar.gz
3、Tomcat的安装
//Tomcat解压
tar -zxvf apache-tomcat-7.0.85.tar.gz
//启动Tomcat
cd /home/`whoami`/apache-tomcat-7.0.85/bin
./startup.sh
//注:关闭Tomcat,不用执行
./shutdown.sh
4、配置Web管理账号
//修改文件conf/tomcat-users.xml,在元素中添加帐号密码,需要指定角色
vim /home/`whoami`/apache-tomcat-7.0.85/conf/tomcat-users.xml
<tomcat-users>
<user name="admin" password="admin" roles="admin-gui,manager-gui" />
</tomcat-users>
注:vim按i键进入编辑模式,按Esc健退出编辑模式。
vim退出方法:
:w 保存当前编辑文档,不退出,继续等待用户输入命令。在使用w命令时,能够再给编辑文档起一个新的文档名。
:w newfile 把当前文档的内容保存到指定的newfile中,而原有文档保持不变。若newfile是个已存在的文档,则Vim在显示窗口的状态行给出提示信息:File exists (use ! to override)。
:w! newfile 把当前文档的内容保存且替换到指定的已存在的newfile文件中。
:q 退出Vim返回到shell。若在用此命令退出Vim时,编辑文档没有被保存,则Vi在显示窗口的最末行显示如下信息:No write since last change (use ! to overrides)提示用户该文档被修改后没有保存,然后Vim不退出,继续等待用户命令。
:q! Vim放弃所作修改而直接退到shell下。快捷键:shift+zq。按住shift是切换大小写的作用。
:wq 保存退出,w表示写入,不论是否修改,都会更改时间戳。快捷键:shift+zz。
:x 保存退出,如果内容未改,不会更改时间戳。
5、配置端口
//可以修改conf目录下的文件server.xml,修改Connector元素(Tomcat的默认端口是8080),需要重新启动Tomcat服务生效。
vim /home/`whoami`/apache-tomcat-7.0.85/conf/server.xml
<Connector port="9999" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
6、访问Tomcat
//http://ip:端口号/
http://localhost:9999/
7、Tomcat介绍
Tomcat服务器是一个免费的开放源代码的Web应用服务器。最新的Servlet 和JSP规范总是能在Tomcat中得到体现。Tomcat技术先进、性能稳定,而且免费,是目前比较流行的Web应用服务器。
8、Tomcat的目录结构
·bin //存放Tomcat的命令脚本文件
·conf //存放Tomcat服务器的各种配置文件,最主要是server.xml config cofigurator的缩写。
·lib //存放Tomcat服务器支撑jar包
·logs //存放日志文件
·temp //存放临时文件
·webapps //web应用所在目录,外界访问web资源的存放目录
|--- html, jsp, css, js文件等 -- 这些文件一般在web应用根目录下,根目录下的文件外界可以直接访问.
|--- WEB-INF 目录 -- java类、jar包、web配置文件存在这个目录下,外界无法直接访问,由web服务器负责调用.
|--- classes 目录 -- java类
|--- lib 目录 -- java类运行所需要的jar包
|--- web.xml 文件 -- web应用的配置文件
·work //Tomcat的工作目录
9、常见错误解决(来源网址:http://www.jb51.net/article/97431.htm)
9.1、tomcat启动时错误
9.1.1问题:The JAVA_HOME environment variable is not defined This environment variable is needed to run this program
解决:路径问题。
JAVA_HOME=/home/tomcat/j2sdk1.4.2_08(具体值要以实际的jdk安装路径为准)
export JAVA_HOME
CLASSPATH=/home/tomcat/j2sdk1.4.2_08/lib/tools.jar:/home/tomcat/j2sdk1.4.2_08/lib/dt.jar
export CLASSPATH
9.1.2问题:Error occurred during initialization of VM Could not reserve enough space for object heap
解决:在tomcat的bin目录下,catalina.sh文件的tomcat内存参数配置过大,超过机器可用内存总数造成,修改到适当的值即可,修改的参数为:JAVA_OPTS="-Xms50m -Xmx60m"
9.1.3问题:tomcat启动时报某个目录没有权限,启动失败,或者不能执行某些jsp页
解决:tomcat需要tomcat用户具有一些目录和文件的相应权限, 所有目录应该具有读写执行(浏览)的权限,jsp,class文件应该最少具有读权限, 一些文件需要写权限,下面是已知的需要读写权限文件的列表:
$CATALINA_HOME/logs下所有文件
$CATALINA_HOME/work下所有文件
$CATALINA_HOME/publish/main/count.txt文件
$CATALINA_HOME/publish/chatroom/resource下的所有.xml文件
所有上传图片目录都需要写权限。
改变文件目录权限的方法:执行下面命令,设置所有的tomcat安装下的文件和目录,可以保证执行,但是不是很安全。
1. 设置tomcat上级目录/opt所有用户都有读写执行权限: chmod 777 [tomcat的上级目录]
2. 设置tomcat5.0.28目录下的所有文件的属主为tomcat: chown -R tomcat [tomcat安装目录]
3. 设置所有tomcat5.0.28下的所有文件和目录的属主(tomcat)具有读写执行权限 chmod 700 -R /opt/tomcat5.0.28
9.1.4问题:执行startup.sh文件后告诉地址已经使用,导致tomcat不能启动
解决:可能是前一次执行./shutdown.sh文件关闭tomcat时没有停止已经启动的Java进程,而这个进程仍然在监听tomcat所使用的端口,或者有另外一个tomcat正在运行,server.xml文件中的监听端口和当前tomcat冲突。
使用下面命令查看当前系统是否有正在监听的端口(8080--webcache, 90--www或http).
1. 列出所有系统正在监听的端口和绑定的地址 netstat -l
2. 找出当前系统中的所有进程,管道符号过滤输出显示包含java字符串的行
ps -A |grep java
tty time proc
1021 ? java
3. 结束一个指定的进程: kill [进程号]
4. 强制杀死一个进程: kill -9 [进程号]
如果确定不是别的tomcat运行导致的冲突或者没有java进程运行,可以再次运行startup.sh文件启动tomcat
9.2、Tomcat 运行时错误及解决
9.2.1问题: org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Network error IOException: Connection refused: connect)
9.2.2问题:Caused by: java.sql.SQLException: Network error IOException: Connection refused: connect
9.2.3问题:Caused by: java.NET.ConnectException: Connection refused: connect
解决:数据库未开情况下运行tomcat出现的问题,把数据库打开就行了
9.2.4问题:java.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit(IILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)Vat net.sf.cglib.core.ClassEmitter.begin_class(ClassEmitter.java:77)
这个问题是最最常见的,第一次整合ssh的时候会发现这个问题,有时候删除掉相关的包还是会冲突。
解决办法1:把MyEclipse中的hibernate中的有关ASM的包全部删除,将spring中asm包拷贝进去重启就Ok了,有时候需要删除其他文件,到网上找找吧;
解决办法2:Spring 和 Hibernate 共用的一些 jar 文件发生了版本冲突, 删除 WEB-INF/lib/asm-2.2.3.jar 然后重启 Tomcat.
9.2.5问题:javax.servlet.jsp.JspException: Invalid argument looking up property usersVO.account of bean loginForm
解决:一般提示这种错误表示VO中的form没有实例化,在reset方法中new一下就Ok了。养成良好的编码习惯可以避免这种简单错误。
9.2.6问题:严重: Exception loading sessions from persistent storage
解决:tomcat安装目录\work\Catalina\localhost\{webAppName}\SESSIONS.ser,删除此文件
9.3、出现404错误
是因为你所请求的页面不可用!这是response对象的http响应中的状态行404表示当前请求的页面不可用!200表示测试通过。500表示服务器内部发生错误等!
浙公网安备 33010602011771号