最初我有一个名为“admin”的webapp正常运行,部署在tomcat 6的$ CATALINA_HOME / webapps /目录中。现在我尝试设置一个虚拟主机来运行这个webapp。
Step1:我在$ CATALINA_HOME / conf / server.xml
中添加了以下内容<Host name="mysubdomain.domain.com" appBase="keshav">
</Host>
Step2:我创建了一个文件夹$ CATALINA_HOME / keshav
Step3:创建ROOT上下文为$ CATALINA_HOME / keshav / ROOT
Step4:将我的“admin”webapp(位于$ CATALINA_HOME / webapps /中)移至$ CATALINA_HOME / keshav
现在,当我访问http://mysudomain.domain.com/admin/jsp/login.jsp时,它可以很好地启动登录页面。但是当我尝试访问http://mysubdomain.domain.com/admin/Login.do或任何其他struts操作时,它会给我404错误 -
“HTTP状态404 - Servlet操作不可用”
在catalina.out文件中,我收到消息“INFO:Servlet操作当前不可用”
有人可以帮我弄清楚这个配置有什么问题吗?
更新:我也将连接器端口从8080更改为80.由于打开80端口需要root权限,我使用sudo启动tomcat(我正在使用的用户位于sudoers列表中)。
每当我使用sudo运行tomcat时,struts动作的404错误就会发生。如果我将连接器端口从80更改为8080并在不使用sudo的情况下启动,则虚拟主机正常工作..
如果我su到root并启动tomcat,它也可以正常工作。使用sudo似乎导致了这个问题。
答案 0 :(得分:0)
web.xml
中映射到“* .do”模式?我是这么认为的,因为你说它运行正常,但检查不会有任何伤害。答案 1 :(得分:0)
这是ActionServlet的典型特征。它将所有异常映射到UnavailableException,因此即使servlet已经死了也总是会出现“unavaiable”错误。日志中应该有其他信息来向您显示确切原因。
在sudo中运行服务器时,环境会发生变化。也许struts config依赖于某些环境变量或默认工作目录?
尝试“sudo -s catalina.sh
”。这可能有所帮助。