Appendix A. Server Directory Structure

If you used the zip installation method, installing JBoss Enterprise Application Platform creates a top level directory named jboss-eap-<version>.
If you used the GUI installer, you have defined a custom directory named during installation. In this guide we refer to this top-level directory as the <$JBOSS_HOME> directory.

Table A.1. <JBOSS_HOME>/jboss-as directory structure

Directory Description Important Notes
bin Contains start up, shut down and other system-specific scripts. Basically all the entry point JARs and start scripts included with the JBoss distribution are located in the bin directory. It also contains the configuration scripts which can be used to configure the JVM parameters.
client Stores configuration files and JAR files that may be used by a Java client application (running outside JBoss) or an external web container. You can select archives as required or use jbossall-client.jar.
Unlike early versions of the JBoss Enterprise Application Platform, the jbossall-client.jar is now a MANIFEST only JAR file.
So if the client application copies over the jbossall-client.jar to its classpath, then it also has to copy over all the other jar files listed in the META-INF/MANIFEST.MF file of jbossall-client.jar.
Furthermore, all these JARs, including the jbossall-client.jar, must be placed in the same folder in the client classpath.
common
The lib sub-directory within this common directory, contains all the JAR files which are common to the server configuration sets.
Keeping all common JAR files in one place (rather than in the lib folder of each of the server configuration) reduces the size of the server. It also helps with maintenance as there are fewer files to maintain.
Like some of the other configuration paths, the common and the common/lib directories are available as the system properties jboss.common.base.url (This holds the URL to <JBOSS_HOME>/jboss-as/common directory) and jboss.common.lib.url (This holds the URL to <JBOSS_HOME>/jboss-as/common/lib directory).
docs
Contains the XML DTDs, schemas used in JBoss for reference (these are also a useful source of documentation on JBoss configuration specifics).
This directory also contains example JCA (Java Connector Architecture) configuration files for setting up datasources for different databases (such as MySQL, Oracle, Postgres).
lib Contains start up JARs used by JBoss. This directory contains an endorsed sub-directory which is used as one of the Java Endorsed directories. Refer to the Java Endorsed Standards for more details. Do not place your own JAR files in these directories.
server Contains the server profile sets discussed above. Each of the subdirectories is a different server profile. JBoss ships with minimal, default, production, standard, web and all profile sets. The subdirectories and key configuration files contained in the default profile set are discussed in more detail in subsequent sections.

Important

Do not remove any configuration or JRA files from the common directory location. You may add your own JAR files in the common/lib directory if those JAR files are meant to be used by all the server profile sets.
If you want the JAR files to be available for all the applications deployed in a single server profile (for example, the production profile), then the best location to place these JARs is the <JBOSS_HOME>/server/<PROFILE>/lib directory.

A.1. Server Profile Directory Structure

The directory server profile you are using is effectively the server root while JBoss is running. It contains all the code and configuration information for the services provided by the particular server profile.
It is also where the log output goes and where you deploy applications. The table below shows the directories inside the server profile directory (<JBOSS_HOME>/server/<PROFILE>) and their functions.

Table A.2. Server Profile Directory Structure

Directory Description
conf
The conf directory contains the jboss-service.xml, bootstrap.xml bootstrap descriptor file for a given server profile.
The bootstrap.xml in turn points to various other configuration files which comprise the server bootstrap. This defines the core microcontainer beans that are fixed for the lifetime of the server.
deploy
The deploy directory contains the hot-deployable services (those which can be added to or removed from the running server). It also contains applications for the current server profile.
You deploy your application code by placing application packages (JAR, WAR and EAR files) in the deploy directory.
The directory is constantly scanned for updates, and any modified components will be re-deployed automatically.
The directory monitored may be configured with the applicationURIs property of the BootstrapProfileFactory bean configuration in the <JBOSS_HOME>/jboss-as/server/<PROFILE>/conf/bootstrap/profile.xml file.
deployers In Enterprise Application Platform 5, unlike earlier versions, the deployers (which are responsible for parsing and deploying applications) are located separately in the <JBOSS_HOME>/jboss-as/server/<PROFILE>/deployers folder. This folder contains various deployer JAR files and their configurations in *-jboss-beans.xml files.
lib
This directory contains JAR files (Java libraries that should not be hot deployed) needed by this server profile. You can add required library files for JDBC drivers and other requirements to this directory.
All JARs in this directory are loaded into the shared classpath at start up. Note that this directory only contains those jars unique to the server profile. Jars common across the server profiles are now located in <JBOSS_HOME>/common/lib.

Important

The file used for configuring the default set of ports for the server is available in the <PROFILE>/conf/bindingservice.beans/META-INF folder. The name of the file is bindings-jboss-beans.xml. See the port configuration section for more details on how to use this file.

A.1.1. The default Server Profile File Set

The default server profile file set is located in the <JBOSS_HOME>/server/default directory.
Many of the items in the default profile are found in other pre-configured profile. The sections below will discuss some of these files, their location and their use.

