Also need to add 

org.jboss.tomcat.ContextClassLoaderInterceptor 

to the ContextInterceptors in server.xml.

Please add that to the documentation.  Without it, the classloader
integration doesn't work.  (at least, it didn't work without it last time I
tried)


-----Original Message-----
From: jBoss CVS Development [mailto:[EMAIL PROTECTED]]
Sent: Tuesday, February 20, 2001 7:15 PM
To: [EMAIL PROTECTED]
Subject: [jBoss-Dev] CVS update: newsite/business jboss-tomcat.html


  User: stark   
  Date: 01/02/20 17:15:18

  Modified:    business jboss-tomcat.html
  Log:
  Updated jboss.conf, jboss.jcml and tomcat conf/server.xml setup for
  the latest EmbeddedTomcat service and jboss cvs codebase.
  
  Revision  Changes    Path
  1.8       +299 -289  newsite/business/jboss-tomcat.html
  
  Index: jboss-tomcat.html
  ===================================================================
  RCS file: /products/cvs/ejboss/newsite/business/jboss-tomcat.html,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- jboss-tomcat.html 2001/02/16 02:30:00     1.7
  +++ jboss-tomcat.html 2001/02/21 01:15:18     1.8
  @@ -1,289 +1,299 @@
  -<html>
  -    <head>
  -        <meta http-equiv="content-type"
content="text/html;charset=iso-8859-1">
  -        <link rel="stylesheet" type="text/css" href="main.css" >
  -    </head>
  -
  -    <body marginwidth="0" marginheight="0">
  -        <table border="0" cellpadding="0" cellspacing="3">
  -            <tr>
  -                <td width="600" valign="top">
  -                    <table border="0" cellpadding="2" cellspacing="0">
  -                        <tr>
  -                                             <td
class="pageheader"><b>JBoss/Tomcat/Apache</b></td>
  -                        </tr>
  -                        <tr>
  -                            <td class="newsheader"><b>A Full J2EE
Stack</b></td>
  -                        </tr>
  -                        <tr>
  -                            <td class="newsbody"><img height="71"
width="100" src="../pictures/tomcat_3.gif" align="left">The
  -                                                      JBoss organization
wants to deliver a complete J2EE based product to the market.
  -                                                      The JBoss
organization decided to integrate the Tomcat engine stack with a running
  -                                                      version of JBoss in
a single VM. Now you can serve all your servlet and JSP needs
  -                                                      with 2 simple
downloads and a couple of configuration files. Check out the
  -                                                      Tomcat <a
href="http://jakarta.apache.org" target="_top">homepage</a> for
  -                                                      information related
to Tomcat.
  -                             <p>The goal of this page is to explain how
to make JBoss automatically start Tomcat,
  -                                                      so that it runs in
the same VM.</p>
  -                             <p>We now run<b> optimized stacks </b>the
JSP/Servlet engine talks natively with
  -                                                      the EJB engine
resulting in dramatic speed increases. Without the optimization
  -                                                      the invocation is
through the network layer. With the optimized layers the
  -                                                      invocation<b> is
native, inVM</b>, within the same stack of APIs</td>
  -                        </tr>
  -                        <tr>
  -                            <td class="newsheader"><b>Features</b></td>
  -                        </tr>
  -                        <tr>
  -                            <td class="newsbody">
  -                                <ul>
  -                                    <li><font face="Myriad
Web,Arial">Parsing of server.xml for full Tomcat configuration
support</font>
  -                                    <li><font face="Myriad
Web,Arial">Support for Tomcat 3.2 and up</font>
  -                                    <li><font face="Myriad
Web,Arial">Coming support for Catalina</font>
  -                                    <li><font face="Myriad
Web,Arial">Full j2ee integration in JMX</font>
  -                                    <li><font face="Myriad
Web,Arial">single startup/shutdown script</font>
  -                                    <li><font face="Myriad
Web,Arial">Separated stacks inVM</font>
  -                                    <li><font face="Myriad
Web,Arial">Integrated stacks inVM</font>
  -                                    <li><font face="Myriad
Web,Arial">J2EE&nbsp;deployer for JBoss/Tomcat</font>
  -                                    <li><font face="Myriad
Web,Arial">Full EAR&nbsp;support</font>
  -                                    <li><font face="Myriad
Web,Arial">JBoss Auto-Deploy for EAR</font>
  -                                    <li><font face="Myriad
Web,Arial">JNDI&nbsp;shared visibility</font>
  -                                    <li><font face="Myriad
Web,Arial">Integrated Security Model</font>
  -                                </ul>
  -                            </td>
  -                        </tr>
  -                        <tr>
  -                            <td class="newsheader"><b>Mailing
lists</b></td>
  -                        </tr>
  -                        <tr>
  -                            <td class="newsbody"><font face="Myriad
