2017-06-26 40 views
0

我提供了一个包含servlet的WAR。在这个servlet的来源有默认初始化参数...例如:在WebSphere Liberty中设置servlet初始化参数

@WebInitParam( name = "proxyHttpsPort", value = "9445", description = "EPS Proxy HTTPS port" ),

我不解的是在我的本地WebSphere自由的环境如何为忽略这些默认值。有谁知道如何设置初始化参数的值,以便在加载/启动servlet时,将使用本地提供的值而不是将缺省值插入到应用程序中?

回答

0

当我们定义一个Servlet时,我们可以通过Java注释来实现。例如:

@WebServlet

我们也可以定义初始化参数:

@WebInitParam(name="name", value="value")

一个初始化参数背后的概念是提供一种可通过位置是不同的运行时配置参数,其中解决方案已部署。例如,在一个系统上,初始化参数可能有:

name="passwordFile", value="/etc/mypasswords.txt"

而不同的系统上,我们可能有:

name="passwordFile", value="/tmp/test_passwords.txt"

我们不想硬编码这些值在我们的应用程序中,而是提供了一个可以在运行时被覆盖的默认值。

当我们构建动态Web应用程序以在Java EE上部署时,我们可以通过代码中的注释专门定义servlet,这是当前的首选样式。但是,在注释之前,通过名为web.xml的XML文件来定义动态Web项目(包括其servlet)的特征。在这个文件中,可以提供一大组配置参数,包括servlet和一个servlet的初始化参数。

看来web.xml技术仍然适用于我们,可以与Java注释结合使用。这意味着我们可以通过注释声明我们的Servlet和初始化参数,同时创建一个web.xml文件。如果通过注释找到值并且没有相应的web.xml值,则将使用该注释。但是,如果注释和web.xml定义都存在,那么web.xml定义将是实际使用的定义。由于web.xml是一个“暴露的”配置文件,所以在部署时,我们可以编辑web.xml以为我们希望覆盖的任何内容(包括初始化参数)设置所需的值。