type=page
status=published
title=list-sub-components
next=list-supported-cipher-suites.html
prev=list-secure-admin-principals.html
~~~~~~
list-sub-components
===================

[[list-sub-components-1]][[GSRFM00201]][[list-sub-components]]

list-sub-components
-------------------

lists EJB or servlet components in a deployed module or module of a
deployed application

[[sthref1803]]

Synopsis

[source,oac_no_warn]
----
asadmin [asadmin-options] list-sub-components [--help] 
[--type type]
[--appname appname] [--resources]
modulename
----

[[sthref1804]]

Description

The `list-sub-components` subcommand lists EJB or servlet components in
a deployed module or in a module of a deployed application. If a module
is not specified, all modules are listed. The `--appname` option
functions only when the specified module is stand-alone. To display a
specific module in an application, you must specify the module name with
the `--appname` option.

This subcommand is supported in remote mode only.

[[sthref1805]]

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.
`--type`::
  Specifies the type of component to be listed. The options are `ejbs`
  and `servlets`. If nothing is specified, then all of the components
  are listed.
`--appname`::
  Identifies the name of the application. This option is required when
  the desired output is the subcomponents of an embedded module of a
  deployed application. +
  The name can include an optional version identifier, which follows the
  name and is separated from the name by a colon (`:`). The version
  identifier must begin with a letter or number. It can contain
  alphanumeric characters plus underscore (`_`), dash (`-`), and period
  (`.`) characters. For more information about module and application
  versions, see "link:../application-deployment-guide/overview.html#GSDPG00324[Module and Application Versions]" in
  GlassFish Server Open Source Edition Application Deployment Guide.
`--resources`::
  Lists the application-scoped resources for each subcomponent.

[[sthref1806]]

Operands

modulename::
  Specifies the name of the module containing the subcomponent. +
  The name can include an optional version identifier, which follows the
  name and is separated from the name by a colon (`:`). The version
  identifier must begin with a letter or number. It can contain
  alphanumeric characters plus underscore (`_`), dash (`-`), and period
  (`.`) characters. For more information about module and application
  versions, see "link:../application-deployment-guide/overview.html#GSDPG00324[Module and Application Versions]" in
  GlassFish Server Open Source Edition Application Deployment Guide.

[[sthref1807]]

Examples

[[GSRFM711]][[sthref1808]]

Example 1   Listing Subcomponents

This example lists the subcomponents of the `MEjbApp` application within
the `mejb.jar` module.

[source,oac_no_warn]
----
asadmin> list-sub-components --appname MEjbApp mejb.jar
MEJBBean <StatelessSessionBean>
Command list-sub-components executed successfully.
----

[[sthref1809]]

Exit Status

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

[[sthref1810]]

See Also

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

link:disable.html#disable-1[`disable`(1)],
link:enable.html#enable-1[`enable`(1)],
link:list-components.html#list-components-1[`list-components`(1)]

link:../application-deployment-guide/toc.html#GSDPG[GlassFish Server Open Source Edition Application Deployment
Guide]