Web,Arial">Refer to Tomcat's </font><a href="http://jakarta.apache.org"
target="_top">homepage</a> for questions specific to Tomcat deployment.
  -                                <p>Questions about the J2EE&nbsp;deployer
and the integration should be posted to <a href="lists.html">our lists</a>
(jboss)</td>
  -                        </tr>
  -                        <tr>
  -                            <td class="newsheader"><b>Distribution and
CVS</b></td>
  -                        </tr>
  -                        <tr>
  -                            <td class="newsbody"><font face="Myriad
Web,Arial">
  -                                                     <p>
  -                                                     JBoss Tomcat is
shipped as part of the <a href="binary.html">standard JBoss/Server
package</a>.
  -                                                     However, the current
distribution is based on an earlier version of EmbeddedTomcat that
  -                                                     does <b>not</b>
parse Tomcat's server.xml.  If you don't need server.xml parsed (ie, you're
  -                                                     not trying to
integrate with Apache), then the current version may be the easiest route
for
  -                                                     you.
  -                                                     </p>
  -                                                     <p>
  -                                                     The Pre-2.1 CVS
source contains a new version of EmbeddedTomcat
  -                                                     (plus other
enhancements) that <b>does</b> parse Tomcat's server.xml.
  -                                                     It is recommended
that you use the information provided below.  This
  -                                                     new version of
EmbeddedTomcat will be rolled in to the official 2.1
  -                                                     release.
  -                                                     <br>
  -                                                     </p>
  -                                                     </font>
  -                        </tr>
  -                        <tr>
  -                            <td class="newsheader"><b>How-to build and
install EmbeddedTomcat</b></td>
  -                        </tr>
  -                        <tr>
  -                            <td class="newsbody"><font face="Myriad
Web,Arial">You will need</font>
  -                                <ul>
  -                                    <li><font face="Myriad
Web,Arial">JBoss Pre-2.1</font>
  -                                    <li><font face="Myriad
Web,Arial">Tomcat Version 3.2. </font>
  -                                </ul>
  -                                                             <p>You can
get the latest CVS version of JBoss Pre-2.1 from
  -                                                             <a
href="/zip_archives/">here</a>.  Grab both jboss-cvs.zip and
  -
contrib-cvs.zip.
  -                                                             </p>
  -                                <p>You can get the latest release of
tomcat from the jakarta website. NOTE: This has been tested with tomcat 3.2.
However it won't run on tomcat 3.1, and tomcat 3.3 is not suppported
yet.</p>
  -                                
  -                        <ol>
  -                            <li><strong>Build JBoss</strong> <br>
  -                                                     Build JBoss from the
CVS sources.  This is generally accomplished
  -                                                     by changing to the
src/build directory and executing build.sh (or
  -                                                     build.bat on NT).
  -                                                     <br>
  -                                                     <br>
  -                                                     <li><strong>Build
EmbeddedTomcat</strong> <br>
  -                                                     Build the
EmbeddedTomcat service from the contrib CVS sources.
  -                                                     This is generally
accomplished by changing to the
  -
contrib/tomcat/src/build directory and executing build.sh 
  -                                                     (or build.bat on
NT).  NOTE:  You need to edit build.sh first
  -                                                     and change the
values of JBOSS_HOME and TOMCAT_HOME to fit your
  -                                                     environment.
  -                                                     <br>
  -                                                     <br>
  -                                                     Once the original
build completes, execute <i>build.sh client</i>.
  -                                                     This will create a
new tomcat-test.ear.
  -                                                     <br>
  -                                                     <br>
  -                                                     Once you've built
EmbeddedTomcat,
  -                                                     copy
contrib/tomcat/tomcat-service.jar to $JBOSS_HOME/lib/ext.  Finally,
  -                                                     copy
contrib/tomcat/tomcat-test.ear to $JBOSS_HOME/deploy.
  -                                                     <br>
  -                                                     <br>
  -                            <li><strong>Setup start script</strong> <br>
  -                                In JBOSS_HOME/bin/run.sh (or run.bat),
add the 
  -                                following: <br>
  -                                <pre>
  -TOMCAT_HOME= ... change this to be where Tomcat lives ...
  -
  -# Add all login modules for JAAS-based security
  -# and all libraries that are used by them here
  -
  -if [ "${TOMCAT_HOME}X" != "X" ] ; then
  -    if [ -x $TOMCAT_HOME ] ; then 
  -        echo "Adding jar files in ${TOMCAT_HOME}/lib to CLASSPATH"
  -        CLASSPATH="$CLASSPATH:${TOMCAT_HOME}/lib"
  -        CLASSPATH="$CLASSPATH:${TOMCAT_HOME}/lib/servlet.jar"
  -        CLASSPATH="$CLASSPATH:${TOMCAT_HOME}/lib/webserver.jar"
  -        CLASSPATH="$CLASSPATH:${TOMCAT_HOME}/lib/xml.jar"
  -        CLASSPATH="$CLASSPATH:${TOMCAT_HOME}/lib/jaxp.jar"
  -        CLASSPATH="$CLASSPATH:${TOMCAT_HOME}/lib/parser.jar" 
  -        CLASSPATH="$CLASSPATH:${TOMCAT_HOME}/lib/jasper.jar"
  -        
  -        # Add the tools.jar file so that Tomcat can find the Java
