我試圖部署一個.war項目到我的tomcat7安裝。Tomcat7 .war項目沒有部署
複製之前,我停止服務器,複製戰到/ var/lib中/ tomcat7/webapps中,然後重新啓動該服務器是否已經複製完成後。
服務器啓動時,其內容被複製出來到它自己的目錄,但是我得到404個狀態試圖從瀏覽器訪問它時。
其他戰爭文件的工作,並在Eclipse的Java EE使用時,這場戰爭文件的工作,所以我不知道是什麼問題。
我使用的是Ubuntu 12.04和Tomcat7。
我試圖部署一個.war項目到我的tomcat7安裝。Tomcat7 .war項目沒有部署
複製之前,我停止服務器,複製戰到/ var/lib中/ tomcat7/webapps中,然後重新啓動該服務器是否已經複製完成後。
服務器啓動時,其內容被複製出來到它自己的目錄,但是我得到404個狀態試圖從瀏覽器訪問它時。
其他戰爭文件的工作,並在Eclipse的Java EE使用時,這場戰爭文件的工作,所以我不知道是什麼問題。
我使用的是Ubuntu 12.04和Tomcat7。
從評論來看,當你在臨時文件上得到「權限被拒絕」時,這個恕我直言通常表明你已經啓動了tomcat作爲一個不同的用戶 - 當你第一次以root身份啓動tomcat時(通常創建所有臨時文件作爲root),然後作爲非特權用戶(不能覆蓋臨時文件)。
從技術上講,當你以root身份再次運行時,可能問題消失,然而,這是一個安全隱患,如果你想測試的效果,你只能這樣做。這樣做的正確方法是修復臨時文件的權限,然後再以root身份運行永不。
一個很好的方式來做到這一點(尤其是如果你作爲守護進程/服務運行)是讓啓動腳本自動設置所需的所有者/權限的溫度,工作和日誌目錄(也許更多,你必須嘗試),然後聲明tomcat是作爲該所有者啓動的。啓動守護進程通常以root身份進行,因此啓動腳本可能具有完成所有這些操作的正確權限:chown
,chmod
和su
是您的朋友。
一個非常簡單的啓動tomcat在/etc/init.d/tomcat腳本(在Ubuntu)看起來像這樣(用戶:tomcat的,位置:/ 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
(例如),並且不需要再注意適當的權限
檢查tomcat/logs /*.*文件中的錯誤,並在解決方案不明顯時發佈錯誤消息。 – kaliatech
我想在發佈問題後檢查錯誤日誌。我收到'java.io.FileNotFoundException:/tmp/gridsam-fallback.log(Permission denied)'。無論如何,我可以授予項目訪問這些文件的權限嗎? –
您的應用程序是否提供web.xml或使用WebInitializer(Servlet API 3)進行初始化? – Bart