我正在使用 tomcat 7 构建一个 Web servlet,作为它的一部分,它访问一个 RESTful API。目前,该 URL 在我的 servlet 中被硬编码为字符串,但我想将其移出,以便在 servlet 完成后,我可以传入 servlet 应该连接的 URL,而不是硬编码。最好的方法是什么?我读过我应该在 META-INF 文件夹中添加一个 context.xml 文件,但这是否意味着如果我想更改 API 的 URL,我需要重新打包战争?
问问题
1124 次
1 回答
0
使用 init-param 将 servlet 的配置扩展为标准 web.xml 文件:
<servlet>
<servlet-name>My servlet</servlet-name>
<servlet-class>com.foo.bar.MyServlet</servlet-class>
<init-param>
<description>Restful API URL</description>
<param-name>restfulApiUrl</param-name>
<param-value>http://www.foo.com/api/</param-value>
</init-param>
</servlet>
并从您的 servlet 初始化方法访问它:
private String restulApiUrl;
@Override
public void init(ServletConfig config) throws ServletException {
restulApiUrl = config.getInitParameter("restfulApiUrl");
}
这确实会迫使您在更改值时重新打包战争,除非您将应用程序部署为爆炸战争。
您当然可以想象许多其他解决方案:使用系统属性(在 Tomcat 启动时传递),将其存储在启动时读取的文件中,将其存储在数据库中等。
于 2013-03-29T22:27:11.987 回答