JBoss.orgCommunity Documentation
You can download the zip source file from http://labs.jboss.com/jbossas/downloads/.
Uncompress jboss-<release>-src.tar.gz
to extract the archive contents into the location of your choice. You can do this using the tar
archiving utility in Linux (or any other compatible extraction tool). In this example we are assuming your source files were copied in the /jboss
folder.
[user@localhost]$ cd /jboss
[user@localhost]$ tar -xvf jboss-<release>-src.tar.gz
You should now have a directory called jboss-<release>-src.tar.gz
. The next step is to build your source files. In this example we are using Apache ANT. This is discussed in the following section.
Apache Ant is a Java-based build tool. Instead of using an extended model using shell-based commands, Ant is extended using Java classes that use XML-based configuration files. The configuration files call out a target tree that executes various tasks. Each task is run by an object that implements a particular Task interface. This gives you the ability to perform cross platform builds. Please also note that if needed, Ant provides an <exec> task that allows commands to be executed based on the Operating System it is executing on. For more information on Apache ANT please click here.
You will need to build your JBoss Application Server source files before you can run the application server. Apache Ant is shipped with the JBoss Application Server source files and can be executed from the <source_directory>/tools/bin
directory.
The source files can also be built using Apache Maven which is also shipped with the JBoss Application Server source files under <source_directory>/tools/maven
directory. For more information about Apache Maven, please refer to http://maven.apache.org/.
Like Java, you also need to set the environment variables for Apache ANT and/or Apache Maven. The following example illustrates a desirable configuration for the .bashrc
file. In the example the file is edited using the gnome text editor (gedit
).
[user@localhost ~]$ gedit .bashrc # Source global definitions if [ -f /etc/bashrc ]; then /etc/bashrc fi ...... # User specific aliases and functions # The following are the environment variables for Java , ANT and Maven export JAVA_HOME=/usr/java/jdk1.6.0_07/ export PATH=$PATH:$JAVA_HOME/bin export ANT_HOME=/home/downloads/jboss-<source_directory>/tools/ export PATH=$PATH:$ANT_HOME/bin export MAVEN_HOME=/home/downloads/jboss-<source_directory>/tools/maven export PATH=$PATH:$MAVEN_HOME/bin
To implement the changes you've made to the .bashrc
file, type the following on a terminal.
[user@localhost ~]$ source .bashrc [user@localhost ~]$
If any errors are displayed, please check your .bashrc
file for errors and ensure that all directory paths are correct.
To build the JBoss Application Server source files with Apache ANT, from a terminal change directory to where the unzipped source files are. In the following example we are assuming that the source files were copied and unzipped in the logged in user's downloads
folder.
[user@localhost]$ cd /home/user/downloads/jboss-<release>-src
/build
[504][valkyrie: jboss-5.0.0.GA-src]$ ls
aspects hibernate-int security
bootstrap iiop server
build j2se spring-int
client jbossas system
cluster jmx system-jmx
component-matrix jmx-remoting testsuite
connector main thirdparty
console management tomcat
deployment mbeans tools
docbook-support messaging varia
ejb3 pom.xml webservices
embedded profileservice
From the contents of the build
directory above, you can see the build.xml
file which is used by Apache ANT as a configuration file when building your source files.
The next step is to perform the build using Apache ANT as illustrated below.
[571][valkyrie: build]$ ant Buildfile: build.xml _buildmagic:init: Trying to override old definition of task property _buildmagic:init:local-properties: [copy] Copying 1 file to /Users/svn/Releases/jboss-5.0.0.GA-src/build _buildmagic:init:buildlog: configure: [echo] groups: default [echo] modules: bootstrap,main,j2se,mbeans,jmx,system,system-jmx,security,server,deployment,jbossas/remoting,jmx-remoting,jbossas/jmx-remoting,messaging,cluster,varia,iiop,aspects,profileservice,connector,management,ejb3,tomcat,webservices,hibernate-int,console,spring-int ... createthirdparty: [echo] Calling mvn command located in /Users/svn/Releases/jboss-5.0.0.GA-src/build/../tools/maven ... main: BUILD SUCCESSFUL Total time: 21 minutes 34 seconds
A successful build will have the above message. The first time you build the tree it will download a large number of thirdparty files from maven repositories. After that, these will be used from the local repository and the build will be much faster. Typical initial build times can be 30 minutes with subsequent build times 3 minutes. If your build fails, please check the error log and ensure that your configuration files and environment variables are correctly set. The JBoss Application Server files are built under the build/output/jboss-<release>
directory as indicated below.
At this point the JBoss Application Server source files build is a hybrid one (builds in both Ant and Maven) because it declares all JBoss dependencies as maven2 artifacts, however after the dependencies are resolved/imported the legacy ant based build is used to compile and build the distribution. The JBoss Application Server source files will change to a full maven build soon.
[578][valkyrie: build]$ ls VersionRelease.java build.sh local.properties build-distr.xml build.xml output build-release.xml docs pom.xml build.bat eclipse.psf build.log etc [579][valkyrie: build]$ ls output/ jboss-5.0.0.GA [580][valkyrie: build]$
The jboss-<release>
directory contains your successful JBoss Application Server files. You can copy this folder to a different location or run the server from this folder after setting the JBOSS_HOME environment variable in your .bashrc
file. Next you need to set your JBOSS_HOME environment variables. This is discussed in Chapter 6, Setting the JBOSS_HOME variable.
JBossAS 5.0.0.GA can be compiled with both Java5 and Java6. The Java5 compiled binary is our primary/recommended binary distribution. It has undergone rigorous testing and can run under both a Java 5 and a Java 6 runtime. When running under Java 6 you need to manually copy the following libraries from the JBOSS_HOME/client directory to the JBOSS_HOME/lib/endorsed directory, so that the JAX-WS 2.0 apis supported by JBossWS are used:
jbossws-native-saaj.jar |
jbossws-native-jaxrpc.jar |
jbossws-native-jaxws.jar |
jbossws-native-jaxws-ext.jar |
The other option is to download the jdk6 distribution (jboss-5.0.0.GA-jdk6.zip) in which case no configuration changes are required. If you still have problems using JBoss with a Sun Java 6 runtime, you may want to set -Dsun.lang.ClassLoader.allowArraySyntax=true, as described in JBAS-4491. Other potential problems under a Java 6 runtime include:
ORB getting prematurely destroyed when using Sun JDK 6 (see Sun Bug ID: 6520484) |
Unimplemented methods in Hibernate for JDK6 interfaces. |
When JBossAS 5 is compiled with Java 6, support for the extended JDBC 4 API is included in the binary, however this can only be used under a Java 6 runtime. In this case no manual configuration steps are necessary. |
It should be noted that the Java 6 compiled distribution of JBoss AS 5 is still in an experimental stage in terms of testing.