我有一个项目正在部署到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>
答案 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上有这个问题