private support for your internal/customer projects ... custom extensions and distributions ... versioned snapshots for indefinite support ... scalability guidance for your apps and Ajax/Comet projects ... development services from 1 day to full product delivery
Jetty in JBoss
The following are required to build and run Jetty in JBoss:
- jdk1.4 (for JBoss4.0.5) or jdk1.5 (for JBoss4.2.x)
- Maven 2.0.4 or later
- A JBoss installation see Note
- JBoss-Jetty module in Jetty 6 (this is in the Jetty-src, under contrib/jboss)
Note: The Jetty-JBoss module is not buildable with versions of JBoss prior to 4.0.5. For runtime compability, please see the Compatibility Matrix below. Some JBoss 4.0.x versions require jsp-2.0 to be used, as the JBoss web console application appears to be incompatible with jsp-2.1.
Build instructions
After checking out the Jetty JBoss module, go to the command line and cd to its home directory. Run:
mvn -P[jdk1.4|jdk1.5] -Djboss.home=path-to-jboss -Djboss.version=jboss-version clean install
where:
- path-to-jboss is the location of your JBoss installation and jboss-version is the version number of your JBoss installation.
- building with profile jdk1.4 will include jsp-2.0 in the sar and building with profile jdk1.5 will include jsp-2.1 instead.
If you want to save yourself some typing, an alternate way to build it is to edit the pom.xml. Edit the <properties> section and fill in the values for the <jboss.home> and <jboss.version> properties. Once these are set in the pom.xml, you can do the build with:
mvn clean install
Installation instructions
- delete the Tomcat files. In JBoss 4.0.x, delete $JBOSS-HOME/server/default/deploy/jbossweb-tomcat55.sar; in JBoss 4.2.x, delete $JBOSS-HOME/server/default/deploy/jboss-web.deployer (or from whichever deployment directory you are using).
- ensure you have built the Jetty JBoss module in $jetty.home/extras/jboss+
- copy the $jetty.home/extras/jboss/target/jetty-JETTY-VERSION-jboss-JBOSS-VERSION.sar+ to your JBoss deploy directory (where JETTY-VERSION is the version of jetty you are using and JBOSS-VERSION is the version of JBoss).
+ Note: The paths given are for Jetty6. In Jetty7, the JBoss module folder has been moved to $jetty.home/modules/contrib/jetty-jboss
You will find that the JBoss web-console refers to a Tomcat servlet, so you might want to comment that out in order to make it usable. You will need to edit the $JBOSS-HOME/server/default/deploy/management/console-mgr.sar/web-console.war/WEB-INF/web.xml file and comment out this section:
<servlet> <servlet-name>Status Servlet</servlet-name> <servlet-class>org.jboss.web.tomcat.tc5.StatusServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>Status Servlet</servlet-name> <url-pattern>/status</url-pattern> </servlet-mapping>
Configuration instructions
By default, Jetty will be configured to:
- have a thread pool containing a minimum of 10 and a maximum of 250 threads
- a SelectChannelConnector on port 8080
This configuration is contained in the META-INF/jboss-service.xml file inside the sar.
In order to change the port, add other types of connectors- SSL, AJP13 - configure a request log, or change the thread pool, you need to un-pack the sar to a temporary directory, edit the META-INF/jboss-service.xml file, repack it and copy the modified sar to the JBoss deploy directory.
Enabling Statistics
Edit the META-INF/jboss-service.xml file from the sar (you'll need to unpack it first). Uncomment the following lines:
<!-- Uncomment for statistics <New id="StatsHandler" class="org.mortbay.jetty.handler.StatisticsHandler"> <Set name="handlers"> --> <!-- Uncomment for statistics </Set> </New> -->
Now re-jar the modified sar. You can use the StatisticsHandlerMBean to retrieve the statistics using the JMX console.
Using jetty-7 there is an org.eclipse.jetty.servlet.StatisticsServlet that you can configure in the jboss management webapps instead of the Tomcat org.jboss.web.tomcat.service.StatusServlet servlet. |
Configuration note about Jetty-SAR and Struts Tiles usage
If you are using Struts Tiles for your web-application, you should probably edit webdefault.xml in the SAR and change dirAllowed to false. If you do not, when you try to insert a tile value (or override one) with an empty value, then Jetty will supply a directory listing for that tile.
Versions Matrix
Version compatibility matrix:
| Jetty Version | JBoss Version | JVM Version | Status |
|---|---|---|---|
| 6.1.0 | 4.0.5.GA | JDK 1.4 | |
| 6.1.1 | 4.0.5.GA | JDK 1.4 | |
| 6.1.2 | 4.0.5.GA | JDK 1.4 | |
| 6.1.3 | 4.0.5.GA | JDK 1.4 | |
| 6.1.4 | 4.0.5.GA | JDK 1.4 | |
| 6.1.5 | 4.0.5.GA | JDK 1.4 | |
| 6.1.6 | 4.0.5.GA | JDK 1.4 | |
| 6.1.6 | 4.2.0.GA | JDK 1.5 | |
| 6.1.8 | 4.0.5.GA | JDK 1.5 | |
| 6.1.12rc2 | 4.2.3 GA | JDK 1.5 | |
| 6.1.17 | 4.0.5.GA | JDK 1.5 | |
| 6.1.18 | 4.0.5.GA | JDK 1.5 | |
| 6.1.21 | 4.2.3.GA | JDK1.5 | |