A.1.1.1. Contents of conf directory

The files in the conf directory are explained in the following table.

Table A.3. Contents of conf directory

File Description
bindingservice.beans/* This directory contains the configurations for various ports used by the server.
bootstrap.xml This is the bootstrap.xml file that defines which additional microcontainer deployments will be loaded as part of the bootstrap phase.
bootstrap/* This directory contains the microcontainer bootstrap descriptors that are referenced from the bootstrap.xml file.
jboss-service.xml jboss-service.xml legacy core mbeans that have yet to be ported to either bootstrap deployments, or deploy services. This file will likely be deprecated in the near future.
jboss-log4j.xml This file configures the Apache log4j framework category priorities and appenders used by the server code.
jbossts-properties.xml This file provides the default configuration for the transaction manager.
login-config.xml This file contains sample server side authentication configurations that are applicable when using JAAS based security.
props/* The props directory contains the users and roles property files for the jmx-console.
standardjboss.xml This file provides the default container configurations.
standardjbosscmp-jdbc.xml This file provides a default configuration file for the JBoss CMP engine.
xmdesc/*-mbean.xml The xmdesc directory contains XMBean descriptors for several services configured in the jboss-service.xml file.
java.policy
jax-ws-catalog.xml
jndi.properties
standardjbosscmp-jdbc.xml

A.1.1.2. Contents of deployers directory

The files in the deployers directory are explained in the following table.

Table A.4. Contents of deployers directory

File Description
alias-deployers-jboss-beans.xml This file contains deployers that treat aliases in deployment as true controller context. Which means they will only get active/installed when their original is installed.
bsh.deployer This file configures the bean shell deployer, which deploys bean shell scripts as JBoss mbean services.
clustering-deployer-jboss-beans.xml Clustering-related deployers which add dependencies on needed clustering services to clustered EJB3, EJB2 beans and to distributable web applications.
dependency-deployers-jboss-beans.xml Deployers for aliases.txt and jboss-dependency.xml. jboss-depedency.xml adds generic dependency and aliases.txt adds human-readable names for deployments. For instance, vfszip://home/something/.../jboss-5.0.0.GA/server/default/deploy/some-long-name.ear aliased to ales-app.ear.
directory-deployer-jboss-beans.xml Adds legacy behavior for directories, handling its children as possible deployments. For example, .sar's lib directory to treat the .jar files as deployments.
ear-deployer-jboss-beans.xml JavaEE 5 enterprise application related deployers.
ejb-deployer-jboss-beans.xml Legacy JavaEE 1.4 ejb jar related deployers.
ejb3.deployer This is a deployer that supports JavaEE 5 ejb3, JPA, and application client deployments.
hibernate-deployer-jboss-beans.xml Deployers for Hibernate -hibernate.xml descriptors, which are similar to Hibernate's .cfg.xml files.
jboss-aop-jboss5.deployer JBossAspectLibrary and base aspects.
jboss-ejb3-endpoint-deployer.jar
jboss-ejb3-metrics-deployer.jar
jboss-jca.deployer jboss-jca.deployer description
jboss-threads.deployer
jbossweb.deployer The JavaEE 5 servlet, JSF, JSP deployers.
jbossws.deployer The JavaEE 5 web services endpoint deployers.
jsr77-deployers-jboss-beans.xml Deployers for creating the JSR77 MBeans from the JavaEE components.
logbridge-jboss-beans.xml
messaging-definitions-jboss-beans.xml
metadata-deployer-jboss-beans.xml Deployers for processing the JavaEE metadata from xml, annotations.
seam.deployer Deployer providing integration support for JBoss Seam applications.
security-deployer-jboss-beans.xml Deployers for configuration the security layers of the JavaEE components.
xnio.deployer

A.1.1.3. Contents of deploy directory

The files in the deploy directory are explained in the following table.

Table A.5. Contents of "deploy" directory

File Description
ROOT.war ROOT.war establishes the '/' root web application.
admin-console.war This is the admin-console application which provides a web interface for JBoss Enterprise Application Platform administrators. By default the admin-console is available at http://localhost:8080/admin-console.
cache-invalidation-service.xml This is a service that allows for custom invalidation of the EJB caches via JMS notifications. It is disabled by default.
ejb2-container-jboss-beans.xml ejb2-container-jboss-beans.xml UserTransaction integration bean for the EJB2 containers.
ejb2-timer-service.xml ejb2-timer-service.xml contains the ejb timer service beans.
ejb3-connectors-jboss-beans.xml ejb3-connectors-jboss-beans.xml EJB3 remoting transport beans.
ejb3-container-jboss-beans.xml ejb3-container-jboss-beans.xml UserTransaction integration bean for the EJB3 containers.
ejb3-interceptors-aop.xml ejb3-interceptors-aop.xml defines the EJB3 container aspects.
ejb3-timerservice-jboss-beans.xml ejb3-timerservice-jboss-beans.xml configures the EJB3 TimerService
hdscanner-jboss-beans.xml hdscanner-jboss-beans.xml the deploy directory hot deployment scanning bean
hsqldb-ds.xml Configures the Hypersonic embedded database service configuration file. It sets up the embedded database and related connection factories.
http-invoker.sar Contains the detached invoker that supports RMI over HTTP. It also contains the proxy bindings for accessing JNDI over HTTP.
jboss-local-jdbc.rar Is a JCA resource adaptor that implements the JCA ManagedConnectionFactory interface for JDBC drivers that support the DataSource interface but not JCA.
jboss-xa-jdbc.rar JCA resource adaptors for XA DataSources.
jbossweb.sar An mbean service supporting TomcatDeployer with web application deployment service management.
jbossws.sar Provides JEE web services support.
jca-jboss-beans.xml The jca-jboss-beans.xml file is the application server implementation of the JCA specification. It provides the connection management facilities for integrating resource adaptors into the server.
jms-ra.rar jms-ra.rar JBoss JMS Resource Adapter.
jmx-console.war This is the jmx-console application which provides a simple web interface for managing the MBean server. By default, the jmx-console is available at http://localhost:8080/jmx-console
jmx-invoker-service.xml jmx-invoker-service.xml is an MBean service archive that exposes a subset of the JMX MBeanServer interface methods as an RMI interface to enable remote access to the JMX core functionality.
jsr-88-service.xml jsr-88-service.xml provides the JSR 88 remote deployment service.
legacy-invokers-service.xml legacy-invokers-service.xml the legacy detached jmx invoker remoting services.
management/console-mgr.sar Provides the Web Console. It is a web application/applet that provides a richer view of the JMX server management data than the JMX console. You may view the console using the URL http://localhost:8080/web-console/.
messaging/destinations-service.xml Configures the default Dead Letter queue and the Expiry queue.
messaging/hsqldb-persistence-service.xml Provides JMS state management using Hypersonic.
messaging/messaging-service.xml The messaging-service.xml file configures the core JBoss Messaging service.
mail-ra.rar mail-ra.rar is a resource adaptor that provides a JavaMail connector.
mail-service.xml The mail-service.xml file is an MBean service descriptor that provides JavaMail sessions for use inside the server.
profileservice-jboss-beans.xml profileservice-jboss-beans.xml configures the ProfileService, which is a generalization of the server configuration.
properties-service.xml The properties-service.xml file is an MBean service descriptor that allows for customization of the JavaBeans PropertyEditors as well as the definition of system properties.
quartz-ra.rar quartz-ra.rar is a resource adaptor for inflow of Quartz events
remoting-jboss-beans.xml remoting-jboss-beans.xml contains the unified invokers based on JBoss Remoting.
scheduler-service.xml The scheduler-service.xml and schedule-manager-service.xml files are MBean service descriptors that provide a scheduling type of service.
security/security-jboss-beans.xml security-jboss-beans.xml security domain related beans.
security/security-policies-jboss-beans.xml security-policies-jboss-beans.xml security authorization related beans for ejb and web authorization.
schedule-manager-service.xml The schedule-manager-service.xml contains sample scheduler configurations. It is disabled by default.
sqlexception-service.xml The sqlexception-service.xml file is an MBean service descriptor for the handling of vendor specific SQLExceptions.
transaction-jboss-beans.xml transaction-jboss-beans.xml JTA transaction manager related beans.
transaction-service.xml transaction-service.xml contains ClientUserTransaction proxy service configuration.
uuid-key-generator.sar The uuid-key-generator.sar service provides a UUID-based key generation facility.
vfs-jboss-beans.xml The vfs-jboss-beans.xml configures the Microcontainer bean exposing the JBoss VFS cache statistics.
xnio-provider.jar XNIO is a centralized management point for network services.

A.1.2. The all Server Profile File Set

The all server profile is located in the <JBOSS_HOME>/server/all directory. In addition to the services in the "default" profile, the all configuration contains several other services in the deploy/ directory as shown below.

Table A.6. Additional Services in deploy directory for all profile

File Description
cluster/deploy-hasingleton-service.xml This provides the HA singleton service, allowing JBoss to manage services that must be active on only one node of a cluster.
cluster/farm-deployment-jboss-beans.xml This provides the farm service, which allows for cluster-wide deployment and undeployment of services.
httpha-invoker.sar This service provides HTTP tunneling support for clustered environments.
http-invoker.sar
iiop-service.xml This provides IIOP invocation support.
juddi-service.sar This service provides UDDI lookup services.
snmp-adaptor.sar This is a JMX to SNMP adaptor. It allows for the mapping of JMX notifications onto SNMP traps.

A.1.3. EJB3 Services

The following table explains the files providing ejb3 services.

Table A.7. EJB3 Services

File Description
ejb3-interceptors-aop.xml This service provides the AOP interceptor stack configurations for EJB3 bean types.
ejb3.deployer This service deploys EJB3 applications into JBoss.
jbossws.sar This provides Java EE 5 web services support.