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

= list-web-env-entry

[[list-web-env-entry-1]][[GSRFM00209]][[list-web-env-entry]]

== list-web-env-entry

Lists environment entries for a deployed web application or module

[[sthref1866]]

=== Synopsis

[source]
----
asadmin [asadmin-options] list-web-env-entry [--help]
[--name=env-entry-name] application-name[/module]
----

[[sthref1867]]

=== Description

The `list-web-env-entry` subcommand lists the environment entries for
one of the following items:

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

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

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

For each entry, the following information is displayed:

* The name of the entry
* The Java type of the entry
* The value to which the entry is set
* The value of the `--ignoreDescriptorItem` option of the
  `set-web-env-entry` subcommand that was specified when the entry was set
* The description of the entry or `null` if no description was specified
  when the entry was set

[[sthref1868]]

=== 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 environment entry that is to be listed. The name is a
  JNDI name relative to the `java:comp/env` context. The name must be
  unique within a deployment component. If this option is omitted, all
  environment entries that have previously been set for the application
  are listed.

[[sthref1869]]

=== 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 environment entry 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`.

[[sthref1870]]

=== Examples

[[GSRFM719]][[sthref1871]]

==== Example 1   Listing Environment Entries for a Web Application

This example lists all environment entries that have been set for the
web application `hello` by using the `set-web-env-entry` subcommand.
Because no description was specified when the `Hello Port` environment
entry was set, `null` is displayed instead of a description for this
entry.

[source]
----
asadmin> list-web-env-entry hello
Hello User (java.lang.String) = techscribe ignoreDescriptorItem=false
 //User authentication for Hello appplication
Hello Port (java.lang.Integer) = null ignoreDescriptorItem=true //null

Command list-web-env-entry executed successfully.
----

[[sthref1872]]

=== Exit Status

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

[[sthref1873]]

=== See Also

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

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


