访问cloudbees-web.xml <context-param>值</context-param>

时间:2013-08-29 19:07:03

标签: cloudbees

我有一个项目正在部署到CloudBees,我在cloudbees-web.xml文件中定义了一些param-names。我想从我的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>

1 个答案:

答案 0 :(得分:0)

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

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

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

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

如果你正在开始后台线程来做工作(严格违反Servlet规范......或者至少超出范围)你启动(并停止 - 不要忘记这些线程通过PortletContext ...也被ServletContextListener ... ...如果你是一个大胆的人并从类静态初始化器开始后台线程...那么你的唯一解决方案是有一个ServletContext拉动配置并将其移交给后台线程...此时你最好从ServletContextListener开始踩踏(也解决了从同一个{加载多个上下文} {1}}文件问题......不是你在RUN @ cloud上有这个问题