我在Tomcat 6.0服务器上运行了一个GWT Servlet。此服务器充当另一个服务的代理。此最终服务可能在我的网络中的不同IP和/或端口中运行。
如何配置我的GWT Servlet以连接到我的任何服务而无需手动修改web.xml文件?
我正在使用以下命令初始化我的servlet:
<!-- Servlets -->
<servlet>
<servlet-name>MyServlet</servlet-name>
<servlet-class>com.proxy.MyServletServiceImpl</servlet-class>
<init-param>
<param-name>serverAddress</param-name>
<param-value>192.168.1.10</param-value>
</init-param>
<init-param>
<param-name>serverPort</param-name>
<param-value>55005</param-value>
</init-param>
</servlet>
从我正在进行的MyServletSerciveImpl.java文件中
private void loadConfig() {
ServletConfig config = this.getServletConfig();
serverAddress = config.getInitParameter("serverAddress");
serverPort = Integer.valueOf(config.getInitParameter("serverPort"));
}
我理想的情况是这个配置是默认的,但是应用一些配置文件(一个本地文件,xml,ini,cfg,.....)我可以覆盖默认的web.xml值。
知道怎么做吗?
感谢。
答案 0 :(得分:1)
对于真正的动态配置,您可以将配置对象公开为jmx bean,并让您的servlet使用该bean。
中间解决方案是将配置放在不同的文件中,如xml或属性,或在db表中,并在后台线程中定期读取。
答案 1 :(得分:0)
为了完整性:
public class MyServiceImpl extends RemoteServiceServlet implements
MyService {
private void loadConfig() {
InputStream inStream = this.getServletContext().getResourceAsStream("/WEB-INF/config.properties");
Properties properties = new Properties();
try {
properties.load(inStream);
// properties.getProperty("myValue");
} catch (IOException e) {
Log.error(e.getMessage());
e.printStackTrace();
}
}
....
}