compiler.
  -        CLASSPATH="$CLASSPATH:$JAVA_HOME/lib/tools.jar"
  -    else
  -        echo "TOMCAT_HOME is set, but is an invalid directory"
  -    fi
  -fi
  -</pre>
  -                                and change 
  -                                <pre>
  -java -server -classpath $CLASSPATH org.jboss.Main $@
  -to
  -java -server -classpath $CLASSPATH -Dtomcat.home=$TOMCAT_HOME
org.jboss.Main $@
  -</pre>
  -                            <li><strong>Edit jboss.jcml</strong><br>
  -                                It is located in the conf/default
directory under 
  -                                the base of your JBoss binary
distribution, or 
  -                                the dist/conf/default directory if you
built from 
  -                                the JBoss source. There are some
commented-out 
  -                                lines that deal with Tomcat: 
  -                                <pre>
  -  &lt;!-- 
  -  Uncomment to add embedded tomcat service
  -  &lt;mbean code="org.jboss.tomcat.EmbeddedTomcatService"
name="DefaultDomain:service=EmbeddedTomcat" /&gt;
  -  --&gt;
  -</pre>
  -                                <p>You need to uncomment the mbean line
so it 
  -                                    reads as follows :</p>
  -                                <pre>
  -  &lt;!-- 
  -  Uncomment to add embedded tomcat service
  -  --&gt;
  -  &lt;mbean code="org.jboss.tomcat.EmbeddedTomcatService"
name="DefaultDomain:service=EmbeddedTomcat" /&gt;
  -</pre>
  -                                <p> Further down in the jboss.jcml file,
make 
  -                                    sure your J2eeDeployer is set as:
</p>
  -                                <pre>
  -  &lt;mbean code="org.jboss.deployment.J2eeDeployer"
name="J2EE:service=J2eeDeployer"&gt;
  -    &lt;attribute name="DeployerName"&gt;Default&lt;/attribute&gt;
  -    &lt;attribute
name="JarDeployerName">:service=ContainerFactory&lt;/attribute&gt;
  -    &lt;attribute
name="WarDeployerName">:service=EmbeddedTomcat&lt;/attribute&gt;
  -  &lt;mbean&gt;
  -</pre>
  -                            <li><strong>Edit Tomcat's server.xml</strong>
<br>
  -                                Add the following line to server.xml in
$TOMCAT_HOME/conf/ 
  -                                <pre>&lt;RequestInterceptor
className="org.apache.tomcat.request.Jdk12Interceptor" /&gt;
  -</pre>
  -                            <li><strong>Start JBoss</strong> <br>
  -                                If you start JBoss now by typing
<code>run.sh</code> 
  -                                (or <code>run.bat</code> for Windows) you
should 
  -                                see the following Tomcat related output
in your 
  -                                log messages: 
  -                                <pre>
  -   ...
  -[EmbeddedTomcat] Starting
  -[EmbeddedTomcat] Starting EmbeddedTomcat....
  -[EmbeddedTomcat] Starting tomcat. Check logs/tomcat.log for error
messages 
  -[EmbeddedTomcat] No apps in webapps/ 
  -2001-02-09 11:16:46 - PoolTcpConnector: Starting HttpConnectionHandler on
8080
  -2001-02-09 11:16:46 - PoolTcpConnector: Starting Ajp12ConnectionHandler
on 8007
  -[EmbeddedTomcat] OK
  -2001-02-09 11:16:47 - PoolTcpConnector: Starting Ajp13ConnectionHandler
on 8009
  -[EmbeddedTomcat] Started
  -   ...
  -</pre>
  -                                <p>That's it !! Note that the connection
handlers 
  -                                    are configured from Tomcat's
server.xml file. 
  -                        </ol>
  -                    </td>
  -                        </tr>
  -                    </table>
  -                </td>
  -            </tr>
  -            <tr>
  -                <td class="newsheader" width="600"><b>How-to package and
deploy an EAR file on JBoss/Tomcat</b></td>
  -            </tr>
  -            <tr>
  -                <td class="newsbody" width="600">In order to benefit from
