type=page
status=published
title=set-web-context-param
next=set-web-env-entry.html
prev=setup-ssh.html
~~~~~~
set-web-context-param
=====================

[[set-web-context-param-1]][[GSRFM00230]][[set-web-context-param]]

set-web-context-param
---------------------

sets a servlet context-initialization parameter of a deployed web
application or module

[[sthref2083]]

Synopsis

[source,oac_no_warn]
----
asadmin [asadmin-options] set-web-context-param [--help] 
--name=context-param-name 
{--value=value|--ignoredescriptoritem={false|true}} 
[--description=description] application-name[/module]
----

[[sthref2084]]

Description

The `set-web-context-param` subcommand sets a servlet
context-initialization parameter of one of the following items:

* A deployed web application
* A web module in a deployed Java Platform, Enterprise Edition (Java EE)
application

The application must already be deployed. Otherwise, an error occurs.

This subcommand enables you to change the configuration of a deployed
application without the need to modify the application's deployment
descriptors and repackage and redeploy the application.

This subcommand is supported in remote mode only.

[[sthref2085]]

Options

asadmin-options::
  Options for the `asadmin` utility. For information about these
  options, see the link:asadmin.html#asadmin-1m[`asadmin`(1M)] help page.
`--help`::
`-?`::
  Displays the help text for the subcommand.
`--name`::
  The name of the servlet context-initialization parameter that is to be
  set.
`--value`::
  The value to which the servlet context-initialization parameter is to
  be set. +
  Either the `--value` option or the `--ignoredescriptoritem` option
  must be set.
`--ignoredescriptoritem`::
  Specifies whether the servlet context-initialization parameter is
  ignored if it is set in the application's deployment descriptor. When
  a parameter is ignored, the application behaves as if the parameter
  had never been set in the application's deployment descriptor. The
  behavior of an application in this situation depends on the
  application. +
  The possible values are as follows: +
  `false`;;
    The value is not ignored (default).
  `true`;;
    The value is ignored. +
  Either the `--value` option or the `--ignoredescriptoritem` option
  must be set. +

[width="100%",cols="100%",]
|=======================================================================
a|
Note:

Do not use the `--ignoredescriptoritem` option to unset a servlet
context-initialization parameter that has previously been set by using
the `set-web-context-param` subcommand. Instead, use the
link:unset-web-context-param.html#unset-web-context-param-1[`unset-web-context-param`(1)]
subcommand for this purpose.

|=======================================================================

`--description`::
  An optional textual description of the context parameter that is being
  set.

[[sthref2086]]

Operands

application-name::
  The name of the application. This name can be obtained from the
  Administration Console or by using the
  link:list-applications.html#list-applications-1[`list-applications`(1)]
  subcommand. +
  The application must already be deployed. Otherwise, an error occurs.
module::
  The relative path to the module within the application's enterprise
  archive (EAR) file. The path to the module is specified in the
  `module` element of the application's `application.xml` file. +
  module is required only if the servlet context-initialization
  parameter applies to a web module of a Java EE application. If
  specified, module must follow application-name, separated by a slash
  (/). +
  For example, the `application.xml` file for the `myApp` application
  might specify the following web module: +
[source,oac_no_warn]
----
<module>
    <web>
        <web-uri>myWebModule.war</web-uri>
    </web>
</module> 
----
::
  The module would be specified as the operand of this command as
  `myApp/myWebModule.war`.

[[sthref2087]]

Examples

[[GSRFM753]][[sthref2088]]

Example 1   Setting a Servlet Context-Initialization Parameter for a Web
Application

This example sets the servlet context-initialization parameter
`javax.faces.STATE_SAVING_METHOD` of the web application `basic-ezcomp`
to `client`. The description
`The location where the application's state is preserved` is provided
for this parameter.

[source,oac_no_warn]
----
asadmin> set-web-context-param --name=javax.faces.STATE_SAVING_METHOD 
--description="The location where the application's state is preserved" 
--value=client basic-ezcomp

Command set-web-context-param executed successfully.
----

[[GSRFM754]][[sthref2089]]

Example 2   Ignoring a Servlet Context-Initialization Parameter That Is
Defined in a Deployment Descriptor

This example ignores the servlet context-initialization parameter
`javax.faces.PROJECT_STAGE` of the web application `basic-ezcomp`.

[source,oac_no_warn]
----
asadmin> set-web-context-param --name=javax.faces.PROJECT_STAGE
--ignoredescriptoritem=true 
basic-ezcomp

Command set-web-context-param executed successfully.
----

[[sthref2090]]

Exit Status

0::
  command executed successfully
1::
  error in executing the command

[[sthref2091]]

See Also

link:asadmin.html#asadmin-1m[`asadmin`(1M)]

link:list-web-context-param.html#list-web-context-param-1[`list-web-context-param`(1)],
link:unset-web-context-param.html#unset-web-context-param-1[`unset-web-context-param`(1)]


