Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Jetty/Feature/JBoss
Contents
Configuring Jetty in JBoss
To build and run Jetty in JBoss, you need the following:
- JDK 1.4 (for JBoss 4.0.5) or JDK 1.5 (for JBoss 4.2.x) - what about JBoss 5 and 6 (released 12/28/10) and 7 (beta)?
- Maven 2.0.4 or later
- A JBoss installation
- JBoss-Jetty module in Jetty (this is in the Jetty-src, under contrib/jboss)
Note: It is not possible to build the Jetty-JBoss module with versions of JBoss prior to 4.0.5. For runtime compability, see the [#JBoss-matrix 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.
Building the Jetty-JBoss Module
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 includes jsp-2.0 in the SAR, and building with profile jdk1.5 includes jsp-2.1 instead.
Another 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 you set these in the pom.xml, you can do the build with:
mvn clean install
Installing the Jetty-JBoss Module
- 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/modules/contrib/jetty-jboss
- Copy the $jetty.home/modules/contrib/jetty-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).
Notice that the JBoss web-console refers to a Tomcat servlet; you might want to comment that out to make it usable. To do so, edit the $JBOSS-HOME/server/default/deploy/management/console-mgr.sar/web-console.war/WEB-INF/web.xml file and comment out this section:
<Souce lang="java">
<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>
</source>
Configuring the JettyJBoss Module
By default, Jetty is 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.
To change the port, add other types of connectors- [/display/JETTY/Ssl+Connector+Guide SSL], [/display/JETTY/Configuring+AJP13+Using+mod_jk AJP13] - configure a [/display/JETTY/Logging+Requests request log], or change the [/display/JETTY/Bounded+ThreadPool 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 need to unpack it first). Uncomment the following lines:
<!-- Uncomment for statistics <New id="StatsHandler" class="org.eclipse.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 | |
---|---|---|---|
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 |