如何设置不同的上下文以指向 webapps Tomcat/Java 之外的外部目录

Posted

技术标签:

【中文标题】如何设置不同的上下文以指向 webapps Tomcat/Java 之外的外部目录【英文标题】:How to set up a different context to point to an external directory outside webapps Tomcat/Java 【发布时间】:2011-01-01 20:10:26 【问题描述】:

我成功地通过创建一个 xml 文件来映射外部目录:

<Context path="/uploads" docBase="C:\uploads\photos" crossContext="true"/>

我将此 xml 文件命名为 uploads.xml 并保存在“#Tomcat\conf\Catalina\localhost”下 # = 安装 Tomcat 的目录。 当我从命令行(批处理文件)启动Tomcat(5)时,即startup.bat 可以正常访问图像 "http://localhost:8080/uploads/user1.png"

有效。

实际上我正在使用 IntelliJ Idea 8 进行开发。 当我从 IntelliJ Idea 启动 Tomcat 时,我无法访问上下文,即图像。 “http://localhost:8080/uploads/user1.png” 它显示“HTTP 400 错误请求”

我的项目的上下文路径是 "http://localhost:8080/spark/"

任何帮助或建议都需要尽早。

期待尽可能多的赞赏回复。

谢谢 粉红色

【问题讨论】:

那么,你回答了你的问题? IntelliJ 8?他们刚刚发布了第 10 版。 我不做 IntelliJ,但如果是 Eclipse,你应该配置服务器插件来接管整个服务器,而不是只将工作空间数据部署到服务器。这样,当您启动服务器时,也将部署任何现有的外部 webapps/contexts(不受 IDE 控制)。查看 IntelliJ 的服务器配置中是否存在类似的选项。 嘿 BallusC,Tomcat 有一个 server.xml 文件,即使我尝试在其中放置相同的 docBase 上下文,它仍然不能如我所愿地反映。我遇到的问题是 IntelliJ Idea 从其 Tomcat 上下文描述符启动 Tomcat。我还没有找到好的出路。 【参考方案1】:

IntelliJ 使用它自己的 Tomcat Base,因此您需要在您的项目中添加一个 web facet 并在那里添加您的目录。这是 IntellijJ 9 和 10 的。我没有 8。

【讨论】:

thanx Zeki 是的,我们有一个 context.xml,我们在其中定义当前上下文,即 spark,例如“localhost:8080/spark”,它位于 ../WebRoot/META-INF/context.xml。这是在 IntelliJ Idea 的 Facets 中的 Tomcat 上下文描述符中设置的。我们能否以某种方式定义另一个映射到 webapps 外部目录的 xml 文件。如果是这样,如何专门为图像定​​义另一个上下文(上传和提取到表示层)请告诉我。

以上是关于如何设置不同的上下文以指向 webapps Tomcat/Java 之外的外部目录的主要内容,如果未能解决你的问题,请参考以下文章

韩顺平细说Servlet视频系列之tom相关内容

如何设置虚拟主机以将同一 IP 上的两个端口指向不同的服务器名称?

将 PTE 设置为指向不同的物理页面 - Linux 内核

一个 webapp 的两个单独的 Spring 上下文

关于JavaScript中this指向问题

在javascript中,function里this的指向是怎样的?