最初我有一個叫做「admin」的webapp運行良好,部署在tomcat 6的$ CATALINA_HOME/webapps /目錄中。現在我嘗試設置一個虛擬主機來運行這個webapp。Tomcat虛擬主機配置不適用於Struts動作
第一步:我加在$ CATALINA_HOME/conf目錄/ server.xml中
<Host name="mysubdomain.domain.com" appBase="keshav">
</Host>
第二步如下:我創建了一個文件夾$ CATALINA_HOME /凱沙夫
第三步:創建的根上下文$ CATALINA_HOME /凱沙夫/ ROOT
第四步:動了我的 「admin」 的Web應用程序(這是$ CATALINA_HOME/webapps /目錄內)到$ CATALINA_HOME /凱沙夫
現在,當我訪問http://mysudomain.domain.com/admin/jsp/login.jsp,它可以很好地啓動登錄頁面。但是當我試圖訪問http://mysubdomain.domain.com/admin/Login.do或任何其他支柱作用它給了我404無錯
「HTTP狀態404 - Servlet的作用是不可用」
在catalina.out的文件,我得到的消息「INFO:Servlet的動作目前無法使用「
任何人都可以請幫我弄清楚這個配置有什麼問題嗎?
更新:我也將連接器端口從8080更改爲80.由於打開80端口需要root權限,我使用sudo啓動tomcat(我正在使用的用戶位於sudoers列表中)。
每當我用sudo運行tomcat時,struts動作的404錯誤都會發生。如果我將連接器端口從80改爲8080,並且啓動時不使用sudo,虛擬主機工作正常。
如果我su啓動tomcat,它也工作正常。使用sudo似乎會導致此問題。
感謝chssply76的回覆。 1)不,我想在我的「admin」webapp中不需要單獨的context.xml,$ CATALINA_HOME/conf中的默認值就足夠了2)是ROOT不是必需的,但我使用它來重定向到「admin 「webapp 3)是的。請檢查我的最新更新.. - Keshav – Keshav
因此,JSP甚至可以在端口80上使用sudo,但操作不行?您是否確定工作的JSP實際上來自您的「虛擬」主機,而不是之前運行的人工產物(例如緩存編譯的或者來自非虛擬應用程序的)?運行sudo可能(通常會)改變你的環境,運行'sudo -V'來查看細節。也許有些事情在類路徑中發生了一些事情......嘗試通過sudo啓動Tomcat,同時端口仍然在8080 - 這應該有助於縮小到sudo vs端口問題。一定要啓動Tomcat清理(沒有任何工作/ tmp; webapp部署到一個地方)。 – ChssPly76