总结:用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)。