【问题标题】:Can tomcat store variables/properties that get called from a wartomcat 可以存储从战争中调用的变量/属性吗
【发布时间】:2012-07-23 08:44:55
【问题描述】:

我希望能够使用 ANT 将我的应用程序部署到 Tomcat。

我不希望开发和产品的流程有任何不同。然而,两者使用不同的数据库,即 myapp 和 myapp-dev

我怎样才能做到这一点?我可以在不同的tomcat容器中存储一个变量并让应用程序从Tomcat调用数据库的名称吗?

或者如果我的问题很荒谬,那么使用相同流程实现部署到开发和生产的普遍接受的方法是什么。

【问题讨论】:

  • 我之前在catalina.properties 中使用过设置。这些将被设置为系统属性,并且可以由您的应用程序查询。如果您可以使您的配置依赖于系统属性,那么 myapplication.deploy.type=prod...=dev 之类的条目可能就足够了。

标签: java tomcat deployment ant war


【解决方案1】:

一般的方法是将配置字符串放在 JNDI 条目中。

如果 JNDI 不是一个可能的解决方案,那么在正确位置的属性文件(因此它显示在 WAR 文件的类路径中)也很有用,但需要仔细记录。

有没有考虑过让web容器管理数据库连接池,那么只需要一个pr容器,然后通过JNDI就可以获取到了吗?

【讨论】:

  • JNDI 的目的显然是去关联表示配置的对象及其内容。你应该使用 JNDI ! ;)
  • 普通 Web 容器不是必需来提供 JNDI。
  • @ZNK-M Tomcat 只是一个单一的 servlet 容器——我认为它还没有提供 Java EE Web Profile——很多,因此它引入了微妙的供应商依赖性。
  • @Thorjorn 我在我的项目中使用 jndi 来检索数据源。它配置一次,并在服务器上部署的所有项目和 servlet 之间共享。这是文档:tomcat.apache.org/tomcat-7.0-doc/… 我不明白您所说的“单个 servlet 容器”是什么意思。希望你可以在一个 tomcat 实例中部署十几个 servlet。
  • @ZNK-M 当您的 Web 容器使用 JNDI 等 Java EE 技术超出 servlet 规范(我假设您很熟悉)时,您基本上会依赖供应商
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多