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

list-web-context-param
======================

[[list-web-context-param-1]][[GSRFM00208]][[list-web-context-param]]

list-web-context-param
----------------------

Lists servlet context-initialization parameters of a deployed web
application or module

[[sthref1858]]

=== Synopsis

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

[[sthref1859]]

=== Description

The `list-web-context-param` subcommand lists the servlet
context-initialization parameters 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.

The `list-web-context-param` subcommand lists only parameters that have
previously been set by using the
link:set-web-context-param.html#set-web-context-param-1[`set-web-context-param`(1)]
subcommand. The subcommand does not list parameters that are set only in
the application's deployment descriptor.

For each parameter, the following information is displayed:

* The name of the parameter
* The value to which the parameter is set
* The value of the `--ignoreDescriptorItem` option of the
  `set-web-context-param` subcommand that was specified when the parameter was set
* The description of the parameter or `null` if no description was
  specified when the parameter was set

[[sthref1860]]

=== 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
  listed. If this option is omitted, all parameters of the application
  that have previously been set are listed.

[[sthref1861]]

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

[[sthref1862]]

=== Examples

[[GSRFM718]][[sthref1863]]

==== Example 1   Listing Servlet Context-Initialization Parameters for a Web
Application

This example lists all servlet context-initialization parameters of the
web application `basic-ezcomp` that have been set by using the
`set-web-context-param` subcommand. Because no description was specified
when the `javax.faces.PROJECT_STAGE` parameter was set, `null` is
displayed instead of a description for this parameter.

[source]
----
asadmin> list-web-context-param basic-ezcomp
javax.faces.STATE_SAVING_METHOD = client ignoreDescriptorItem=false
//The location where the application's state is preserved
javax.faces.PROJECT_STAGE = null ignoreDescriptorItem=true //null

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

[[sthref1864]]

=== Exit Status

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

[[sthref1865]]

=== See Also

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

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