the classloader integration, you have to deploy your application in an EAR
file as recommended by the <a
href="http://java.sun.com/j2ee/download.html#platformspec">J2EE
specification</a>.
  -
  -                    <p>In case you don't want to read all the J2EE spec,
here is a brief summary of what you have to do:</p>
  -                    <ol>
  -                        <li><b>Write your beans and package them in an
ejb-jar file.</b>
  -                         You don't have to do anything special here. See
the <a href="../../projects/jbossweb/manual/developing.html">manual</a> for
details on how to package beans for JBoss.<br>
  -                        &nbsp;
  -                        <li><b>Write your servlets/JSPs and package them
in a war file.</b><br>
  -                         Add a Class-Path attribute to your war files
MANIFEST.MF file
  -                        to reference your beans package. for detailed
information on that see: <a
href="../documentation/J2eeDeployment_howto.html">J2eeDeployment
Howto</a>.<br> 
  -                        Assuming you have a bean deployed under the jndi
name &quot;myBean&quot;, the calls to this bean from your servlets will look
like that:
  -                        <pre>MyBeanHome home = (MyBeanHome)new
InitialContext().lookup(&quot;myBean&quot;);
  -MyBean bean = home.create();</pre>
  -                        <p><b>Notes</b>:</p>
  -                        <ul>
  -                            <li>We don't support lookups in the
&quot;java:&quot; namespace from the servlets yet, but work is in progress
(MF&nbsp;FIXME:&nbsp;I think this is done).
  -                            <li>Since JBoss takes care of the classloader
stuff, you don't have to include much in the WEB-INF/lib directory: you
don't need any of your beans interfaces, and you don't need the old
jboss-client.jar, jnp-client.jar...
  -                        </ul>
  -                        <br>
  -                        <li><b>Package your application in an ear
file</b>.<br>
  -                         An ear file is a jar archive which contains:
  -                        <ul>
  -                            <li>Your jar files
  -                            <li>Your war files
  -                            <li>A deployment descriptor for your
application. This file must be named &quot;application.xml&quot;, and must
be located in the META-INF directory in the ear archive. This file tells
JBoss which modules are EJBs, which ones are web modules, and the context
paths for the web-modules. Here is a sample application.xml file:
  -                            <pre>&lt;?xml version=&quot;1.0&quot;
encoding=&quot;ISO-8859-1&quot;?&gt;
  -
  -&lt;application&gt;
  -    &lt;display-name&gt;My application&lt;/display-name&gt;
  -
  -    &lt;module&gt;
  -        &lt;web&gt;
  -            &lt;web-uri&gt;webmodule.war&lt;/web-uri&gt;
  -            &lt;context-root&gt;/servlets&lt;/context-root&gt;
  -        &lt;/web&gt;
  -    &lt;/module&gt;
  -
  -    &lt;module&gt;
  -        &lt;ejb&gt;beans.jar&lt;/ejb&gt;
  -    &lt;/module&gt;
  -
  -&lt;/application&gt;</pre>
  -                            <p>See also the <a
href="http://java.sun.com/j2ee/dtds/application_1_2.dtd">DTD</a> for
application.xml on Javasoft's website.</p>
  -                        </ul>
  -                        <li><b>Deploy your ear file</b>.<br>
  -                        Option 1: Copy your ear file to JBOSS_HOME/deploy
(wow!)
  -                        <p></p>
  -                        Option 2: Surf to http://yourhost:8082, and find
the
  -                         J2eeDeployer service. Give it the URL of your
ear file (don't forget the protocol, be it http: or file:), and click on the
deploy button.<br>
  -                        &nbsp;
  -                        <li><b>That's it!</b><br>
  -                         The server console should show your application
being deployed
  -                          on Tomcat and JBoss, and your web module should
be available
  -                          on http://yourhost:8080/servlets (assuming the
context-root was &quot;/servlets&quot;).
  -                          <p>
  -                          <b>Note</b>:  Even though JBoss and Tomcat are
  -                           cooperating to dynamically deploy your
application, Apache must
  -                           be configured manually.  This means that for
your application
  -                           to be visible through Apache, you must setup
the appropriate
  -                           JkMount statements in mod_jk.conf.
  -                          </p>
  -                    </ol>
  -                    <p>For a full example including a servlet and an EJB,
see the <a href="/zip_archives/contrib-cvs.zip">contrib</a> module</td>
  -            </tr>
  -            <tr>
  -                <td width="600"></td>
  -            </tr>
  -        </table>
  -    </body>
  -
  -</html>
  +<html>
  +    <head>
  +        <meta http-equiv="content-type"
