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

= unset-web-context-param

[[unset-web-context-param-1]][[GSRFM00248]][[unset-web-context-param]]

== unset-web-context-param

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

[[sthref2242]]

=== Synopsis

[source]
----
asadmin [asadmin-options] unset-web-context-param [--help]
--name=context-param-name application-name[/module]
----

[[sthref2243]]

=== Description

The `unset-web-context-param` subcommand unsets 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 (Jakarta EE) application

When a parameter is unset, its value reverts to the value, if any, that
is set in the application's deployment descriptor.

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

The parameter must have previously been set by using the
`set-web-context-param` subcommand. Otherwise, an error occurs.

[NOTE]
====
Do not use the `unset-web-context-param` subcommand to change the value
of a servlet context-initialization parameter that is set in an
application's deployment descriptor. Instead, use the
link:set-web-context-param.html#set-web-context-param-1[`set-web-context-param`(1)]
subcommand for this purpose.
====

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.

[[sthref2244]]

=== 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
  unset. This parameter must have previously been set by using the
  `set-web-context-param` subcommand. Otherwise, an error occurs.

[[sthref2245]]

=== 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 Jakarta 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,xml]
----
<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`.

[[sthref2246]]

=== Examples

[[GSRFM783]][[sthref2247]]

==== Example 1   Unsetting a Servlet Context-Initialization Parameter for a Web Application

This example unsets the servlet context-initialization parameter
`javax.faces.STATE_SAVING_METHOD` of the web application `basic-ezcomp`.
The parameter reverts to the value, if any, that is defined in the
application's deployment descriptor.

[source]
----
asadmin> unset-web-context-param
--name=javax.faces.STATE_SAVING_METHOD basic-ezcomp

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

[[sthref2248]]

=== Exit Status

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

[[sthref2249]]

=== See Also

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

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


