首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Tomcat 7-重写context.xml

Tomcat 7-重写context.xml
EN

Stack Overflow用户
提问于 2013-03-12 17:23:14
回答 1查看 3.4K关注 0票数 0

我工作的公司托管了一些Java web应用程序。我们有生产现场和演示网站在同一盒。演示站点通常是生产中看到的内容的副本,只有资源指向演示资源(使用javax.sql.DataSource的数据库和领域)。出于安全考虑,appBase不是在webapp目录中定义的,而是在服务器的其他位置定义的。

我正在将这些应用程序从Tomcat 5迁移到Tomcat 7,Tomcat 5服务器具有在server.xml中定义的所有上下文。这非常方便,因为我只需要将文件复制到主机定义的目录,无论是生产主机、演示主机,还是两者兼而有之,context.xml文件将被server.xml覆盖。

我为Tom7阅读的文档强调,不再推荐这种将上下文放置在server.xml中的安排。

设置服务器的最佳方法是什么,这样我就可以覆盖META目录中包含的context.xml。我希望能够将web应用程序从测试(而不是jar文件)复制到正确的目录(生产或演示),服务器将分别使用生产数据库或演示数据库。

  1. 我在conf/Catalina/'host‘目录中定义了context.xml,并将其重命名为ROOT.xml。我启动了服务器,它加载了ROOT.xml文件,当我测试它时,我收到了一个'404‘。
  2. 我在conf/Catalina/'host‘目录中将ROOT.xml更改为context.xml.default,并重新启动了服务器。这似乎对主机没有影响;它使用了META/context.xml中定义的数据定义。
  3. 我从conf/Catalina/'host‘目录中删除了context.xml.default,并重新启动了服务器。正如预期的那样,它使用了META/context.xml中定义的数据定义。

谢谢你的帮助。

EN

回答 1

Stack Overflow用户

发布于 2013-12-05 08:20:41

通常你有版本控制的项目,但你不喜欢有实时连接-密码/电子邮件-smtp-密码.在版本控制下。

因此,您可以将一个context.xml置于webapp/META-INF/context.xml的版本控制之下,并使用changeme之类的虚拟密码。曾经部署过,一个带有copyXML-Attribute的with应用程序,如果不存在,webapp/META-INF/context.xml就是复制的$TOMCAT_BASE/conf/Catalina/localhost/webapp.xml中。

因此,您可以在部署到changeme后更改$TOMCAT_BASE/conf/Catalina/localhost/webapp.xml密码。这样你就能确定他们

  • 实时密码从来不受版本控制
  • 部署不会覆盖实时密码。

使用TOMCAT_BASE/conf/context.xml只用于全局配置(如果在文件中读取注释):

代码语言:javascript
复制
<!-- The contents of this file will be loaded for each web application -->
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15367930

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档