当前位置: 首页 > 知识库问答 >
问题:

在tomcat中,部署具有某些上下文的多个应用程序,但要让它们像根应用程序一样思考

胡承载
2023-03-14

我不确定我要问的是正确的方法还是错误的。因此,让我首先澄清我的要求。

到目前为止,我一直将每个应用程序用作根应用程序,并将它们部署在单独的tomcat实例中,但我的应用程序数量现在正在增长,我无法继续为每个应用程序部署单独的tomcat实例。

有两件事让我将每个应用程序部署为root:

>

  • 为了更新应用程序,您必须关闭tomcat实例,这也将停止在同一实例中运行的其他应用程序。我不希望发生这种情况(因为一些用户在一个web应用上生活,或者一些作业在某个应用上运行,所以我不能在任何给定的时间停止所有应用)。

    对于编写url,如果我将Web应用程序部署为root,那么在web-app中我可以简单地编写“/学生/列表”,但是如果我使用一些不同的上下文名称将它们部署在同一个实例中,那么我必须在url之前编写上下文名称,例如“ctxt1/学生/列表”

    为了开发者起见,我不希望他们在web应用程序中的每个url之前都写上上下文名称,也不希望上下文名称出现在用户面前。

    有什么方法可以解决这两个问题吗。我正在考虑迁移到Glassfish来开发一些应用程序。如果glassfish能够解决这些问题,那么我也可以将所有应用程序迁移到glassfish

    其次,我在IIS后面运行tomcat,使用ISAPI。IIS在这里是否有帮助?

  • 共有1个答案

    长孙燕七
    2023-03-14

    您不应该每个应用程序使用一个tomcat。tomcat的数量应该仅在需要时增加(真正需要)。

    你必须杀死整个tomcat是不正确的,对于一个应用程序更新,你应该只重新启动特定的上下文(去http://your.tomcat:8080/manager/html)。

    关于URL,您可以在前面使用apache,将mod\u proxy\u ajp配置为与tomcat对话(请参见:http://httpd.apache.org/docs/2.2/mod/mod_proxy_ajp.html)

     类似资料:
    • 我想部署两个应用程序foo。war和条形图。war到同一个Tomcat实例。他们是否可以侦听不同端口上的连接,例如,foo侦听端口81,bar侦听端口82?如果是,我如何配置?我意识到应用程序没有必要监听不同的端口,但这正是我想要实现的。 此外,如果我将重命名为,使其在根上下文中运行,那么对该Tomcat实例的所有请求都将由foo应用程序处理,因此bar必须部署到单独的Tomcat实例,这是否正确

    • 我正在开发一个简单的应用程序,它使用泽西作为框架来构建API,并使用Jackson来处理JSON。 当我部署应用程序时,通过复制 我很确定这个问题不在java代码中,因为它曾经与*一起工作。jar包含方法。但我厌倦了这一点,希望将其迁移到maven体系结构。 我不会发布我的全部代码,但你可以在这里看到。 为了简化操作,下面列出了我使用的依赖项: jersey json v1.19 什么会导致此错误

    • 完成干净的构建后,我将war文件复制到Tomcat的文件夹中。但是部署会发生两次,并且在上下文已经存在的情况下以异常结束。我错过了什么? 非常感谢您的帮助。

    • 我在tomcat中部署了一个Spring MVC 4应用程序。它工作得很好。我必须克隆这个应用程序才能有几个行为相同但配置不同的应用程序:数据库实例和用于文件管理的文件夹。针对不同的客户。当我将反原始应用程序部署到Linux Tomcat时,它运行良好(https://hostname:8443/app1). 然后,我更改数据库连接设置(数据库名称、用户名和文件夹,以管理一些生成的文件),并将人工

    • 可能是Tomcat每次停止都要删除/conf/catalina/localhost文件夹下的website.xml文件。 localhost文件夹下的website.xml文件如下所示

    • 问题内容: 我有我的申请文件。我需要在根级别进行部署。当前网址为 问题答案: 您有两种选择: 中删除现成的目录,并在部署它之前将war文件重命名为。 部署战争(从你的例子),并配置上下文根在使用你的war文件: 第一个比较容易,但是有点混乱。第二种可能是更优雅的方法。 分享改善这个答案