linux下使用 Tomcat 的几个坑

总结:用sudo su - 后的身份启动tomcat,可选用 bin下的  ./catalina.sh run命令以显示启动过程中可能的报错信息

1、普通用户是无法使用0~1023的熟知端口的,需要 sudo su - 切换到root身份才可以

之前把sever.xml里的port改为1023以上的都可以,就是改为熟知端口时启动后连接时报connection refused错误,以root身份启动Tomcat可以解决此问题: 注意是 sudo su - 而不是sudo su

 

2、启动时可以用Tomcat bin下的 ./catalina.sh run命令,这样可以看到启动过程中的错误信息

之前是直接用./startup.sh 显示启动成功,但实际上日志里报错了:

java.net.BindException: Permission denied <null>:80

......

Caused by: java.net.BindException: Permission denied

......

SEVERE: Failed to initialize connector [Connector[HTTP/1.1-80]]
org.apache.catalina.LifecycleException: Failed to initialize component [Connector[HTTP/1.1-80]]

由于刚开始时一直用./startup.sh启动tomcat,显示启动成功,但实际上报错了没打出来,在这上面debug了好久。

报上述错误的原因就是普通用户无法使用熟知端口,需要切换到root身份:sudo su - ,然后启动

3、安装好java后在/etc/profile里配置的环境变量是对所有用户有效的,但是出现普通用户能使用java命令而 sudo su后运行java时报commomd not found:改为sudo su -

这是因为su是切换用户存取权限,但是没有获得环境变量,所以PATH没有被带入;su -是完全的切换用户,可以获得环境变量,所以可以找到JAVA_HOME

4、对于文件上传,Tomcat默认会接收文件内容并在Tomcat的临时目录下创建相应临时文件(不是在所在机器的临时目录如Linux下的/tmp)。

 

posted @ 2015-05-02 14:21  March On  阅读(1304)  评论(0编辑  收藏  举报
top last
Welcome user from
(since 2020.6.1)