我在Glassfish中遇到有关处理属性的问题我们正在设置Web应用程序我们正在使用Jetty转移到使用Amazon AWS上的GlassFish进行集群环境设置
按照惯例,在处理Servlet时,如果要解析环境变量,则需要使用.properties文件,但是当您使用分布式环境时,这会导致问题(您必须将.properties文件放在每个集群中)节点)。 GlassFish能够通过其管理控制台配置Web容器的属性,这意味着属性将自动通过群集分发
问题是,我正在获取有关检索变量的随机行为。我第一次运行测试应用程序时,我无法检索变量,但是它不再起作用
基本上我是通过管理界面设置环境变量。在Configurations下有3个配置步骤,一个用于群集(通常名为.config),一个是default-config,另一个是server-config。在Web容器下,我在所有3个被调用的" someVal"中放置了一个测试属性。
然后我在Scala中创建了一个快速的Scalatra应用程序(使用Servlet 2.5),我使用这一行来尝试获取属性
getServletContext.getInitParameter("someVal")
我正在做错的任何想法,它总是返回null?
更新 看来我试图做的不是"正确"做事的方式。所以我的问题是,在处理GlassFish中的集群时,提供特定应用程序设置(在.war之外和运行时之外)的标准方法是什么。 myfear表示使用数据库是标准方法,但我自己使用这些配置设置来定义JDBC连接
答案 0 :(得分:0)
我明白了。您指的是Web容器设置 http://docs.oracle.com/cd/E18930_01/html/821-2431/abedw.html
我担心这从未被认为是提供特定于应用程序的配置,我坚信你永远无法从servlet上下文访问这些属性。 因此,如果您正在讨论特定于应用程序的信息,您可以(应该)在web.xml中使用servlet init params。如果你使用
getServletContext().setInitParameter("param", "value");
您可以设置它们(至少在应用程序的运行时)。我不确定这里的集群复制。 正常方式是让您在数据库中进行配置设置。