【发布时间】:2014-07-27 06:39:49
【问题描述】:
我想将外部目录作为资源映射到部署在 tomcat 7 上的应用程序。
我已经在这里完成了线程并尝试了几种方法:
-
我添加了 _Events.groovy,它在我的开发机器(Windows 7)上运行良好,但是当我在生产服务器上部署它时,它不会将外部文件夹映射到上下文根目录。
import org.apache.catalina.* import org.apache.catalina.connector.* import org.apache.catalina.loader.WebappLoader eventConfigureTomcat = {tomcat -> println "changing tomcat setting..." String imageDir = '/usr/imgs'; if (System.properties['os.name']?.toLowerCase()?.contains('windows')) { imageDir = 'c:/usr/imgs'; } println "product image dir:"+imageDir; def context = tomcat?.addWebapp('/imgs' , imageDir) def loader = new WebappLoader(tomcat.class.classLoader) loader.addRepository(new File(imageDir).toURI().toURL().toString()) loader.container = context context.loader = loader } -
我的上下文根名称是 rie,我尝试在 Server.xml 中添加以下上下文,即使这对我不起作用。
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"> . . . <Context path="/rie" docBase="/usr/imgs" reloadable="true" crossContext="true" /> <Context path="" docBase="/usr/imgs" reloadable="true" crossContext="true" /> . . . </Host> 尝试了别名以及它在 tomcat 7 中可用,但也没有用。
我从 2 天开始就在尝试这个,参考了所有线程和教程,但它不起作用。,
我是不是做错了什么?
【问题讨论】:
-
你对这个文件夹有正确的权限吗?尝试像
su - tomcat(或您启动tomcat的任何其他用户名)一样登录系统并访问/usr/imgs。 -
感谢回复,该用户没有权限,所以我将权限更改为777,现在可以使用tomcat用户访问/usr/imgs,但仍然没有运气。还有什么建议吗?
-
您如何更改该权限?递归?通过
chmod -r?现在您必须确保tomcat 确实在tomcat 用户下运行。实际上,您首先必须这样做。运行ps -ef | grep tomcat或top查看tomcat进程的确切用户。 -
太棒了!!!这行得通。问题是我没有递归地改变模式。非常感谢.. :)
-
不客气 :) 请接受这个作为答案。