content="text/html;charset=iso-8859-1">
  +        <link rel="stylesheet" type="text/css" href="main.css" >
  +    </head>
  +
  +    <body marginwidth="0" marginheight="0">
  +        <table border="0" cellpadding="0" cellspacing="3">
  +            <tr>
  +                <td width="600" valign="top">
  +                    <table border="0" cellpadding="2" cellspacing="0">
  +                        <tr>
  +                                             <td
class="pageheader"><b>JBoss/Tomcat/Apache</b></td>
  +                        </tr>
  +                        <tr>
  +                            <td class="newsheader"><b>A Full J2EE
Stack</b></td>
  +                        </tr>
  +                        <tr>
  +                            <td class="newsbody"><img height="71"
width="100" src="../pictures/tomcat_3.gif" align="left">The
  +                                                      JBoss organization
wants to deliver a complete J2EE based product to the market.
  +                                                      The JBoss
organization decided to integrate the Tomcat engine stack with a running
  +                                                      version of JBoss in
a single VM. Now you can serve all your servlet and JSP needs
  +                                                      with 2 simple
downloads and a couple of configuration files. Check out the
  +                                                      Tomcat <a
href="http://jakarta.apache.org" target="_top">homepage</a> for
  +                                                      information related
to Tomcat.
  +                             <p>The goal of this page is to explain how
to make JBoss automatically start Tomcat,
  +                                                      so that it runs in
the same VM.</p>
  +                             <p>We now run<b> optimized stacks </b>the
JSP/Servlet engine talks natively with
  +                                                      the EJB engine
resulting in dramatic speed increases. Without the optimization
  +                                                      the invocation is
through the network layer. With the optimized layers the
  +                                                      invocation<b> is
native, inVM</b>, within the same stack of APIs</td>
  +                        </tr>
  +                        <tr>
  +                            <td class="newsheader"><b>Features</b></td>
  +                        </tr>
  +                        <tr>
  +                            <td class="newsbody">
  +                                <ul>
  +                                    <li><font face="Myriad
Web,Arial">Parsing of server.xml for full Tomcat configuration
support</font>
  +                                    <li><font face="Myriad
Web,Arial">Support for Tomcat 3.2 and up</font>
  +                                    <li><font face="Myriad
Web,Arial">Coming support for Catalina</font>
  +                                    <li><font face="Myriad
Web,Arial">Full j2ee integration in JMX</font>
  +                                    <li><font face="Myriad
Web,Arial">single startup/shutdown script</font>
  +                                    <li><font face="Myriad
Web,Arial">Separated stacks inVM</font>
  +                                    <li><font face="Myriad
Web,Arial">Integrated stacks inVM</font>
  +                                    <li><font face="Myriad
Web,Arial">J2EE&nbsp;deployer for JBoss/Tomcat</font>
  +                                    <li><font face="Myriad
Web,Arial">Full EAR&nbsp;support</font>
  +                                    <li><font face="Myriad
Web,Arial">JBoss Auto-Deploy for EAR</font>
  +                                    <li><font face="Myriad
Web,Arial">JNDI&nbsp;shared visibility</font>
  +                                    <li><font face="Myriad
Web,Arial">Integrated Security Model</font>
  +                                </ul>
  +                            </td>
  +                        </tr>
  +                        <tr>
  +                            <td class="newsheader"><b>Mailing
lists</b></td>
  +                        </tr>
  +                        <tr>
  +                            <td class="newsbody"><font face="Myriad
Web,Arial">Refer to Tomcat's </font><a href="http://jakarta.apache.org"
target="_top">homepage</a> for questions specific to Tomcat deployment.
  +                                <p>Questions about the J2EE&nbsp;deployer
and the integration should be posted to <a href="lists.html">our lists</a>
(jboss)</td>
  +                        </tr>
  +                        <tr>
  +                            <td class="newsheader"><b>Distribution and
CVS</b></td>
  +                        </tr>
  +                        <tr>
  +                            <td class="newsbody"><font face="Myriad
Web,Arial">
  +                                                     <p>
  +                                                     JBoss Tomcat is
shipped as part of the <a href="binary.html">standard JBoss/Server
package</a>.
  +                                                     However, the current
distribution is based on an earlier version of EmbeddedTomcat that
  +                                                     does <b>not</b>
parse Tomcat's server.xml.  If you don't need server.xml parsed (ie, you're
  +                                                     not trying to
integrate with Apache), then the current version may be the easiest route
for
  +                                                     you.
  +                                                     </p>
  +                                                     <p>
  +                                                     The Pre-2.1 CVS
source contains a new version of EmbeddedTomcat
  +                                                     (plus other
enhancements) that <b>does</b> parse Tomcat's server.xml.
  +                                                     It is recommended
that you use the information provided below.  This
  +                                                     new version of
