gpt4 book ai didi

java - 如何在 Tomcat 7 中代理不同的 WAR?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:25:46 28 4
gpt4 key购买 nike

我正在开发一个 Web 应用程序,它由两个独立部分组成 - 身份验证真实应用程序 部分。这两个部分都是部署在(当前)一个 Tomcat 7 实例上的 WAR

因此,我的 webapps 文件夹中有以下两个 WAR:

webapps
|
+- BloggofantAuthentication
|
+- Bloggofant

到目前为止,它们可以在 http://127.0.0.1:8080/BloggofanAuthenticationhttp://127.0.0.1:8080/Bloggofant 上获得。是否可以直接在 Tomcat 上代理WAR(这样我就不必使用Apache httpd 及其mod_proxy模块)?所以最后,服务器上的 WAR 可以按如下方式访问:

  • http://127.0.0.1:8080/BloggofantAuthentication -->http://127.0.0.1/bloggo/
  • http://127.0.0.1:8080/Bloggofant -->http://127.0.0.1/bloggo/fant/

非常感谢关于此主题的任何建议;)

编辑

这是两个解压的 webapp WAR 文件夹的 context.xml 文件:

webapps/BloggofantAuthentication/META-INF/context.xml

<?xml version="1.0" encoding="UTF-8"?>
<Context path="">
<!-- Comment this to enable session persistence across Tomcat restarts -->
<Manager pathname=""/>
</Context>

webapps/Bloggofant/META-INF/context.xml

<?xml version="1.0" encoding="UTF-8"?>
<Context path="/bloggofant">
<!-- Comment this to enable session persistence across Tomcat restarts -->
<Manager pathname=""/>
</Context>

如果我现在想通过 http://127.0.0.1:8080http://127.0.0.1:8080/bloggofant 访问我的应用程序,我会得到一个404 - 页面未找到错误...

最佳答案

您可以使用 context.xml file 配置 Tomcat 为 Web 应用程序提供服务的路径.你可以把它放在 WAR 的 META-INF 目录中,内容为:

<Context path="/bloggo/fant" />

它将在那里提供服务,而不是在默认的 /Bloggofant 路径。

注意 warning about automatic deployment在文档中:

When autoDeploy or deployOnStartup operations are performed by a Host, the name and context path of the web application are derived from the name(s) of the file(s) that define(s) the web application. Consequently, the context path may not be defined in a META-INF/context.xml embedded in the application

在其他地方,文档告诉我们 these both default to true .因此,您需要将它们设置为 false 才能使这些设置生效。

关于java - 如何在 Tomcat 7 中代理不同的 WAR?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19567953/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com