【问题标题】:Accessing cloudbees-web.xml <context-param> values访问 cloudbees-web.xml <context-param> 值
【发布时间】:2013-08-30 16:50:17
【问题描述】:

我有一个要部署到 CloudBees 的项目,并且我在我的 cloudbees-web.xml 文件中定义了一些参数名称。我想从我的 java 应用程序中访问这些,但尝试了 System.getProperty(),(String)env.lookup("email.user.name") 都没有运气。

如何从 Java 中访问这些?

下面是我的 cloudbees-web.xml 文件,它位于 WEB-INF 下:

            <?xml version="1.0"?>
            <cloudbees-web-app xmlns="http://www.cloudbees.com/xml/webapp/1">
              <!-- Changed for Privacy -->
              <appid>CB_ACCOUNT/APPNAME</appid>

              <!-- Extra context parameters -->
              <context-param>
                <param-name>email.user.name</param-name>
                <param-value>test@gmail.com</param-value>
              </context-param>
            </cloudbees-web-app>

【问题讨论】:

    标签: cloudbees


    【解决方案1】:

    您可以像访问WEB-INF/web.xml 中定义的任何上下文参数一样访问这些上下文参数,换句话说:

    getServletContext().getInitParameter("email.user.name")
    

    请注意,您需要位于有权访问ServletContext 的类实例中,否则您需要从有权访问它的类传递ServletContext

    通常,您将拥有由 Servlet 或 JSP 页面提供服务的请求……或者您正在使用的框架将提供访问上下文的方法(例如,Java Server Faces 提供了外部上下文概念 - 可以是 ServletContextPortletContext,因为 JSF 支持这两个容器)所以在这些情况下,这只是从您的 servlet 访问参数的问题。

    如果您正在启动后台线程来完成工作(这严格违反 Servlet 规范...或至少超出范围),您应该开始(并且停止 - 不要忘记阻止他们)这些线程通过ServletContextListener... 也被喂给ServletContext... 987654329@ 拉取配置并将其交给后台线程...此时您最好从ServletContextListener 开始运行(也解决了从同一个.war 文件问题加载多个上下文...不是你会在 RUN@cloud 上看到它)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-11-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-05
      • 2014-12-05
      • 2016-11-28
      • 1970-01-01
      相关资源
      最近更新 更多