在tomcat中使用一些上下文部署多个应用程序,但让他们认为它们是root应用程序

时间:2013-09-26 13:38:32

标签: java java-ee tomcat iis glassfish

我不确定我所问的是否是正确的方法。所以,让我首先澄清一下我的要求。

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

有两件事让我以root身份部署每个应用程序:

  1. 要更新应用程序,您必须关闭tomcat实例,这也将停止在同一实例中运行的其他应用程序。而且我不希望这种情况发生(因为有些用户在一个网络应用程序上运行,或者某些工作在某个应用程序上运行,因此我无法在任何给定时间停止所有应用程序。)

  2. 对于写网址,如果我以root用户身份部署网络应用,那么在网络应用中,我可以简单地写“/ students / list”,但如果我在同一个实例中使用不同的上下文名称进行部署,那么我必须在网址前面写上下文名称,例如“ctxt1 / students / list”

  3. 为了开发人员的缘故,我不希望他们在web-app中的每个url之前编写上下文名称,而且我也不希望向用户显示上下文名称。

    有什么方法可以解决这两个问题。我正在考虑迁移到Glassfish以获取一些应用程序。如果glassfish提供这些问题的解决方案,那么我也可以将所有应用程序迁移到glassfish

    其次我使用ISAPI在IIS后面运行tomcat。如果IIS在这里有任何帮助吗?

1 个答案:

答案 0 :(得分:1)

每个应用程序不应该使用一个tomcat。只有在需要时(真的需要)才能增加雄猫的数量。

你不得不杀死整个tomcat,对于一个App更新,你应该只重新启动特定的上下文(转到http://your.tomcat:8080/manager/html)。

关于URL,您可以使用前面的apache配置mod_proxy_ajp与tomcat通信(参见:http://httpd.apache.org/docs/2.2/mod/mod_proxy_ajp.html