tomcat - tomcat 和 docbase 的奇怪行为

标签 tomcat tomcat7

我使用的是tomcat 7.0.22

我希望 URL:127.0.0.1:8080 指向位于项目文件夹下的我的 Web 应用程序,而不是 127.0.0.1:8080/Project/

所以我在server.xml中定义

<Context docBase="Project" path="/"  />

这在我第一次启动 tomcat 时有效。

如果我采取以下行动:

  1. 停止tomcat
  2. 删除war和项目文件夹
  3. 将 war 从部署服务器移动到 webapp 文件夹
  4. 启动tomcat

同样 - 我必须输入 127.0.0.1:8080/Project/ 才能到达应用程序。

如果我,除了上面4个步骤之外还要做:

  1. 停止tomcat
  2. 启动tomcat

它工作正常,我可以在 127.0.0.1:8080/

访问应用程序

我能做些什么来防止额外的停止和启动?

最佳答案

几个问题:

  1. 不要输入<Context>server.xml .相反,使用首选部署技术放置您的 [appname].xml文件进入 conf/[service]/[engine]目录。对你来说,这可能意味着 conf/Catalina/localhost .

  2. 不要设置 path完全不要将其设置为 "/"如果您要设置它:正确的 path根 webapp 是 "" (空的,不是 / )。

  3. 写下你的名字 [appname].xml成为ROOT.xml

  4. 移动您的 Project Tomcat 之外的文件夹 appBase (webapps/ 目录)并使用完全限定的路径名​​作为 docBase 引用它.

如果您只做两件事,您就可以避免上述所有错误:

$ mv webapps/Project webapps/ROOT

...并删除 <Context>来自你的 server.xml完全。

哦,你应该升级 Tomcat:你目前落后 7 个小版本,这七个小版本中有一些好东西。

关于tomcat - tomcat 和 docbase 的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12092739/

相关文章:

javascript - 在 eclipse 中创建一个空白项目或使 Intellij 像 eclipse 一样自动完成

java - 如何用http2.0启动tomcat

Tomcat7、Log4j Container和WebApp级别的配置

java - 如何让war文件占用更少的内存

java - 在本地覆盖 servlets load-on-startup

tomcat7 - Tomcat 部署失败后停止?

java - 内存不足 Tomcat(无法创建新的 native 线程)

tomcat - 我们可以在tomcat中部署两个同名的war文件吗?

java - SpringMVC(Intellij)的 404 错误

mysql - BroadLeafCommerce : DemoSite not showing products