Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 4.0

Jetty in JBoss

The following are required to build and run Jetty in JBoss:

  1. jdk1.4 (for JBoss4.0.5) or jdk1.5 (for JBoss4.2.x)
  2. Maven 2.0.4 or later
  3. A JBoss installation see Note
  4. 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:

Code Block
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:

Code Block
mvn clean install

Installation instructions

  1. 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).
  2. ensure you have built the Jetty JBoss module in $jetty.home/extras/jboss+
  3. 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:

Code Block
xml
xml
<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:

Code Block
   <!-- 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.

Tip

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.

Anchor
matrix
matrix

Versions Matrix

Anchor

Version compatibility matrix:

Jetty Version

JBoss Version

JVM Version

Status

6.1.0

4.0.5.GA

JDK 1.4

(tick)

6.1.1

4.0.5.GA

JDK 1.4

(tick)

6.1.2

4.0.5.GA

JDK 1.4

(tick)

6.1.3

4.0.5.GA

JDK 1.4

(tick)

6.1.4

4.0.5.GA

JDK 1.4

(tick)

6.1.5

4.0.5.GA

JDK 1.4

(tick)

6.1.6

4.0.5.GA

JDK 1.4

(tick)

6.1.6

4.2.0.GA

JDK 1.5

(tick)

6.1.8

4.0.5.GA

JDK 1.5

(tick)

6.1.12rc2

4.2.3 GA

JDK 1.5

(tick)

6.1.17

4.0.5.GA

JDK 1.5

(tick)

6.1.18

4.0.5.GA

JDK 1.5

(tick)

6.1.21

4.2.3.GA

JDK1.5

(tick)

Contact the core Jetty developers at www.webtide.com
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