我安装了 tomcat7 包,如下所示
[root@mongos lib]# yum list installed | grep tomcat7
tomcat7.noarch 7.0.39-1.jpp6 @eng-support-jpackage
tomcat7-admin-webapps.noarch
tomcat7-el-2.2-api.noarch
tomcat7-jsp-2.2-api.noarch
tomcat7-lib.noarch 7.0.39-1.jpp6 @eng-support-jpackage
tomcat7-servlet-3.0-api.noarch
并启用了管理器网络应用程序。
据我了解,tomcat7-servlet-3.0-api 为 Java Web 应用程序提供了所需的 Servlet 3.0 API。
现在,当我使用管理器应用程序部署 war 文件时,tomcat 无法找到 Servlet 3.0 api 中引入的 WebApplicationInitializer 类,该类不再需要在 war 文件内使用 web.xml 文件。
现在我相信 tomcat7 设置存在问题。
为了确认我的说法,我做了以下事情。
如果将相同的 war 文件部署到从以下位置下载的独立 tomcat7 上http://tomcat.apache.org,应用程序运行良好。
有人熟悉 CentOS 上 tomcat7 的正确设置吗?
谢谢。
答案1
以下信息帮助我解决了这个问题。
/etc/sysconfig/tomcat7
确保所有变量都是准确的。尤其是 JAVA_HOME 和 CATALINA_HOME。
tomcat 用户的文件夹所有权
确保 /var/log/tomcat7、/var/lib/tomcat7/webapps 和 /var/cache/tomcat7 的 tomcat 所有权。在大多数情况下,安装时这应该是正确的,但由于 tomcat6 和 tomcat7 的多次安装,可能会处于奇怪的状态。
正确的 tomcat 用户主文件夹
基于 RPM 的安装在 tomcat 用户下运行 tomcat7。我之前安装了 tomcat (v6),用户的主目录设置为 (/usr/共享/tomcat6)。安装 tomcat7 并卸载 tomcat6 时未设置正确的文件夹(/usr/共享/tomcat7)这导致 lib 文件夹位于/usr/共享/tomcat7无法找到,导致加载我的 webapp 时出现问题。您需要编辑密码文件 /etc/passwd文件并使 tomcat 用户拥有正确的主目录。
年龄变化率