type=page
status=published
title=list-jndi-entries
next=list-jndi-resources.html
prev=list-jms-resources.html
~~~~~~

= list-jndi-entries

[[list-jndi-entries-1]][[GSRFM00178]][[list-jndi-entries]]

== list-jndi-entries

Browses and queries the JNDI tree

[[sthref1584]]

=== Synopsis

[source]
----
asadmin [asadmin-options] list-jndi-entries [--help]
[--context context_name]
[target]
----

[[sthref1585]]

=== Description

Use this subcommand to browse and query the JNDI tree.

This subcommand is supported in remote mode only.

[[sthref1586]]

=== 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.
`--context`::
  The name of the JNDI context or subcontext. If context is not
  specified, all entries in the naming service are returned. If context
  (such as `ejb`) is specified, all those entries are returned.

[[sthref1587]]

=== Operands

target::
  This operand specifies the JNDI tree to browse.
  Possible values are as follows:

  `server`;;
    Browses the JNDI tree for the default {productName} instance
    (default). The default instance is the domain administration server
    (DAS).
  `domain`;;
    Browses the JNDI tree for the current domain.
  cluster-name;;
    Browses the JNDI tree for the specified cluster.
  instance-name;;
    Browses the JNDI tree for the specified {productName} instance.

[[sthref1588]]

=== Examples

[[GSRFM677]][[sthref1589]]

==== Example 1   Browsing the JNDI Tree

This example browses the JNDI tree for the default {productName}
instance.

[source]
----
asadmin> list-jndi-entries
java:global: com.sun.enterprise.naming.impl.TransientContext
jdbc: com.sun.enterprise.naming.impl.TransientContext
ejb: com.sun.enterprise.naming.impl.TransientContext
com.sun.enterprise.container.common.spi.util.InjectionManager:
com.sun.enterprise.container.common.impl.util.InjectionManagerImpl

Command list-jndi-entries executed successfully.
----

[[sthref1590]]

=== Exit Status

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

[[sthref1591]]

=== See Also

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

link:create-jndi-resource.html#create-jndi-resource-1[`create-jndi-resource`(1)],
link:delete-jndi-resource.html#delete-jndi-resource-1[`delete-jndi-resource`(1)],
link:list-jndi-resources.html#list-jndi-resources-1[`list-jndi-resources`(1)]


