The following are required to build and run Jetty in 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.
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:
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 |
$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).$jetty.home/extras/jboss+$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>
|
By default, Jetty will be configured to:
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.
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. |
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.
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 |
|