1

我正在使用 tomcat 7 构建一个 Web servlet,作为它的一部分,它访问一个 RESTful API。目前,该 URL 在我的 servlet 中被硬编码为字符串,但我想将其移出,以便在 servlet 完成后,我可以传入 servlet 应该连接的 URL,而不是硬编码。最好的方法是什么?我读过我应该在 META-INF 文件夹中添加一个 context.xml 文件,但这是否意味着如果我想更改 API 的 URL,我需要重新打包战争?

4

1 回答 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 回答