GWT - 从context.xml加载配置项

时间:2014-09-10 13:36:42

标签: java xml tomcat gwt

我有一个部署到Tomcat 8的GWT RPC应用程序,我希望服务器代码加载一些配置数据(主机名和端口到另一个服务)。否则服务工作正常。我已经阅读了多个建议,但我无法让它发挥作用。

我的Tomcat context.xml中的一个片段(我知道context.xml要求我在更改时重启tomcat - 没关系。)

<Context reloadable="true">

  <Parameter name="config_hostname" value="192.168.2.199" override="false"/>
  <Parameter name="config_port" value="8888" override="false"/>

在我的服务实现中,我有一个setup()方法。在那里我尝试通过以下方式访问配置:

String hostname = getServletConfig().getInitParameter("config_hostname");
String port = getServletConfig().getInitParameter("config_port");
然而,这不起作用。谁能让我走上正轨?

----------------------- update -------------------

我已尝试将信息放在web.xml中,就像这样

<web-app>
<context-param>
    <param-name>hostname</param-name>
    <param-value>192.168.2.199</param-value>
</context-param>
</web-app>

并像这样使用它(两者都有效!):

String h1=getServletConfig().getServletContext().getInitParameter("hostname");
String h2=getServletContext().getInitParameter("hostname");

但是我不想把它放在web.xml中,因为我想为每个部署设置不同的设置。 Tomcat有conf / server.xml och conf / context.xml,我已经尝试了那些但是我在上面的调用中得到了NULL。

哪种方式是存储服务器端配置的最佳方式?请在答案中详细说明。

我已经在http://tomcat.apache.org/tomcat-8.0-doc/jndi-resources-howto.html阅读了doumentation,但我显然不理解它。

1 个答案:

答案 0 :(得分:1)

我在/docs/config/context.html

的tomcat文档中找到了答案

context.xml中的语法应该是(我在这里的beginnig中是正确的):

<Context>
  <Parameter name="hostname" value="<some-ip-address>" override="false"/>
</Context>

并且读取它的调用应该是:

getServletConfig().getServletContext().getInitParameter("hostname");
  OR    
getServletContext().getInitParameter("hostname");

我确信我还有很多东西需要学习(例如,在Tomcat中为单独的Web应用程序设置了分隔参数,但现在这很好。)