最初我有一个叫做“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