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 PropertyEditor s 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 SQLException s. |
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. |