如何在 Tomcat 7 中创建虚拟目录?

发布于 2024-11-06 07:16:07 字数 701 浏览 0 评论 0原文

Tomcat 安装在 C:\tomcat7\ 但我想将 .war 文件部署在 C:\myapp\xyz 中。例如,我可能有 C:\myapps\xyz\MyApp.war,我应该能够通过路径 http: //本地主机:8080/MyApp

我尝试将其附加到 c:\tomcat7\conf\server.xml 的底部,

      <Host
          name="myapp"
          appBase="c:\myapps\xyz\"
          unpackWARs="true"
          autoDeploy="true">
      </Host>
    </Engine>
  </Service>
</Server>

但这似乎不起作用,因为我没有看到管理控制台中列出了 MyApp,并且无法访问该 URL。我还需要做什么?

另外,稍微不相关,但是,我怎么能不将 war 文件的名称与上下文名称或 URL 路径绑定在一起呢?例如,我希望 http://localhost/coolName 指向 C:\myapps\xyz\MyApp.war。

Tomcat is installed at C:\tomcat7\ but I want to deploy .war files in C:\myapp\xyz. For example, I might have C:\myapps\xyz\MyApp.war and I should be able to reach it with the path http://localhost:8080/MyApp.

I tried appending this to the bottom of c:\tomcat7\conf\server.xml

      <Host
          name="myapp"
          appBase="c:\myapps\xyz\"
          unpackWARs="true"
          autoDeploy="true">
      </Host>
    </Engine>
  </Service>
</Server>

This doesn't seem to work though as I don't see MyApp listed in the management console and I am not able to hit the URL. What else do I need to do?

Also, slightly unrelated but, how can I not have the name of the war file tied to the context name or URL path? For example, I want http://localhost/coolName to point to C:\myapps\xyz\MyApp.war.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

浊酒尽余欢 2024-11-13 07:16:07

不幸的是,Tomcat 按文件名加载战争的方式是一个棘手的限制。

我使用稍微不同的 &特定于操作系统的方法:“符号链接”。这不是直接答案,但无论如何可能会对您有所帮助。

注意事项:

  1. 我使用Linux,但这是
    也可以在 Windows Vista &
    Windows 7.
  2. 使用wars使用这种方法还是很别扭。
    战争是 zip 文件,所以最好
    将你的战争解压成
    以版本命名的文件夹。

解决方案:

创建从 myapps 文件夹到 webapps 文件夹的符号链接(如文件系统上的虚拟目录)。

  • 这启用了“coolName”,
    “coolName-v2”等
  • 每个 webapp
    可能会被保留在
    文件系统中的不同位置
  • 您只需删除并重新添加到不同目标的符号链接即可轻松“回滚”或“升级”(确保在切换时“停止”web应用程序)

Linux:

ln -s target_name link_name

Vista/Windows 7:

mklink link_name target_name

以这种方式,您仍然可以使用 c:\tomcat7\webapps\ ,但指定符号链接如下:(

mklink c:\tomcat7\webapps\coolName\ c:\myapps\xyz\webapp123\

注意:对于 wars,您需要先解压 war)

HTH

Unfortunately the way Tomcat loads a war by filename is a tricky limitation.

I use a slightly different & OS-specific approach: "Symbolic Links". This isn't a direct answer, but may help you out anyway.

Caveats:

  1. I use Linux, but this is
    also possible in Windows Vista &
    Windows 7.
  2. using wars is still awkward using this method.
    Wars are zip files, so best to
    unzip your war into a
    version-named folder.

Solution:

Create symbolic links (like a Virtual Directory on the filesystem) from your myapps folder into the webapps folder.

  • This enables "coolName",
    "coolName-v2", etc.
  • each webapp
    could potentially be kept in
    different places in the filesystem
  • You can easily 'roll back' or 'upgrade' just by removing and re-adding symbolic links to different targets (make sure to "stop" the webapp while switching)

Linux:

ln -s target_name link_name

Vista/Windows 7:

mklink link_name target_name

In this way, you can still use c:\tomcat7\webapps\ , but specify symbolic links as follows:

mklink c:\tomcat7\webapps\coolName\ c:\myapps\xyz\webapp123\

(Note: For wars, you'd need to unzip the war first)

HTH

你丑哭了我 2024-11-13 07:16:07

您有权设置 Host 条目的 appBase 参数。这是讨论 Windows 下的前一个问题: Apache Tomcat under Windows:更改webapps默认目录

至于如何更改应用程序的名称,请在META-INF目录中添加一个context.xml:将war应用程序名称与war文件名分开

Your right in that you want to set the appBase paramete of the Host entry. Here is a previous question that discusses what it takes under windows : Apache Tomcat under Windows: Changing webapps default directory

As for how to change name of the app add a context.xml in the META-INF directory: Separating war application name from war file name

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文