2014-03-12 111 views
1

我試圖部署一個.war項目到我的tomcat7安裝。Tomcat7 .war項目沒有部署

複製之前,我停止服務器,複製戰到/ var/lib中/ tomcat7/webapps中,然後重新啓動該服務器是否已經複製完成後。

服務器啓動時,其內容被複製出來到它自己的目錄,但是我得到404個狀態試圖從瀏覽器訪問它時。

其他戰爭文件的工作,並在Eclipse的Java EE使用時,這場戰爭文件的工作,所以我不知道是什麼問題。

我使用的是Ubuntu 12.04和Tomcat7。

+1

檢查tomcat/logs /*.*文件中的錯誤,並在解決方案不明顯時發佈錯誤消息。 – kaliatech

+0

我想在發佈問題後檢查錯誤日誌。我收到'java.io.FileNotFoundException:/tmp/gridsam-fallback.log(Permission denied)'。無論如何,我可以授予項目訪問這些文件的權限嗎? –

+0

您的應用程序是否提供web.xml或使用WebInitializer(Servlet API 3)進行初始化? – Bart

回答

3

從評論來看,當你在臨時文件上得到「權限被拒絕」時,這個恕我直言通常表明你已經啓動了tomcat作爲一個不同的用戶 - 當你第一次以root身份啓動tomcat時(通常創建所有臨時文件作爲root),然後作爲非特權用戶(不能覆蓋臨時文件)。

從技術上講,當你以root身份再次運行時,可能問題消失,然而,這是一個安全隱患,如果你想測試的效果,你只能這樣做。這樣做的正確方法是修復臨時文件的權限,然後再以root身份運行永不

一個很好的方式來做到這一點(尤其是如果你作爲守護進程/服務運行)是讓啓動腳本自動設置所需的所有者/權限的溫度,工作和日誌目錄(也許更多,你必須嘗試),然後聲明tomcat是作爲該所有者啓動的。啓動守護進程通常以root身份進行,因此啓動腳本可能具有完成所有這些操作的正確權限:chownchmodsu是您的朋友。

一個非常簡單的啓動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(例如),並且不需要再注意適當的權限