EmbeddedTomcat will be rolled in to the official 2.1
  +                                                     release.
  +                                                     <br>
  +                                                     </p>
  +                                                     </font>
  +                        </tr>
  +                        <tr>
  +                            <td class="newsheader"><b>How-to build and
install EmbeddedTomcat</b></td>
  +                        </tr>
  +                        <tr>
  +                            <td class="newsbody"><font face="Myriad
Web,Arial">You will need</font>
  +                                <ul>
  +                                    <li><font face="Myriad Web,Arial"><a
href="/zip_archives/">JBoss Pre-2.1 Src</a></font>
  +                                    <li><font face="Myriad Web,Arial"><a
href="http://jakarta.apache.org/builds/jakarta-tomcat/release/v3.2.1/bin/">T
omcat Version 3.2</a> </font>
  +                                </ul>
  +                                                             <p>You can
get the latest CVS version of JBoss Pre-2.1 from
  +                                                             <a
href="/zip_archives/">here</a>.  Grab both jboss-cvs.zip and
  +
contrib-cvs.zip to build JBoss and EmbeddedTomcat. 
  +                                                             </p>
  +                                <p>You can get the latest release of
tomcat from the jakarta website. NOTE: This has been tested with tomcat
3.2.1 However it won't run on tomcat 3.1, and tomcat 3.3 is not suppported
yet.</p>
  +                                
  +                        <ol>
  +                            <li><strong>Build JBoss from src</strong>
<br>
  +                                                     Build JBoss from the
CVS sources.  This is generally accomplished
  +                                                     by changing to the
src/build directory and executing build.sh (or
  +                                                     build.bat on NT).
The build creates a dist directory under the
  +                                                     src root. This dist
directory will be referred to as the JBOSS_HOME
  +                                                     for the
EmbeddedTomcat build.
  +                                                     <br>
  +                                                     <br>
  +                                                     <li><strong>Build
EmbeddedTomcat(optional)</strong> <br>
  +                                                     Build the
EmbeddedTomcat service from the contrib CVS sources
  +                                                     if you want. This is
optional as the current JBoss cvs src
  +                                                     includes a prebuilt
version of the tomcat-service.jar.
  +                                                     To build the
EmbeddedTomcat service, change to the
  +
contrib/tomcat/src/build directory and execute build.sh 
  +                                                     (or build.bat on
NT).  NOTE:  You need to define environment
  +                                                     values for
JBOSS_HOME and TOMCAT_HOME to fit your
  +                                                     environment.
JBOSS_HOME needs to point to the dist directory of
  +                                                     the JBoss build step
and TOMCAT_HOME is the dist directory of the
  +                                                     jakarta-tomcat-3.2.x
release.
  +                                                     <br>
  +                                                     <br>
  +                                                     Once this build
completes, execute <i>build.sh client</i>.
  +                                                     This will create a
new tomcat-test.ear.
  +                                                     <br>
  +                                                     <br>
  +                                                     Once you've built
EmbeddedTomcat,
  +                                                     copy
contrib/tomcat/tomcat-service.jar to $JBOSS_HOME/lib/ext.  Finally,
  +                                                     copy
contrib/tomcat/tomcat-test.ear to $JBOSS_HOME/deploy.
  +                                                     <br>
  +                                                     <br>
  +                            <li><strong>Add the tomcat libs to the server
classpath</strong> <br>
  +                                In JBOSS_HOME/conf/default/ edit
jboss.conf file to uncomment the
  +
ClassPathExtension mbean for the tomcat lib directory to:<br>
  +                                <pre>
  +&lt;!--Uncomment to add Tomcat classes to classpath --&gt;
  +&lt;MLET CODE = "org.jboss.util.ClassPathExtension" ARCHIVE="jboss.jar"
CODEBASE="../../lib/ext/"&gt;
  +  &lt;ARG TYPE="java.lang.String" VALUE="TOMCAT_HOME/lib/"&gt;
  +  &lt;ARG TYPE="java.lang.String" VALUE="Tomcat"&gt;
  +&lt;/MLET&gt;
  +</pre>
  +                                                             where
TOMCAT_HOME value must be set to the full path described above in
  +                                                             the build of
the EmbeddedTomcat service. Note that there must be
  +                                                             a trailing
slash(/) in order for the jars in the lib directory to
  +                                                             be added to
the classpath.
  +
  +                            <li><strong>Edit jboss.jcml</strong><br>
  +                                In JBOSS_HOME/conf/default/ edit the
jboss.jcml file to uncomment
  +                                                             the
EmbeddedTomcatService mbean. Locate:
  +                                <pre>
  +  &lt;!-- 
  +  Uncomment to add embedded tomcat service
  +  &lt;mbean code="org.jboss.tomcat.EmbeddedTomcatService"
name="DefaultDomain:service=EmbeddedTomcat" /&gt;
  +  --&gt;
  +</pre>
  +                                and uncomment the mbean line so it reads
