在tomcat中管理rest web app主机名url

时间:2014-04-17 03:23:09

标签: java rest tomcat

之前可能会问这个问题,因为这是一个非常常见的练习,但我不确定要搜索什么。

我在一个Tomcat实例上托管了一个rest客户端应用程序,在另一个主机名上的另一个tomcat实例上托管了一个rest服务器。这很好用,但是目前我在java类中使用了硬编码的主机名。如何在其余客户端内对主机名进行参数化,以便在不重新启动托管其他客户端的tomcat的情况下允许将来进行更改?

3 个答案:

答案 0 :(得分:1)

您可以采用多种解决方案,包括(但不限于):

  1. 在客户端服务器上的属性或xml文件中查找服务器主机名(每次要进行REST调用)
  2. 在客户端应用程序中提供一种机制来配置服务器主机名并将其存储在内存中
  3. 在LDAP或AD等目录中或数据库中查找服务器主机名(每次要进行REST调用)
  4. 如果您不想每次都查找该值,您可以使用缓存机制 - 可能一旦读取它,它只会在几秒钟/分钟后或多次调用后过期。

答案 1 :(得分:1)

传递环境变量甚至主机名的一种非常常见的技术是定义一个System变量,您可以使用 java.lang.System.getenv() java.lang.System读取该变量。 getProperty()如果您在应用程序启动时使用Maven在静态常量类中读取此变量,那么该值将在开头设置并保持到应用程序结束时其他涉及的技术,web。 xml,但要保持简单,这将有效。只需将var添加到环境中并阅读即可。

答案 2 :(得分:0)

您始终可以在客户端进程启动期间在参数中传递主机名,然后使用System.getProperty(" hostName")读取这些参数。