我试图将.war项目部署到我的tomcat7安装中。
在复制之前,我停止服务器,将war复制到/ var / lib / tomcat7 / webapps,然后在复制后重启服务器。
当服务器启动时,内容被复制到它自己的目录中,但我得到404状态'尝试从浏览器访问时。
其他war文件有效,而且这个war文件在Eclipse Java EE中使用时也可以工作,所以我不确定是什么问题。
我使用的是Ubuntu 12.04和Tomcat7。
答案 0 :(得分:3)
从评论中判断,当你得到'#34;许可被拒绝"在临时文件上,这个IMHO通常表明你已经将tomcat作为一个不同的用户启动了 - 通常当你第一次以root身份启动tomcat(以root身份创建所有临时文件)然后作为一个无特权用户(谁可以&#t覆盖临时文件。)
从技术上讲,当你再次以root身份运行时,问题可能会消失,但是,这是一个安全隐患,如果你想测试效果,你应该这样做。正确的方法是修复临时文件的权限,然后永远再次以root身份运行。
执行此操作的好方法(特别是如果您作为守护程序/服务运行)是让启动脚本自动在temp,work和log目录上设置所需的所有者/权限(可能更多,您必须尝试)然后断言tomcat作为该所有者启动。启动守护程序通常以root身份完成,因此启动脚本可能具有执行所有这些操作的正确权限:chown
,chmod
和su
是您的朋友。
/etc/init.d/tomcat(在ubuntu上)中一个非常简单的tomcat启动脚本如下所示(user:tomcat,location:/ opt / tomcat):
# Tomcat auto-start
#
### BEGIN INIT INFO
# Provides: tomcat
# Required-Start: $apache2
# Required-Stop: $apache2
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# X-Interactive: true
# Short-Description: Start/stop tomcat server
### END INIT INFO
export JAVA_HOME=/usr/lib/jvm/default-java
cd /opt/tomcat
chown -R tomcat webapps conf temp logs work
case $1 in
start)
sudo -u tomcat /opt/tomcat/bin/startup.sh
;;
stop)
sudo -u tomcat /opt/tomcat/bin/shutdown.sh
;;
restart)
sudo -u tomcat /opt/tomcat/bin/shutdown.sh
sudo -u tomcat /opt/tomcat/bin/startup.sh
;;
esac
exit 0
有了这个,我可以做sudo service tomcat restart
(例如)并且不再需要注意适当的权限