as follows:
  +                                <pre>
  +  &lt;!-- 
  +  Uncomment to add embedded tomcat service
  +  --&gt;
  +  &lt;mbean code="org.jboss.tomcat.EmbeddedTomcatService"
name="DefaultDomain:service=EmbeddedTomcat" /&gt;
  +</pre>
  +                                <p> Further down in the jboss.jcml file,
make 
  +                                    sure your J2eeDeployer is set as:
</p>
  +                                <pre>
  +  &lt;mbean code="org.jboss.deployment.J2eeDeployer"
name="J2EE:service=J2eeDeployer"&gt;
  +    &lt;attribute name="DeployerName"&gt;Default&lt;/attribute&gt;
  +    &lt;attribute
name="JarDeployerName">:service=ContainerFactory&lt;/attribute&gt;
  +    &lt;attribute
name="WarDeployerName">:service=EmbeddedTomcat&lt;/attribute&gt;
  +  &lt;mbean&gt;
  +</pre>
  +                            <li><strong>Edit Tomcat's server.xml</strong>
<br>
  +                                Add the following lines to server.xml in
TOMCAT_HOME/conf/
  +                                                     <pre>
  +&lt;!-- JBoss, Add the jboss-web.xml parser. Add after the
org.apache.tomcat.context.WorkDirInterceptor
  +             ContextInterceptor
  +--&gt;
  +        &lt;ContextInterceptor
className="org.jboss.tomcat.naming.JbossWebXmlReader" /&gt;
  +&lt;!-- JBoss, Set the request thread classloader. Add before the
org.apache.tomcat.request.SessionInterceptor
  +             RequestInterceptor
  +--&gt;
  +        &lt;RequestInterceptor
className="org.apache.tomcat.request.Jdk12Interceptor" /&gt;
  +&lt;!-- JBoss, Map the current web user to the SecurityAssociation
principal. Add
  +             after the org.apache.tomcat.request.SimpleRealm
RequestInterceptor
  +--&gt;
  +        &lt;RequestInterceptor
className="org.jboss.tomcat.security.JbossRealm" /&gt;
  +</pre>
  +                            <li><strong>Adding javac to the server
classpath</strong> <br>
  +                                                             If you are
going to be using JSP files with tomcat, you
  +                                                             need to add
the JDK lib/tools.jar file to the classpath to
  +                                                             pickup the
javac compiler. You can do this by either
  +                                                             setting your
CLASSPATH env variable, by editing run.sh/run.bat
  +                                                             to add
tools.jar to CLASSPATH, or by copying tools.jar to
  +                                                             the
TOMCAT_HOME/lib directory.
  +                            <li><strong>Start JBoss</strong> <br>
  +                                If you start JBoss now by typing
<code>run.sh</code> 
  +                                (or <code>run.bat</code> for Windows) you
should 
  +                                see the following Tomcat related output
in your 
  +                                log messages: 
  +                                <pre>
  +Using configuration "default"
  +[Info] Java version: 1.3.0_01,Sun Microsystems Inc.
  +[Info] Java VM: Java HotSpot(TM) Server VM 1.3.0_01,Sun Microsystems Inc.
  +[Info] System: Linux 2.2.16-22,i386
  +   ...
  +[EmbeddedTomcat] Starting
  +[EmbeddedTomcat] Starting EmbeddedTomcat....
  +2001-02-20 05:01:23 - ContextManager: Adding context Ctx( /examples )
  +2001-02-20 05:01:23 - ContextManager: Adding context Ctx( /admin )
  +[EmbeddedTomcat] Starting tomcat. Check logs/tomcat.log for error
messages 
  +2001-02-20 05:01:23 - ContextManager: Adding context Ctx(  )
  +2001-02-20 05:01:23 - ContextManager: Adding context Ctx( /test )
  +2001-02-20 05:01:25 - PoolTcpConnector: Starting HttpConnectionHandler on
8080
  +2001-02-20 05:01:25 - PoolTcpConnector: Starting Ajp12ConnectionHandler
on 8007
  +[EmbeddedTomcat] OK
  +[EmbeddedTomcat] Started
  +   ...
  +[Default] JBoss PRE-2.1 Started in 0m:14s
  +</pre>
  +                                <p>That's it !! Note that the connection
handlers 
  +                                    are configured from Tomcat's
server.xml file. 
  +                        </ol>
  +                    </td>
  +                        </tr>
  +                    </table>
  +                </td>
  +            </tr>
  +            <tr>
  +                <td class="newsheader" width="600"><b>How-to package and
deploy an EAR file on JBoss/Tomcat</b></td>
  +            </tr>
  +            <tr>
  +                <td class="newsbody" width="600">In order to benefit from
