centos - tomcat上下文资源不工作

标签 centos tomcat6 centos6

我有一个在 CentOS 6 机器上运行的 tomcat6 服务器,到目前为止一切都很好。
在我的一个 webapps 中,我需要使用上下文参数来访问位于文件系统中的外部文件夹,我像这样配置了我的 server.xml(仅 <Host> 标记的相关部分):

<Context path="/userimages" docBase="/home/someuser/faces/32x32" debug="0" reloadable="true" crossContext="true"/>

当我启动服务器时,我收到此错误:
java.lang.IllegalArgumentException: Document base /home/someuser/faces/32x32 does not exist or is not a readable directory

我读了一些关于文件夹权限的东西,所以我将“32x32”和“webapps”文件夹都设置为 777,但它仍然无法正常工作......知道如何解决这个问题吗?

附言在 Windows 操作系统上它可以完美运行

最佳答案

我的建议是将您的数据放入/usr/share/tomcat6/conf/context.xml 中,这是 CentOS 6 上/etc/tomcat6/context.xml 的符号链接(symbolic link)。至少 tomcat6 在重新启动时会读取该文件的内容,并且我很幸运地从那里加载了资源数据。这个文件似乎是 tomcat6 中的新文件。

我使用 strace 检查它正在访问哪些文件,它确实在/var/lib/tomcat6/webapps/*/META-INF/context.xml 等各种文件上运行 stat() 但实际上并没有打开()这些文件,所以我很确定它不会读取内容。也许是一些错误?也许是想象中的 future 功能?

我设法使用这些软件包(来自 yum)在 CentOS 6 上运行 Pandora(使用上下文提供 MySQL 数据库连接详细信息):

apache-tomcat-apis-0.1-1.el6.noarch
java-1.6.0-openjdk-1.6.0.0-1.61.1.11.11.el6_4.i686
mysql-connector-java-5.1.17-6.el6.noarch
tomcat6-6.0.24-52.el6_4.noarch
tomcat6-servlet-2.5-api-6.0.24-52.el6_4.noarch
tomcat6-el-2.1-api-6.0.24-52.el6_4.noarch
tomcat6-admin-webapps-6.0.24-52.el6_4.noarch
tomcat6-jsp-2.1-api-6.0.24-52.el6_4.noarch
tomcat6-lib-6.0.24-52.el6_4.noarch
tomcat6-webapps-6.0.24-52.el6_4.noarch

以防万一其他人试图让 Pandora 在 CentOS 6 上运行,您还需要确保您的符号链接(symbolic link):
 ln -s /usr/share/java/mysql-connector-java.jar /usr/share/tomcat6/lib/

关于centos - tomcat上下文资源不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14749291/

相关文章:

php - 将 PHP 升级到 5.5.9

tomcat - 从 URL 部署

linux - centos 5.x 到 6.x 的兼容性问题

php - 是什么导致 soap 响应在新服务器上不返回任何数据?

service - 创建像 cPanel 这样的服务器面板

Jenkins CentOS Master,Windows Slave 配置

java - 用户文件保存在哪里?

tomcat6 - Tomcat 安装在/usr/share/tomcat6 中的 CATALINA_HOME 和/var/lib/tomcat6 中的 CATALINA_BASE

python-2.7 - 没有名为 os.path : wrong Python being called by bash 的模块

php - WKHTMLTOPDF 在命令行上工作,但从 PHP 生成时返回 0 字节 pdf