the classloader integration, you have to deploy your application in an EAR
file as recommended by the <a
href="http://java.sun.com/j2ee/download.html#platformspec">J2EE
specification</a>.
  +
  +                    <p>In case you don't want to read all the J2EE spec,
here is a brief summary of what you have to do:</p>
  +                    <ol>
  +                        <li><b>Write your beans and package them in an
ejb-jar file.</b>
  +                         You don't have to do anything special here. See
the <a href="../../projects/jbossweb/manual/developing.html">manual</a> for
details on how to package beans for JBoss.<br>
  +                        &nbsp;
  +                        <li><b>Write your servlets/JSPs and package them
in a war file.</b><br>
  +                         Add a Class-Path attribute to your war files
MANIFEST.MF file
  +                        to reference your beans package. for detailed
information on that see: <a
href="../documentation/J2eeDeployment_howto.html">J2eeDeployment
Howto</a>.<br> 
  +                        Assuming you have a bean deployed under the jndi
name &quot;myBean&quot;, the calls to this bean from your servlets will look
like that:
  +                        <pre>MyBeanHome home = (MyBeanHome)new
InitialContext().lookup(&quot;myBean&quot;);
  +MyBean bean = home.create();</pre>
  +                        <p><b>Notes</b>:</p>
  +                        <ul>
  +                            <li>Since JBoss takes care of the classloader
stuff, you don't have to include much in the WEB-INF/lib directory: you
don't need any of your beans interfaces, and you don't need the old
jboss-client.jar, jnp-client.jar...
  +                        </ul>
  +                        <br>
  +                        <li><b>Package your application in an ear
file</b>.<br>
  +                         An ear file is a jar archive which contains:
  +                        <ul>
  +                            <li>Your jar files
  +                            <li>Your war files
  +                            <li>A deployment descriptor for your
application. This file must be named &quot;application.xml&quot;, and must
be located in the META-INF directory in the ear archive. This file tells
JBoss which modules are EJBs, which ones are web modules, and the context
paths for the web-modules. Here is a sample application.xml file:
  +                            <pre>&lt;?xml version=&quot;1.0&quot;
encoding=&quot;ISO-8859-1&quot;?&gt;
  +
  +&lt;application&gt;
  +    &lt;display-name&gt;My application&lt;/display-name&gt;
  +
  +    &lt;module&gt;
  +        &lt;web&gt;
  +            &lt;web-uri&gt;webmodule.war&lt;/web-uri&gt;
  +            &lt;context-root&gt;/servlets&lt;/context-root&gt;
  +        &lt;/web&gt;
  +    &lt;/module&gt;
  +
  +    &lt;module&gt;
  +        &lt;ejb&gt;beans.jar&lt;/ejb&gt;
  +    &lt;/module&gt;
  +
  +&lt;/application&gt;</pre>
  +                            <p>See also the <a
href="http://java.sun.com/j2ee/dtds/application_1_2.dtd">DTD</a> for
application.xml on Javasoft's website.</p>
  +                        </ul>
  +                        <li><b>Deploy your ear file</b>.<br>
  +                        Option 1: Copy your ear file to JBOSS_HOME/deploy
(wow!)
  +                        <p></p>
  +                        Option 2: Surf to http://yourhost:8082, and find
the
  +                         J2eeDeployer service. Give it the URL of your
ear file (don't forget the protocol, be it http: or file:), and click on the
deploy button.<br>
  +                        &nbsp;
  +                        <li><b>That's it!</b><br>
  +                         The server console should show your application
being deployed
  +                          on Tomcat and JBoss, and your web module should
be available
  +                          on http://yourhost:8080/servlets (assuming the
context-root was &quot;/servlets&quot;).
  +                          <p>
  +                          <b>Note</b>:  Even though JBoss and Tomcat are
  +                           cooperating to dynamically deploy your
application, Apache must
  +                           be configured manually.  This means that for
your application
  +                           to be visible through Apache, you must setup
the appropriate
  +                           JkMount statements in mod_jk.conf.
  +                          </p>
  +                    </ol>
  +                    <p>For a full example including a servlet and an EJB,
see the tomcat-test.ear
  +                                     in the <a
href="/zip_archives/contrib-cvs.zip">contrib/tomcat</a> module</td>
  +            </tr>
  +            <tr>
  +                <td width="600"></td>
  +            </tr>
  +        </table>
  +    </body>
  +
  +</html>
  
  
  





---------------------------------------------------------------------
This message (including any attachments) contains confidential information
intended for a specific individual and purpose, and is protected by law.  If
you are not the intended recipient, you should delete this message and are
hearby notified that any disclosure, copying, or distribution of this
message, or the taking of any action based on it, is strictly prohibited.

Reply via email to