You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by km...@apache.org on 2011/06/11 23:33:39 UTC
svn commit: r1134776 [24/26] - in /openejb/trunk/website/html/old-site: ./
html/ html/images/ html/spec/ images/
Added: openejb/trunk/website/html/old-site/html/tomcat-object-factory.html
URL: http://svn.apache.org/viewvc/openejb/trunk/website/html/old-site/html/tomcat-object-factory.html?rev=1134776&view=auto
==============================================================================
--- openejb/trunk/website/html/old-site/html/tomcat-object-factory.html (added)
+++ openejb/trunk/website/html/old-site/html/tomcat-object-factory.html Sat Jun 11 21:33:33 2011
@@ -0,0 +1,368 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Setting up Tomcat with OpenEJB --
+ Leveraging J2EE JNDI principles</title><link href="default.css" rel="stylesheet"><link href="/images/favicon.ico" rel="SHORTCUT ICON"></head><body marginwidth="0" marginheight="0" leftmargin="0" bottommargin="0" topmargin="0" vlink="#6763a9" link="#6763a9" bgcolor="#ffffff"><a name="top"></a><table height="400" width="712" cellspacing="0" cellpadding="0" border="0"><tr><td bgcolor="#7270c2" align="left" valign="top" width="20"><img border="0" height="1" width="1" src="images/dotTrans.gif"></td><td bgcolor="#7270c2" align="left" valign="top" width="95"><img border="0" height="1" width="1" src="images/dotTrans.gif"></td><td align="left" valign="top" width="7"><img height="1" width="1" border="0" src="images/dotTrans.gif"></td><td align="left" valign="top" width="40"><img border="0" height="6" width="40" src="images/dotTrans.gif"></td><td bgcolor="#5A5CB8" align="left" valign="top" width="430"><img border="0" height="6" width="430" src="images/top_2.gif"></td><td
bgcolor="#E24717" align="left" valign="top" width="120"><img src="images/top_3.gif" width="120" height="6" border="0"></td></tr><tr><td align="left" valign="top" bgcolor="#7270c2" width="20"><img height="1" width="1" border="0" src="images/dotTrans.gif"></td><td align="left" valign="top" bgcolor="#7270c2" width="95"><img height="1" width="1" border="0" src="images/dotTrans.gif"></td><td align="left" valign="top" bgcolor="#ffffff" width="7"></td><td align="left" valign="top" width="40"><img border="0" height="1" width="1" src="images/dotTrans.gif"></td><td align="left" valign="middle" width="430"><a href="faq.html"><span class="menuTopOff">[ f a q ]</span></a> <a href="http://wiki.codehaus.org/openejb"><span class="menuTopOff">[ w i k i ]</span></a> <a href="http://archive.openejb.codehaus.org/user/"><span class="menuTopOff">[ l i s t s ]</span></a> <a href="http://cvs.openejb.org/"><span c
lass="menuTopOff">[ c v s ]</span></a> <a href="http://jira.codehaus.org/secure/BrowseProject.jspa?id=10401"><span class="menuTopOff">[ b u g s ]</span></a> <br><img border="0" height="2" width="1" src="images/dotTrans.gif"></td><td align="left" valign="top" height="20" width="120"> </td></tr><tr><td align="left" valign="top" bgcolor="#7270c2" width="20"><img border="0" height="3" width="20" src="images/dotTrans.gif"></td><td align="left" valign="top" bgcolor="#7270c2" width="95"><img border="0" height="3" width="105" src="images/line_sm.gif"></td><td align="left" valign="top" bgcolor="#a9a5de" width="7"><img border="0" height="3" width="7" src="images/line_sm.gif"></td><td align="left" valign="top" width="40"><img border="0" height="3" width="40" src="images/line_light.gif"></td><td align="left" valign="top" width="430"><img border="0" height="3" width="430" src="images/line_light.gif"></td><td align="left" vali
gn="top" width="120"><img height="1" width="1" border="0" src="images/dotTrans.gif"></td></tr><tr><td align="left" valign="top" bgcolor="#7270c2"><img border="0" height="10" width="20" src="images/dotTrans.gif"></td><td align="left" valign="top" bgcolor="#7270c2" width="95"><img border="0" height="2" width="1" src="images/dotTrans.gif"><br><table cellspacing="0" cellpadding="0" border="0"><tr><td align="left" valign="top"><span class="subMenuOn">Main</span></td></tr><tr><td align="left" valign="top"><a href="index.html"><span class="subMenuOff">
+ Welcome!</span></a></td></tr><tr><td align="left" valign="top"><a href="download.html"><span class="subMenuOff">
+ Download</span></a></td></tr><tr><td align="left" valign="top"><a href="lists.html"><span class="subMenuOff">
+ Mailing Lists</span></a></td></tr><tr><td align="left" valign="top"><a href="cvs.html"><span class="subMenuOff">
+ Source Code</span></a></td></tr><tr><td align="left" valign="top"><a href="contributors.html"><span class="subMenuOff">
+ The Team</span></a></td></tr><tr><td align="left" valign="top"><a href="status.html"><span class="subMenuOff">
+ Status</span></a></td></tr></table><table cellspacing="0" cellpadding="0" border="0"><tr><td align="left" valign="top"><span class="subMenuOn">Users</span></td></tr><tr><td align="left" valign="top"><a href="quickstart.html"><span class="subMenuOff">
+ Quickstart</span></a></td></tr><tr><td align="left" valign="top"><a href="hello-world.html"><span class="subMenuOff">
+ Hello World!</span></a></td></tr><tr><td align="left" valign="top"><a href="cmp_entity_postgresql.html"><span class="subMenuOff">
+ CMP Example</span></a></td></tr><tr><td align="left" valign="top"><a href="cmp_guide.html"><span class="subMenuOff">
+ CMP Guide</span></a></td></tr><tr><td align="left" valign="top"><a href="deploy.html"><span class="subMenuOff">
+ Deploy</span></a></td></tr><tr><td align="left" valign="top"><a href="start-command.html"><span class="subMenuOff">
+ Startup</span></a></td></tr><tr><td align="left" valign="top"><a href="validate.html"><span class="subMenuOff">
+ Validation</span></a></td></tr><tr><td align="left" valign="top"><a href="config_containers.html"><span class="subMenuOff">
+ Configuration</span></a></td></tr><tr><td align="left" valign="top"><a href="properties.html"><span class="subMenuOff">
+ Properties</span></a></td></tr></table><table cellspacing="0" cellpadding="0" border="0"><tr><td align="left" valign="top"><span class="subMenuOn">Servers</span></td></tr><tr><td align="left" valign="top"><a href="embedded.html"><span class="subMenuOff">
+ Local Server</span></a></td></tr><tr><td align="left" valign="top"><a href="remote-server.html"><span class="subMenuOff">
+ Remote Server</span></a></td></tr><tr><td align="left" valign="top"><a href="tomcat.html"><span class="subMenuOff">
+ Tomcat</span></a></td></tr><tr><td align="left" valign="top"><a href="geronimo.html"><span class="subMenuOff">
+ Geronimo</span></a></td></tr></table><table cellspacing="0" cellpadding="0" border="0"><tr><td align="left" valign="top"><span class="subMenuOn">Integrators</span></td></tr><tr><td align="left" valign="top"><a href="whyopenejb.html"><span class="subMenuOff">
+ Why OpenEJB</span></a></td></tr><tr><td align="left" valign="top"><a href="containersystem.html"><span class="subMenuOff">
+ Overview</span></a></td></tr><tr><td align="left" valign="top"><a href="design_openejb.html"><span class="subMenuOff">
+ Design</span></a></td></tr><tr><td align="left" valign="top"><a href="OpenEJB_presentaion.ppt"><span class="subMenuOff">
+ Presentation</span></a></td></tr></table><img border="0" height="15" width="1" src="images/dotTrans.gif"><br><img border="0" height="3" width="105" src="images/line_sm.gif"><br><A href="http://codehaus.org"><IMG alt="The Codehaus" border="0" height="17" width="88" src="http://www.openejb.org/codehaus-smaller.png"></A></td><td align="left" valign="top" bgcolor="#a9a5de" width="7"> </td><td align="left" valign="top" width="40"> </td><td valign="top" width="430" rowspan="4"><table width="430" cellspacing="0" cellpadding="0" border="0" rows="2" cols="1"><tr><td align="left" valign="top"><br><img width="200" vspace="0" src="./images/logo_ejb2.gif" hspace="0" height="55" border="0"><br><img src="images/dotTrans.gif" hspace="0" height="7" border="0"><br><span class="pageTitle">Setting up Tomcat with OpenEJB</span><br><span class="pageSubTitle">Leveraging J2EE JNDI principles</span><br><img src="images/dotTrans.gif" hspace="0" height="1" border="0"></td></t
r></table><p></p><p></p><br><span class="toc"><a href="#abstract">Abstract</a><br></span><span class="toc"><a href="#intro">Before we start</a><br></span><span class="toc"><a href="#ejb-ref">Referencing EJBs in web application</a><br></span><span class="toc"><a href="#install">Installing OpenEJB's EJB factory in Tomcat</a><br></span><span class="toc"><a href="#example">Example application</a><br></span><br><a name="abstract"><h2>Abstract</h2></a>
+ <p><span class="bodyBlack">
+ Java 2 Enterprise Edition (J2EE) provides several technologies that lets build
+ J2EE-compliant applications that can be run in any J2EE-compliant application server.
+ One of the several technologies is Java Naming and Directory Interface (JNDI).
+ JNDI is a technology that provides a unified access
+ to different naming and directory services. Regardless of the underlaying service,
+ if it supports JNDI a client doesn't have to know what exactly application it's to talk to
+ other than it adheres to JNDI concepts and interfaces.
+ </span></p>
+ <p><span class="bodyBlack">
+ OpenEJB and Tomcat can complement each other in fullfiling J2EE principles. OpenEJB is
+ an EJB container whereas Tomcat is a servlet container. Although they serve different
+ clients, both products use JNDI extensively. Obviously, either container provides different JNDI "views"
+ of its managed components. The question pertaining to the integration is how to tie
+ the different naming systems so that when a client requests an object from Tomcat naming space,
+ Tomcat will know that it needs to pass the request along to OpenEJB naming space.
+ That's what the object factory is to solve out.
+ </span></p>
+ <p><span class="bodyBlack">
+ While reading JNDI specification you can come across the interface:
+ <a href="http://java.sun.com/j2se/1.4.1/docs/api/javax/naming/spi/ObjectFactory.html">
+ javax.naming.spi.ObjectFactory</a>. The javadoc of the interface reads:
+ </span></p>
+ <hr noshadow="" size="1"><span class="bodyGrey">
+ This interface represents a factory for creating an object.
+ <br>
+ <br>
+ The JNDI framework allows for object implementations to be loaded in dynamically via object factories.
+ For example, when looking up a printer bound in the name space,
+ if the print service binds printer names to References, the printer Reference
+ could be used to create a printer object, so that the caller of lookup can
+ directly operate on the printer object after the lookup.
+ <hr noshadow="" size="1"></span>
+
+ <p><span class="bodyBlack">
+ Theorically, it seems to be possible to create a web application that makes use of EJBs,
+ deploy these EJBs in OpenEJB, and the web application in Tomcat, set up an object factory
+ and finally boot it up. The following sections are to outline what exactly the steps are in OpenEJB and Tomcat
+ with description of why they are required at all.
+ </span></p>
+
+ <a name="intro"><h2>Before we start</h2></a>
+
+ <p><span class="bodyBlack">
+ Before we start, ensure that OpenEJB and Tomcat are in appropriate releases.
+ </span></p>
+ <table bgcolor="#7270c2" width="440" cellspacing="0" cellpadding="0" border="0"><tr><td bgcolor="#7270c2"><span class="note-caption"> NOTE</span></td></tr><tr><td bgcolor="#7270c2"><table bgcolor="#7270c2" width="100%" cellspacing="2" cellpadding="7" border="0"><tr><td bgcolor="#FFFFFF"><span class="note">
+ What follows should be doable on any Tomcat 4.x or 5.x release. The author
+ tested it under Jakarta Tomcat 4.1.18 and 5.0.27 (the most recent public release at
+ that time).
+ </span></td></tr></table></td></tr></table>
+ <br>
+ <table bgcolor="#7270c2" width="440" cellspacing="0" cellpadding="0" border="0"><tr><td bgcolor="#7270c2"><span class="note-caption"> NOTE</span></td></tr><tr><td bgcolor="#7270c2"><table bgcolor="#7270c2" width="100%" cellspacing="2" cellpadding="7" border="0"><tr><td bgcolor="#FFFFFF"><span class="note">
+ It's assumed that Tomcat and OpenEJB are already installed and running properly
+ as a separate products.
+ </span></td></tr></table></td></tr></table>
+
+ <a name="ejb-ref"><h2>Referencing EJBs in web application</h2></a>
+ <p><span class="bodyBlack">J2EE 1.3 specification says (page 57):</span></p>
+ <p><span class="bodyBlack">
+ <hr noshadow="" size="1"><span class="bodyGrey">
+ The Application Component Provider must declare all the EJB references
+ using the ejb-ref elements of the deployment descriptor. This allows the consumer
+ of the application component's jar file (the Application Assembler or Deployer) to
+ discover all the EJB references used by the application component.
+ <hr noshadow="" size="1"></span>
+ </span></p>
+ <p><span class="bodyBlack">
+ It means that each time a web application needs to reference a bean, the bean has to be declared in
+ the web application's deployment descriptor (
+ <i>/WEB-INF/web.xml</i> file). The element which does so
+ is
+ <i>ejb-ref</i>.
+ Although most containers don't enforce that approach, it's always better to describe dependencies in
+ a standard, J2EE-compliant way, in the deployment descriptor of the corresponding components.
+ </span></p>
+ <table bgcolor="#7270c2" width="440" cellspacing="0" cellpadding="0" border="0"><tr><td bgcolor="#7270c2"><span class="note-caption"> NOTE</span></td></tr><tr><td bgcolor="#7270c2"><table bgcolor="#7270c2" width="100%" cellspacing="2" cellpadding="7" border="0"><tr><td bgcolor="#FFFFFF"><span class="note">
+ Tomcat won't refuse to activate the components even if they reference EJBs with no declaration in
+ the deployment descriptors.
+ </span></td></tr></table></td></tr></table>
+ <p><span class="bodyBlack">
+ Our example's web application declares the referenced bean in the deployment descriptor
+ (
+ <i>/WEB-INF/web.xml</i>) as follows:
+ </span></p>
+ <table width="440" cellspacing="0" cellpadding="0" border="0"><tr><td bgcolor="#e0e0e0"><span class="code-block"><pre>
+
+<ejb-ref>
+ <description>
+ EJB Reference to the bean deployed to OpenEJB
+ </description>
+ <ejb-ref-name>ejb/hello</ejb-ref-name>
+ <ejb-ref-type>Session</ejb-ref-type>
+ <home>org.acme.HelloHome</home>
+ <remote>org.acme.Hello</remote>
+</ejb-ref></pre></span></td></tr></table>
+ <p><span class="bodyBlack">
+ Here goes a JSP that uses the ejb-ref-name to get a reference to the declared bean.
+ </span></p>
+ <p><span class="bodyBlack">
+ <table width="440" cellspacing="0" cellpadding="0" border="0"><tr><td bgcolor="#c0c0c0"><i><span class="code-title">openejb.jsp</span></i></td></tr><tr><td bgcolor="#e0e0e0"><span class="code-block"><pre>
+
+<%@ page import="org.acme.HelloObject,
+ org.acme.HelloHome,
+ javax.naming.InitialContext,
+ javax.naming.Context"%>
+
+<html>
+<head>
+ <title>OpenEJB -- EJB for Tomcat</title>
+</head>
+
+<body>
+<%
+ Context initCtx = new InitialContext();
+
+ Object object = initCtx.lookup("java:comp/env/ejb/hello");
+ HelloHome helloHome = (HelloHome)
+ javax.rmi.PortableRemoteObject.narrow(object, HelloHome.class);
+ HelloObject bean = helloHome.create();
+%>
+<%= bean.sayHello() %>
+</body>
+</html></pre></span></td></tr></table>
+ </span></p>
+ <p><span class="bodyBlack">
+ As it's shown in the sample JSP above, there is no direct reference to the EJB container to be used.
+ The application component provider doesn't have to know what container the EJB is to be deployed to.
+ What it does have to ascertain is that the name the JSP uses is actually an ejb reference. Moreover, the reference
+ should be the one to HelloHome home interface or otherwise the application will fail.
+ </span></p>
+ <a name="install"><h2>Installing OpenEJB's EJB factory in Tomcat</h2></a>
+ <table bgcolor="#7270c2" width="440" cellspacing="0" cellpadding="0" border="0"><tr><td bgcolor="#7270c2"><span class="note-caption"> NOTE</span></td></tr><tr><td bgcolor="#7270c2"><table bgcolor="#7270c2" width="100%" cellspacing="2" cellpadding="7" border="0"><tr><td bgcolor="#FFFFFF"><span class="note">
+ <b>CATALINA_HOME</b> environment variable points to the directory where Jakarta Tomcat 4.x has
+ been installed.
+ </span></td></tr></table></td></tr></table>
+ <p><span class="bodyBlack">The J2EE 1.3 specification says (page 56):</span></p>
+ <p><span class="bodyBlack">
+ <hr noshadow="" size="1"><span class="bodyGrey">
+ The Deployer binds the EJB references to the enterprise bean's homes
+ in the target operational environment.
+ <hr noshadow="" size="1"></span>
+ </span></p>
+ <p><span class="bodyBlack">
+ It means that after an Application Component Provider (in the document, it's you) has created a web application
+ and specified an EJB reference in the deployment descriptor, a deployer (you, too) has to bind the reference
+ in Tomcat. The task boils down to put appropriate entry in Tomcat's configuration file.
+ </span></p>
+ <p><span class="bodyBlack">
+ Tomcat's default configuration file is
+ <i>server.xml</i> in
+ <i>$CATALINA_HOME/conf</i> directory. According to server.xml's documentation it's possible to
+ create an appropriate definition of a factory and let the factory to handle requests for the objects it
+ is registered to handle. That's what OpenEJB's EJB factory does. It intercepts messages for EJBs, passes it along
+ to OpenEJB and returns requested bean.
+ </span></p>
+ <p><span class="bodyBlack">
+ Tomcat registers resource factories in
+ <i>GlobalNamingResources</i> or
+ <i>Context</i>
+ elements which demarcate the name space of different web applications.
+ </span></p>
+ <p><span class="bodyBlack">
+ <table bgcolor="#7270c2" width="440" cellspacing="0" cellpadding="0" border="0"><tr><td bgcolor="#7270c2"><span class="note-caption"> NOTE</span></td></tr><tr><td bgcolor="#7270c2"><table bgcolor="#7270c2" width="100%" cellspacing="2" cellpadding="7" border="0"><tr><td bgcolor="#FFFFFF"><span class="note">
+ It's recommended to place resource definitions within Context elements, which prevents name clashes
+ to occur when the same names are to point to different resources (e.g. EJBs).
+ </span></td></tr></table></td></tr></table>
+ </span></p>
+ <p><span class="bodyBlack">
+ The following snippet shows the elements necessary to register the EJB reference, which has been defined
+ in the web application's deployment descriptor. The document doesn't describe the particular elements of
+ server.xml file other than
+ <i>ResourceParams</i> parameters.
+ The reader shall read the
+ <a href-="">Tomcat documentation</a> to get acquainted with the file's structure.
+ </span></p>
+ <p><span class="bodyBlack">
+ <table width="440" cellspacing="0" cellpadding="0" border="0"><tr><td bgcolor="#c0c0c0"><i><span class="code-title">$CATALINA_HOME/conf/server.xml</span></i></td></tr><tr><td bgcolor="#e0e0e0"><span class="code-block"><pre>
+
+<Server>
+ ...
+ <Context path=...>
+ ...
+ <Ejb name="ejb/hello"
+ type="Session"
+ home="org.acme.HelloHome"
+ remote="org.acme.Hello"/>
+ <ResourceParams name="ejb/hello">
+ <parameter>
+ <name>factory</name>
+ <value>org.openejb.client.TomcatEjbFactory</value>
+ </parameter>
+ <parameter>
+ <name>openejb.naming.factory.initial</name>
+ <value>org.openejb.client.LocalInitialContextFactory</value>
+ </parameter>
+ <parameter>
+ <name>openejb.naming.security.principal</name>
+ <value>username</value>
+ </parameter>
+ <parameter>
+ <name>openejb.naming.security.credentials</name>
+ <value>password</value>
+ </parameter>
+ <parameter>
+ <name>openejb.naming.provider.url</name>
+ <value>localhost:4201</value>
+ </parameter>
+ <parameter>
+ <name>openejb.ejb-link</name>
+ <value>Hello</value>
+ </parameter>
+ </ResourceParams>
+ </Context>
+ ...
+</Server></pre></span></td></tr></table>
+ </span></p>
+ <p><span class="bodyBlack">
+ ResourceParams parameters consitute a bean reference. They inform Tomcat about who will know how to handle
+ requests for the bean.
+ <table cellspacing="2" cellpadding="2" border="0"><tr><td height="5" colspan="2"></td></tr><span class="bodyGrey">
+ <tr><td width="10" valign="top" align="left"><img src="images/grayDot.gif"></td><td valign="top" align="left"><span class="bodyBlack">
+ <b>factory</b> - (mandatory) the class instantiated by Tomcat when a request for a bean has arrived;
+ it must be
+ <b>org.openejb.client.TomcatEjbFactory</b> if the request ought to be handed over to OpenEJB.
+ </span></td></tr>
+ <tr><td width="10" valign="top" align="left"><img src="images/grayDot.gif"></td><td valign="top" align="left"><span class="bodyBlack">
+ <b>openejb.naming.factory.initial</b> - (mandatory) OpenEJB JNDI InitialContext implementation;
+ the parameter may be assigned to one of the two values:
+ <table cellspacing="2" cellpadding="2" border="0"><tr><td height="5" colspan="2"></td></tr><span class="bodyGrey">
+ <tr><td width="10" valign="top" align="left"><img src="images/grayDot.gif"></td><td valign="top" align="left"><span class="bodyBlack">
+ <b>org.openejb.client.LocalInitialContextFactory</b> - OpenEJB is started in the same JVM as Tomcat;
+ it boosts performance drastically as the beans are in the same JVM as a client (e.g. a web application); it boots up
+ OpenEJB in the local mode - an Local (aka IntraVM) Server instance
+ </span></td></tr>
+ <tr><td width="10" valign="top" align="left"><img src="images/grayDot.gif"></td><td valign="top" align="left"><span class="bodyBlack">
+ <b>org.openejb.client.RemoteInitialContextFactory</b> - OpenEJB is started outside of the current JVM;
+ all calls are forwarded to a OpenEJB Remote Server instance
+ </span></td></tr>
+ </span></table>
+ </span></td></tr>
+ <tr><td width="10" valign="top" align="left"><img src="images/grayDot.gif"></td><td valign="top" align="left"><span class="bodyBlack">
+ <b>openejb.ejb-link</b> - (mandatory) the bean's name to be looked up in OpenEJB; the name doesn't
+ have to be the same as the reference's name in Tomcat; it's the name the bean may be found in OpenEJB
+ JNDI name space.
+ </span></td></tr>
+ </span></table>
+ </span></p>
+ <p><span class="bodyBlack">
+ The following parameters are only required when
+ <b>openejb.naming.factory.initial</b> is set to
+ <b>org.openejb.client.RemoteInitialContextFactory</b>.
+ <table cellspacing="2" cellpadding="2" border="0"><tr><td height="5" colspan="2"></td></tr><span class="bodyGrey">
+ <tr><td width="10" valign="top" align="left"><img src="images/grayDot.gif"></td><td valign="top" align="left"><span class="bodyBlack">
+ <b>openejb.naming.security.principal</b> - the name of the user who is allowed to access
+ the JNDI context
+ </span></td></tr>
+ <tr><td width="10" valign="top" align="left"><img src="images/grayDot.gif"></td><td valign="top" align="left"><span class="bodyBlack">
+ <b>openejb.naming.security.credentials</b> - the password of the user who is set up in
+ openejb.naming.security.principal parameter
+ </span></td></tr>
+ <tr><td width="10" valign="top" align="left"><img src="images/grayDot.gif"></td><td valign="top" align="left"><span class="bodyBlack">
+ <b>openejb.naming.provider.url</b> - the server and port OpenEJB handles remote requests
+ </span></td></tr>
+ </span></table>
+ </span></p>
+ <p><span class="bodyBlack">
+ The
+ <b>factory</b> parameter indicates the class which passes a request for a bean to OpenEJB instance.
+ In order for the class to be instantiated by Tomcat, OpenEJB Loader has to be installed. The Loader takes
+ care of loading necessary classes from OpenEJB directory. It finds the directory relying upon
+ <b>OPENEJB_HOME</b> environament variable.
+ </span></p>
+ <p><span class="bodyBlack">
+ Create a file named setenv.sh (or setenv.bat on MS Windows) in $CATALINA_HOME/bin directory with the following
+ content:
+ </span></p>
+ <p><span class="bodyBlack">
+ <table width="440" cellspacing="0" cellpadding="0" border="0"><tr><td bgcolor="#c0c0c0"><i><span class="code-title">$CATALINA_HOME/bin/setenv.sh</span></i></td></tr><tr><td bgcolor="#e0e0e0"><span class="code-block"><pre>
+
+export CATALINA_OPTS="-Dopenejb.home=$OPENEJB_HOME"</pre></span></td></tr></table>
+ </span></p>
+ <p><span class="bodyBlack">
+ Finally, add the OpenEJB Loader to Tomcat.
+ </span></p>
+ <p><span class="bodyBlack">
+ <table width="440" cellspacing="0" cellpadding="0" border="0"><tr><td bgcolor="#e0e0e0"><span class="code-block"><pre>
+
+$ cp $OPENEJB_HOME/dist/openejb_loader-0.9.0.war webapps/</pre></span></td></tr></table>
+ </span></p>
+ <p><span class="bodyBlack">
+ That's it. Tomcat is now fully configured to work with OpenEJB. Don't forget to start up OpenEJB instance
+ if the factory's been configured with RemoteInitialContextFactory.
+ </span></p>
+ <a name="example"><h2>Example application</h2></a>
+ <p><span class="bodyBlack">
+ You can use the OpenEJB Hello World as an
+ example EJB to test things out. You won't
+ need to do anything differently. Deploy
+ the myHelloEjb.jar just as described in
+ <a href="http://www.openejb.org/hello-world.html" target="_blank">http://www.openejb.org/hello-world.html</a>
+ </span></p>
+ <p><span class="bodyBlack">
+ Register the factory in Tomcat by editing server.xml, i.e. add the above Ejb element declaration
+ between Context's tags of Tomcat's default <i>example</i> web application. Place the JSP - openejb.jsp -
+ in $CATALINA_HOME/webapps/examples directory.
+ </span></p>
+ <p><span class="bodyBlack">Start up Tomcat and enter <a href="http://localhost:8080/examples/openejb.jsp" target="_blank">http://localhost:8080/examples/openejb.jsp</a>. As a result, you should
+ see "Hello World!!!!!" on the screen.
+ </span></p>
+ <p><span class="bodyBlack">Tomcat should print out the following on its console (note OpenEJB messages about its startup):</span></p>
+ <table width="440" cellspacing="0" cellpadding="0" border="0"><tr><td bgcolor="#e0e0e0"><span class="code-block"><pre>
+Using CATALINA_BASE: C:\_Jacek\apps\jakarta-tomcat-4.1.18
+Using CATALINA_HOME: C:\_Jacek\apps\jakarta-tomcat-4.1.18
+Using CATALINA_TMPDIR: C:\_Jacek\apps\jakarta-tomcat-4.1.18\temp
+Using JAVA_HOME: C:\_JACEK\APPS\JDK1.3.1
+[INFO] Registry - -Loading registry information
+[INFO] Registry - -Creating new Registry instance
+[INFO] Registry - -Creating MBeanServer
+[INFO] Http11Protocol - -Initializing Coyote HTTP/1.1 on port 8080
+Starting service Tomcat-Standalone
+Apache Tomcat/4.1.18
+OpenEJB 0.9.0 build: 20030118-2205
+http://openejb.sf.net
+[INFO] Http11Protocol - -Starting Coyote HTTP/1.1 on port 8080
+[INFO] ChannelSocket - -JK2: ajp13 listening on 0.0.0.0/0.0.0.0:8009
+[INFO] JkMain - -Jk running ID=0 time=30/241
+ config=C:\_Jacek\apps\jakarta-tomcat-4.1.18\conf\jk2.properties</pre></span></td></tr></table>
+ </td><td align="left" valign="top" height="5" width="120"><img src="images/diagram-tomcat-adapter.gif" width="240" height="500" border="0"><br>
+
+
+
+ </td></tr><tr height="5"><td align="left" valign="top" bgcolor="#7270c2" height="5" width="20"> </td><td valign="top" bgcolor="#7270c2" height="5" width="95"> </td><td align="left" valign="top" bgcolor="#a9a5de" height="5" width="7"> </td><td align="left" valign="top" height="5" width="40"> </td><td align="left" valign="top" height="5" width="120"> </td></tr><tr><td align="left" valign="top" bgcolor="#7270c2" height="5" width="20"> </td><td align="left" valign="top" bgcolor="#7270c2" width="95"> </td><td align="left" valign="top" bgcolor="#a9a5de" width="7"><img border="0" height="25" width="1" src="images/dotTrans.gif"></td><td align="left" valign="top" width="40"><img border="0" height="25" width="1" src="images/dotTrans.gif"></td><td align="left" valign="top" width="120"> </td></tr><tr height="5"><td align="left" valign="bottom" bgcolor="#7270c2" height="100%" rowspan="2" width="20"><img border="0" height="125" width="20" sr
c="images/stripes1.gif"></td><td align="left" valign="bottom" bgcolor="#7270c2" height="100%" rowspan="2" width="95"><img border="0" height="125" width="105" src="images/stripe105.gif"></td><td align="left" valign="top" bgcolor="#a9a5de" height="100%" rowspan="2" width="7"> </td><td align="left" valign="top" height="100%" width="40"> </td><td align="left" valign="top" height="100%" width="120"> </td></tr><tr height="5"><td align="left" valign="top" height="25" width="40"> </td><td align="left" valign="bottom" height="25" width="430"><br><br><img height="3" width="430" border="0" src="images/line_light.gif"><br><p></p><span class="bodyGrey"><small><notice>
+ OpenEJB is a trademark of the OpenEJB Group.
+ Java, EJB, JDBC, JNDI, JTA, Sun, Sun Microsystems are trademarks or registered
+ trademarks of Sun Microsystems, Inc. in the United States and in other
+ countries. XML, XML Schema, XSLT and related standards are trademarks or registered
+ trademarks of MIT, INRIA, Keio or others, and a product of the World Wide Web
+ Consortium. All other product names mentioned herein are trademarks of their respective
+ owners.
+ </notice><br> <br></small></span><p></p>
+
+ </td><td align="left" valign="top" height="25" width="120"> </td></tr></table></body></html>
\ No newline at end of file
Added: openejb/trunk/website/html/old-site/html/tomcat-setup-win.html
URL: http://svn.apache.org/viewvc/openejb/trunk/website/html/old-site/html/tomcat-setup-win.html?rev=1134776&view=auto
==============================================================================
--- openejb/trunk/website/html/old-site/html/tomcat-setup-win.html (added)
+++ openejb/trunk/website/html/old-site/html/tomcat-setup-win.html Sat Jun 11 21:33:33 2011
@@ -0,0 +1,332 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Setting up Tomcat with OpenEJB On Window's 2000</title><link href="default.css" rel="stylesheet"><link href="/images/favicon.ico" rel="SHORTCUT ICON"></head><body marginwidth="0" marginheight="0" leftmargin="0" bottommargin="0" topmargin="0" vlink="#6763a9" link="#6763a9" bgcolor="#ffffff"><a name="top"></a><table height="400" width="712" cellspacing="0" cellpadding="0" border="0"><tr><td bgcolor="#7270c2" align="left" valign="top" width="20"><img border="0" height="1" width="1" src="images/dotTrans.gif"></td><td bgcolor="#7270c2" align="left" valign="top" width="95"><img border="0" height="1" width="1" src="images/dotTrans.gif"></td><td align="left" valign="top" width="7"><img height="1" width="1" border="0" src="images/dotTrans.gif"></td><td align="left" valign="top" width="40"><img border="0" height="6" width="40" src="images/dotTrans.gif"></td><td bgcolor="#5A5CB8" align="left" valign="
top" width="430"><img border="0" height="6" width="430" src="images/top_2.gif"></td><td bgcolor="#E24717" align="left" valign="top" width="120"><img src="images/top_3.gif" width="120" height="6" border="0"></td></tr><tr><td align="left" valign="top" bgcolor="#7270c2" width="20"><img height="1" width="1" border="0" src="images/dotTrans.gif"></td><td align="left" valign="top" bgcolor="#7270c2" width="95"><img height="1" width="1" border="0" src="images/dotTrans.gif"></td><td align="left" valign="top" bgcolor="#ffffff" width="7"></td><td align="left" valign="top" width="40"><img border="0" height="1" width="1" src="images/dotTrans.gif"></td><td align="left" valign="middle" width="430"><a href="faq.html"><span class="menuTopOff">[ f a q ]</span></a> <a href="http://wiki.codehaus.org/openejb"><span class="menuTopOff">[ w i k i ]</span></a> <a href="http://archive.openejb.codehaus.org/user/"><span class="menuTopOff">[ l i s
t s ]</span></a> <a href="http://cvs.openejb.org/"><span class="menuTopOff">[ c v s ]</span></a> <a href="http://jira.codehaus.org/secure/BrowseProject.jspa?id=10401"><span class="menuTopOff">[ b u g s ]</span></a> <br><img border="0" height="2" width="1" src="images/dotTrans.gif"></td><td align="left" valign="top" height="20" width="120"> </td></tr><tr><td align="left" valign="top" bgcolor="#7270c2" width="20"><img border="0" height="3" width="20" src="images/dotTrans.gif"></td><td align="left" valign="top" bgcolor="#7270c2" width="95"><img border="0" height="3" width="105" src="images/line_sm.gif"></td><td align="left" valign="top" bgcolor="#a9a5de" width="7"><img border="0" height="3" width="7" src="images/line_sm.gif"></td><td align="left" valign="top" width="40"><img border="0" height="3" width="40" src="images/line_light.gif"></td><td align="left" valign="top" width="430"><img
border="0" height="3" width="430" src="images/line_light.gif"></td><td align="left" valign="top" width="120"><img height="1" width="1" border="0" src="images/dotTrans.gif"></td></tr><tr><td align="left" valign="top" bgcolor="#7270c2"><img border="0" height="10" width="20" src="images/dotTrans.gif"></td><td align="left" valign="top" bgcolor="#7270c2" width="95"><img border="0" height="2" width="1" src="images/dotTrans.gif"><br><table cellspacing="0" cellpadding="0" border="0"><tr><td align="left" valign="top"><span class="subMenuOn">Main</span></td></tr><tr><td align="left" valign="top"><a href="index.html"><span class="subMenuOff">
+ Welcome!</span></a></td></tr><tr><td align="left" valign="top"><a href="download.html"><span class="subMenuOff">
+ Download</span></a></td></tr><tr><td align="left" valign="top"><a href="lists.html"><span class="subMenuOff">
+ Mailing Lists</span></a></td></tr><tr><td align="left" valign="top"><a href="cvs.html"><span class="subMenuOff">
+ Source Code</span></a></td></tr><tr><td align="left" valign="top"><a href="contributors.html"><span class="subMenuOff">
+ The Team</span></a></td></tr><tr><td align="left" valign="top"><a href="status.html"><span class="subMenuOff">
+ Status</span></a></td></tr></table><table cellspacing="0" cellpadding="0" border="0"><tr><td align="left" valign="top"><span class="subMenuOn">Users</span></td></tr><tr><td align="left" valign="top"><a href="quickstart.html"><span class="subMenuOff">
+ Quickstart</span></a></td></tr><tr><td align="left" valign="top"><a href="hello-world.html"><span class="subMenuOff">
+ Hello World!</span></a></td></tr><tr><td align="left" valign="top"><a href="cmp_entity_postgresql.html"><span class="subMenuOff">
+ CMP Example</span></a></td></tr><tr><td align="left" valign="top"><a href="cmp_guide.html"><span class="subMenuOff">
+ CMP Guide</span></a></td></tr><tr><td align="left" valign="top"><a href="deploy.html"><span class="subMenuOff">
+ Deploy</span></a></td></tr><tr><td align="left" valign="top"><a href="start-command.html"><span class="subMenuOff">
+ Startup</span></a></td></tr><tr><td align="left" valign="top"><a href="validate.html"><span class="subMenuOff">
+ Validation</span></a></td></tr><tr><td align="left" valign="top"><a href="config_containers.html"><span class="subMenuOff">
+ Configuration</span></a></td></tr><tr><td align="left" valign="top"><a href="properties.html"><span class="subMenuOff">
+ Properties</span></a></td></tr></table><table cellspacing="0" cellpadding="0" border="0"><tr><td align="left" valign="top"><span class="subMenuOn">Servers</span></td></tr><tr><td align="left" valign="top"><a href="embedded.html"><span class="subMenuOff">
+ Local Server</span></a></td></tr><tr><td align="left" valign="top"><a href="remote-server.html"><span class="subMenuOff">
+ Remote Server</span></a></td></tr><tr><td align="left" valign="top"><a href="tomcat.html"><span class="subMenuOff">
+ Tomcat</span></a></td></tr><tr><td align="left" valign="top"><a href="geronimo.html"><span class="subMenuOff">
+ Geronimo</span></a></td></tr></table><table cellspacing="0" cellpadding="0" border="0"><tr><td align="left" valign="top"><span class="subMenuOn">Integrators</span></td></tr><tr><td align="left" valign="top"><a href="whyopenejb.html"><span class="subMenuOff">
+ Why OpenEJB</span></a></td></tr><tr><td align="left" valign="top"><a href="containersystem.html"><span class="subMenuOff">
+ Overview</span></a></td></tr><tr><td align="left" valign="top"><a href="design_openejb.html"><span class="subMenuOff">
+ Design</span></a></td></tr><tr><td align="left" valign="top"><a href="OpenEJB_presentaion.ppt"><span class="subMenuOff">
+ Presentation</span></a></td></tr></table><img border="0" height="15" width="1" src="images/dotTrans.gif"><br><img border="0" height="3" width="105" src="images/line_sm.gif"><br><A href="http://codehaus.org"><IMG alt="The Codehaus" border="0" height="17" width="88" src="http://www.openejb.org/codehaus-smaller.png"></A></td><td align="left" valign="top" bgcolor="#a9a5de" width="7"> </td><td align="left" valign="top" width="40"> </td><td valign="top" width="430" rowspan="4"><table width="430" cellspacing="0" cellpadding="0" border="0" rows="2" cols="1"><tr><td align="left" valign="top"><br><img width="200" vspace="0" src="./images/logo_ejb2.gif" hspace="0" height="55" border="0"><br><img src="images/dotTrans.gif" hspace="0" height="7" border="0"><br><span class="pageTitle">Setting up Tomcat with OpenEJB On Window's 2000</span><br><img src="images/dotTrans.gif" hspace="0" height="1" border="0"></td></tr></table><p></p><p></p><br><span class="toc"><a hre
f="#intro">Notes</a><br></span><span class="toc"><a href="#intro">Before we start</a><br></span><span class="toc"><a href="#intro">Installing Everything</a><br></span><span class="toc"><img border="0" height="1" width="15" src="images/dotTrans.gif"><a href="#download.tomcat">Install Tomcat</a><br></span><span class="toc"><img border="0" height="1" width="15" src="images/dotTrans.gif"><a href="#download.openejb">Install OpenEJB</a><br></span><span class="toc"><img border="0" height="1" width="15" src="images/dotTrans.gif"><a href="#download.openejb">Hook them together</a><br></span><span class="toc"><img border="0" height="1" width="15" src="images/dotTrans.gif"><a href="#restart">Restart Tomcat</a><br></span><span class="toc"><a href="#example">Example Servlet</a><br></span><span class="toc"><a href="#didnotwork">What if it Didn't Work?</a><br></span><br><a name="intro"><h2>Notes</h2></a>
+<p><span class="bodyBlack">
+This is a rough draft of how to set up Tomcat with OpenEJB on Window's 2000.
+These are the minimum steps for integrating OpenEJB into Tomcat. The commands
+in this document are specifically for a Window's DOS prompt and Window's environment.
+Please feel free to add to this document or email the
+<a href="mailto:user@openejb.org">openejb user</a>
+mailing list with your suggetions. <b>Your suggestions are always welcome!</b>
+</span></p>
+<a name="intro"><h2>Before we start</h2></a>
+<p><span class="bodyBlack">
+We always tell users to send us info on their OS and what version of
+OpenEJB, Java, or any other programs they are using when they submit
+support requests. So, I guess it's only fair I do the same.
+</span></p>
+
+<p><span class="bodyBlack">
+Here is some
+information about my setup </span></p>
+
+<p><span class="bodyBlack">
+Here's the version of Window's and Java that I'm using:
+<table width="440" cellspacing="0" cellpadding="0" border="0"><tr><td bgcolor="#e0e0e0"><span class="code-block"><pre>
+Microsoft Windows 2000 [Version 5.00.2195]
+(C) Copyright 1985-2000 Microsoft Corp.
+<br>
+C:\>java -version
+java version "1.4.1-rc"
+Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.1-rc-b19)
+Java HotSpot(TM) Client VM (build 1.4.1-rc-b19, mixed mode)
+</pre></span></td></tr></table>
+</span></p>
+<a name="intro"><h2>Installing Everything</h2></a>
+<a name="download.tomcat"><h3>Install Tomcat</h3></a>
+<p><span class="bodyBlack">
+If you don't already have Tomcat on your machine, download the
+Tomcat version of your choice from Apache.
+</span></p>
+<p><span class="bodyBlack">
+<a href="http://jakarta.apache.org/builds/jakarta-tomcat-4.0/release/" target="_blank">
+http://jakarta.apache.org/builds/jakarta-tomcat-4.0/release/</a><br>
+<br>
+Go into the latest version and click on the bin directory.
+If you have version 1.4.x of the Java 2 SDK you could download:
+<b>jakarta-tomcat-4.x.x-LE-jdk14.exe</b> - which is a lighter version for 1.4.x
+and makes use of the libraries that version 1.4.x has.
+Otherwise download <b>jakarta-tomcat-4.x.x.exe</b> which has the libraries that all
+versions below Java 2 SDK 1.4.x are missing.
+</span></p>
+
+<table bgcolor="#7270c2" width="440" cellspacing="0" cellpadding="0" border="0"><tr><td bgcolor="#7270c2"><span class="note-caption"> NOTE</span></td></tr><tr><td bgcolor="#7270c2"><table bgcolor="#7270c2" width="100%" cellspacing="2" cellpadding="7" border="0"><tr><td bgcolor="#FFFFFF"><span class="note">
+As an alternative to the self executable Tomcat download for Window's, you may also download the
+zip version named: jakarta-tomcat-4.x.x.zip or jakarta-tomcat-4.x.x-LE-jdk14.zip. Unzip this version
+into a directory instead of installing via the Window's installer. The main difference between the two is that the zip
+version does not have an NT Service installer or Start menu additions, so you would have to start/stop Tomcat manually.
+<br><br>
+If you choose to download the zip version of Tomcat, unzip it to a directory that makes sense to you
+(such as C:\) and follow the post Tomcat install directions. The start/stop Tomcat
+utility will not be in Start->Programs->Apache Tomcat 4.1, instead they will be in C:\tomcat-4.x.x\bin
+and you will need to run them manually by double clicking on them. The rest of the Tomcat directory structure will
+be the same in both versions.
+</span></td></tr></table></td></tr></table>
+
+<p><span class="bodyBlack">
+Install Tomcat
+</span></p>
+<p><span class="bodyBlack">
+Go to the directory you downloaded and double click jakarta-tomcat-xxx.exe. An install
+shield will pop up and ask you for several options. You may wish to click the check box that
+installs Tomcat as an NT service.<br>
+</span></p>
+<p><span class="bodyBlack">
+<img src="images/tomcat_windows_nt_service.jpg" width="426" height="288" border="0" alt="">
+</span></p>
+<p><span class="bodyBlack">
+Once Tomcat is finished installing, it will automatically start up and you can test it by
+visiting this link: <a href="http://localhost:8080" target="_blank">http://localhost:8080</a>. If there are
+any problems, consult the Tomcat documentation on their website.
+</span></p>
+
+
+<a name="download.openejb"><h3>Install OpenEJB</h3></a>
+<p><span class="bodyBlack">
+You need OpenEJB 0.9.0 or higher, any older versions of OpenEJB will not
+work. You can get that here: <a href="http://www.openejb.org/download.html" target="_blank">
+http://www.openejb.org/download.html</a> - download the zip version of OpenEJB. If you do not
+have a zip utility, you can get WinZip here:
+<a href="http://download.com.com/3000-2250-10161502.html" target="_blank">
+http://download.com.com/3000-2250-10161502.html</a>
+</span></p>
+<p><span class="bodyBlack">
+Unpack OpenEJB
+</span></p>
+<p><span class="bodyBlack">
+Open your zip utility and unpack OpenEJB into the C:\ folder, or one that makes sense to you.
+For our examples, we'll unpack it into c:\openejb-0.9.0
+</span></p>
+
+
+<a name="download.openejb"><h3>Hook them together</h3></a>
+<p><span class="bodyBlack">
+ Go to the Tomcat Dir. In our case it should be:
+ <b>C:\Program Files\Apache Group\Tomcat 4.1</b>
+</span></p>
+
+<p><span class="bodyBlack">
+Add the OpenEJB Loader to Tomcat
+</span></p>
+
+<p><span class="bodyBlack">
+We'll want to copy <b>openejb_loader-0.9.0.war</b> from the OpenEJB dist directory
+to the Tomcat webapps directory.
+</span></p>
+
+<img src="images/tomcat_windows_dist_dir.jpg" width="552" height="381" border="0" alt="">
+<img src="images/tomcat_windows_webapps_dir.jpg" width="552" height="381" border="0" alt="">
+
+<p><span class="bodyBlack">
+If you add openejb_loader-0.9.0.war to the webapps directory while Tomcat is running, it
+should automatically unpack the file and create a openejb_loader-0.9.0
+folder. If it doesn't automatically extract, check the server.xml file
+that comes with Tomcat.
+</span></p>
+
+
+<p><span class="bodyBlack">
+Now, let the OpenEJB Loader webapp know where to find your OpenEJB
+distribution by setting the openejb.home init-param.
+</span></p>
+<p><span class="bodyBlack">
+Open the web.xml file in the directory
+webapps\openejb_loader-0.9.0\WEB-INF. Uncomment the openejb.home
+init-param then change the value from the default value to the actual
+path of your OpenEJB home directory.
+</span></p>
+
+<img src="images/tomcat_windows_webxml.gif" width="567" height="402" border="0" alt="">
+
+
+<a name="restart"><h3>Restart Tomcat</h3></a>
+
+<p><span class="bodyBlack">
+Now, stop Tomcat and then start it again.
+</span></p>
+
+<img src="images/tomcat_windows_stop.gif" width="395" height="186" border="0" alt="">
+
+<p><span class="bodyBlack">
+ At this point, you're actually finished.
+ All the libraries you need are in place.
+ </span></p>
+
+ <p><span class="bodyBlack">
+ Your servlets should use the following
+ InitialContextFactory when creating
+ an InitialContext to lookup beans
+</span></p>
+
+
+<p><span class="bodyBlack">
+<table width="440" cellspacing="0" cellpadding="0" border="0"><tr><td bgcolor="#e0e0e0"><span class="code-block"><pre>org.openejb.client.LocalInitialContextFactory</pre></span></td></tr></table>
+</span></p>
+
+<p><span class="bodyBlack">
+The openejb.home is taken care of for us
+with the OpenEJB Loader webapp , so no other
+JNDI options are needed by your servlets to get an
+InitialContext from OpenEJB
+</span></p>
+
+<a name="example"><h2>Example Servlet</h2></a>
+<p><span class="bodyBlack">
+You can use the OpenEJB Hello World as an
+example EJB to test things out. You won't
+need to do anything differently. Deploy
+the myHelloEjb.jar just as described.
+</span></p>
+
+<p><span class="bodyBlack">
+<a href="http://www.openejb.org/hello-world.html" target="_blank">
+http://www.openejb.org/hello-world.html
+</a>
+</span></p>
+
+<p><span class="bodyBlack">
+Once deployed, the myHelloEjb.jar should be in the beans directory.
+</span></p>
+
+<p><span class="bodyBlack">
+<table width="440" cellspacing="0" cellpadding="0" border="0"><tr><td bgcolor="#e0e0e0"><span class="code-block"><pre>
+C:\openejb-0.9.0\beans\myHelloEjb.jar
+</pre></span></td></tr></table>
+</span></p>
+
+<p><span class="bodyBlack">
+You can use the HelloOpenEJB servlet
+below as an example of a
+servlet that looks up beans from OpenEJB.
+</span></p>
+
+<p><span class="bodyBlack">
+It uses the HelloBean created in the
+OpenEJB Hello World document, so you'll
+need to run through that first.
+You can put the servlet in the following
+webapps directory
+</span></p>
+
+<p><span class="bodyBlack">
+<table width="440" cellspacing="0" cellpadding="0" border="0"><tr><td bgcolor="#e0e0e0"><span class="code-block"><pre>
+C:\Program Files\Apache Group\Tomcat 4.1\webapps\examples\WEB-INF\classes
+</pre></span></td></tr></table>
+</span></p>
+<p><span class="bodyBlack">
+<table width="440" cellspacing="0" cellpadding="0" border="0"><tr><td bgcolor="#c0c0c0"><i><span class="code-title">HelloOpenEJB.java</span></i></td></tr><tr><td bgcolor="#e0e0e0"><span class="code-block"><pre>
+import java.io.*;
+import java.util.*;
+import javax.servlet.*;
+import javax.servlet.http.*;
+import javax.naming.*;
+import javax.rmi.PortableRemoteObject;
+
+import org.acme.*;
+
+public class HelloOpenEJB extends HttpServlet {
+
+ String factory = "org.openejb.client.LocalInitialContextFactory";
+
+ public void doGet(HttpServletRequest request, HttpServletResponse response)
+ throws IOException, ServletException {
+ PrintWriter out = response.getWriter();
+ try{
+
+ Properties p = new Properties();
+
+ p.put(Context.INITIAL_CONTEXT_FACTORY, factory );
+ InitialContext ctx = new InitialContext( p );
+
+ //Lookup the bean using it's deployment id
+ Object obj = ctx.lookup("/Hello");
+
+ HelloHome ejbHome = (HelloHome)
+ PortableRemoteObject.narrow(obj, HelloHome.class);
+
+ //Use the HelloHome to create a HelloObject
+ HelloObject ejbObject = ejbHome.create();
+
+ //The part we've all been wainting for...
+
+ out.println("<html>");
+ out.println("<body>");
+ out.println("<head>");
+ out.println("<title>Hello World!</title>");
+ out.println("</head>");
+ out.println("<body>");
+ out.println("<h1>"+ ejbObject.sayHello() +"</h1>");
+ out.println("</body>");
+ out.println("</html>");
+ } catch (Exception e){
+ response.setContentType("text/plain");
+ e.printStackTrace(out);
+ }
+
+ }
+}
+</pre></span></td></tr></table>
+</span></p>
+
+<p><span class="bodyBlack">
+Now, pop open your browser and go to the
+following URL.
+</span></p>
+
+<p><span class="bodyBlack">
+<table width="440" cellspacing="0" cellpadding="0" border="0"><tr><td bgcolor="#e0e0e0"><span class="code-block"><pre>
+<a href="http://localhost:8080/examples/servlet/HelloOpenEJB" target="_blank">
+http://localhost:8080/examples/servlet/HelloOpenEJB</a>
+</pre></span></td></tr></table>
+</span></p>
+
+<p><span class="bodyBlack">
+Should say "Hello World!!!" on the screen
+</span></p>
+<a name="didnotwork"><h2>What if it Didn't Work?</h2></a>
+<p><span class="bodyBlack">
+1. Try re-starting Tomcat. The war file that was copied or the environment
+variable that we set may not have gotten picked up by Tomcat.<br>
+2. Make sure the openejb.home init-param in the web.xml file points
+to where you installed OpenEJB.<br>
+3. Check C:\Program Files\Apache Group\Tomcat 4.1 to see if there is
+an openejb.log file.<br>
+4. Send an email to the email list <a href="mailto:user@openejb.org">
+user@openejb.org</a> and give a thorough explain the problem.
+</span></p>
+</td><td align="left" valign="top" height="5" width="120"><img src="images/diagram-tomcat-adapter.gif" width="240" height="500" border="0"><br>
+
+
+
+ </td></tr><tr height="5"><td align="left" valign="top" bgcolor="#7270c2" height="5" width="20"> </td><td valign="top" bgcolor="#7270c2" height="5" width="95"> </td><td align="left" valign="top" bgcolor="#a9a5de" height="5" width="7"> </td><td align="left" valign="top" height="5" width="40"> </td><td align="left" valign="top" height="5" width="120"> </td></tr><tr><td align="left" valign="top" bgcolor="#7270c2" height="5" width="20"> </td><td align="left" valign="top" bgcolor="#7270c2" width="95"> </td><td align="left" valign="top" bgcolor="#a9a5de" width="7"><img border="0" height="25" width="1" src="images/dotTrans.gif"></td><td align="left" valign="top" width="40"><img border="0" height="25" width="1" src="images/dotTrans.gif"></td><td align="left" valign="top" width="120"> </td></tr><tr height="5"><td align="left" valign="bottom" bgcolor="#7270c2" height="100%" rowspan="2" width="20"><img border="0" height="125" width="20" sr
c="images/stripes1.gif"></td><td align="left" valign="bottom" bgcolor="#7270c2" height="100%" rowspan="2" width="95"><img border="0" height="125" width="105" src="images/stripe105.gif"></td><td align="left" valign="top" bgcolor="#a9a5de" height="100%" rowspan="2" width="7"> </td><td align="left" valign="top" height="100%" width="40"> </td><td align="left" valign="top" height="100%" width="120"> </td></tr><tr height="5"><td align="left" valign="top" height="25" width="40"> </td><td align="left" valign="bottom" height="25" width="430"><br><br><img height="3" width="430" border="0" src="images/line_light.gif"><br><p></p><span class="bodyGrey"><small><notice>
+ OpenEJB is a trademark of the OpenEJB Group.
+ Java, EJB, JDBC, JNDI, JTA, Sun, Sun Microsystems are trademarks or registered
+ trademarks of Sun Microsystems, Inc. in the United States and in other
+ countries. XML, XML Schema, XSLT and related standards are trademarks or registered
+ trademarks of MIT, INRIA, Keio or others, and a product of the World Wide Web
+ Consortium. All other product names mentioned herein are trademarks of their respective
+ owners.
+ </notice><br> <br></small></span><p></p>
+
+ </td><td align="left" valign="top" height="25" width="120"> </td></tr></table></body></html>
\ No newline at end of file
Added: openejb/trunk/website/html/old-site/html/tomcat-setup.html
URL: http://svn.apache.org/viewvc/openejb/trunk/website/html/old-site/html/tomcat-setup.html?rev=1134776&view=auto
==============================================================================
--- openejb/trunk/website/html/old-site/html/tomcat-setup.html (added)
+++ openejb/trunk/website/html/old-site/html/tomcat-setup.html Sat Jun 11 21:33:33 2011
@@ -0,0 +1,313 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>David's notes on setting up Tomcat with OpenEJB</title><link href="default.css" rel="stylesheet"><link href="/images/favicon.ico" rel="SHORTCUT ICON"></head><body marginwidth="0" marginheight="0" leftmargin="0" bottommargin="0" topmargin="0" vlink="#6763a9" link="#6763a9" bgcolor="#ffffff"><a name="top"></a><table height="400" width="712" cellspacing="0" cellpadding="0" border="0"><tr><td bgcolor="#7270c2" align="left" valign="top" width="20"><img border="0" height="1" width="1" src="images/dotTrans.gif"></td><td bgcolor="#7270c2" align="left" valign="top" width="95"><img border="0" height="1" width="1" src="images/dotTrans.gif"></td><td align="left" valign="top" width="7"><img height="1" width="1" border="0" src="images/dotTrans.gif"></td><td align="left" valign="top" width="40"><img border="0" height="6" width="40" src="images/dotTrans.gif"></td><td bgcolor="#5A5CB8" align="left" valign="
top" width="430"><img border="0" height="6" width="430" src="images/top_2.gif"></td><td bgcolor="#E24717" align="left" valign="top" width="120"><img src="images/top_3.gif" width="120" height="6" border="0"></td></tr><tr><td align="left" valign="top" bgcolor="#7270c2" width="20"><img height="1" width="1" border="0" src="images/dotTrans.gif"></td><td align="left" valign="top" bgcolor="#7270c2" width="95"><img height="1" width="1" border="0" src="images/dotTrans.gif"></td><td align="left" valign="top" bgcolor="#ffffff" width="7"></td><td align="left" valign="top" width="40"><img border="0" height="1" width="1" src="images/dotTrans.gif"></td><td align="left" valign="middle" width="430"><a href="faq.html"><span class="menuTopOff">[ f a q ]</span></a> <a href="http://wiki.codehaus.org/openejb"><span class="menuTopOff">[ w i k i ]</span></a> <a href="http://archive.openejb.codehaus.org/user/"><span class="menuTopOff">[ l i s
t s ]</span></a> <a href="http://cvs.openejb.org/"><span class="menuTopOff">[ c v s ]</span></a> <a href="http://jira.codehaus.org/secure/BrowseProject.jspa?id=10401"><span class="menuTopOff">[ b u g s ]</span></a> <br><img border="0" height="2" width="1" src="images/dotTrans.gif"></td><td align="left" valign="top" height="20" width="120"> </td></tr><tr><td align="left" valign="top" bgcolor="#7270c2" width="20"><img border="0" height="3" width="20" src="images/dotTrans.gif"></td><td align="left" valign="top" bgcolor="#7270c2" width="95"><img border="0" height="3" width="105" src="images/line_sm.gif"></td><td align="left" valign="top" bgcolor="#a9a5de" width="7"><img border="0" height="3" width="7" src="images/line_sm.gif"></td><td align="left" valign="top" width="40"><img border="0" height="3" width="40" src="images/line_light.gif"></td><td align="left" valign="top" width="430"><img
border="0" height="3" width="430" src="images/line_light.gif"></td><td align="left" valign="top" width="120"><img height="1" width="1" border="0" src="images/dotTrans.gif"></td></tr><tr><td align="left" valign="top" bgcolor="#7270c2"><img border="0" height="10" width="20" src="images/dotTrans.gif"></td><td align="left" valign="top" bgcolor="#7270c2" width="95"><img border="0" height="2" width="1" src="images/dotTrans.gif"><br><table cellspacing="0" cellpadding="0" border="0"><tr><td align="left" valign="top"><span class="subMenuOn">Main</span></td></tr><tr><td align="left" valign="top"><a href="index.html"><span class="subMenuOff">
+ Welcome!</span></a></td></tr><tr><td align="left" valign="top"><a href="download.html"><span class="subMenuOff">
+ Download</span></a></td></tr><tr><td align="left" valign="top"><a href="lists.html"><span class="subMenuOff">
+ Mailing Lists</span></a></td></tr><tr><td align="left" valign="top"><a href="cvs.html"><span class="subMenuOff">
+ Source Code</span></a></td></tr><tr><td align="left" valign="top"><a href="contributors.html"><span class="subMenuOff">
+ The Team</span></a></td></tr><tr><td align="left" valign="top"><a href="status.html"><span class="subMenuOff">
+ Status</span></a></td></tr></table><table cellspacing="0" cellpadding="0" border="0"><tr><td align="left" valign="top"><span class="subMenuOn">Users</span></td></tr><tr><td align="left" valign="top"><a href="quickstart.html"><span class="subMenuOff">
+ Quickstart</span></a></td></tr><tr><td align="left" valign="top"><a href="hello-world.html"><span class="subMenuOff">
+ Hello World!</span></a></td></tr><tr><td align="left" valign="top"><a href="cmp_entity_postgresql.html"><span class="subMenuOff">
+ CMP Example</span></a></td></tr><tr><td align="left" valign="top"><a href="cmp_guide.html"><span class="subMenuOff">
+ CMP Guide</span></a></td></tr><tr><td align="left" valign="top"><a href="deploy.html"><span class="subMenuOff">
+ Deploy</span></a></td></tr><tr><td align="left" valign="top"><a href="start-command.html"><span class="subMenuOff">
+ Startup</span></a></td></tr><tr><td align="left" valign="top"><a href="validate.html"><span class="subMenuOff">
+ Validation</span></a></td></tr><tr><td align="left" valign="top"><a href="config_containers.html"><span class="subMenuOff">
+ Configuration</span></a></td></tr><tr><td align="left" valign="top"><a href="properties.html"><span class="subMenuOff">
+ Properties</span></a></td></tr></table><table cellspacing="0" cellpadding="0" border="0"><tr><td align="left" valign="top"><span class="subMenuOn">Servers</span></td></tr><tr><td align="left" valign="top"><a href="embedded.html"><span class="subMenuOff">
+ Local Server</span></a></td></tr><tr><td align="left" valign="top"><a href="remote-server.html"><span class="subMenuOff">
+ Remote Server</span></a></td></tr><tr><td align="left" valign="top"><a href="tomcat.html"><span class="subMenuOff">
+ Tomcat</span></a></td></tr><tr><td align="left" valign="top"><a href="geronimo.html"><span class="subMenuOff">
+ Geronimo</span></a></td></tr></table><table cellspacing="0" cellpadding="0" border="0"><tr><td align="left" valign="top"><span class="subMenuOn">Integrators</span></td></tr><tr><td align="left" valign="top"><a href="whyopenejb.html"><span class="subMenuOff">
+ Why OpenEJB</span></a></td></tr><tr><td align="left" valign="top"><a href="containersystem.html"><span class="subMenuOff">
+ Overview</span></a></td></tr><tr><td align="left" valign="top"><a href="design_openejb.html"><span class="subMenuOff">
+ Design</span></a></td></tr><tr><td align="left" valign="top"><a href="OpenEJB_presentaion.ppt"><span class="subMenuOff">
+ Presentation</span></a></td></tr></table><img border="0" height="15" width="1" src="images/dotTrans.gif"><br><img border="0" height="3" width="105" src="images/line_sm.gif"><br><A href="http://codehaus.org"><IMG alt="The Codehaus" border="0" height="17" width="88" src="http://www.openejb.org/codehaus-smaller.png"></A></td><td align="left" valign="top" bgcolor="#a9a5de" width="7"> </td><td align="left" valign="top" width="40"> </td><td valign="top" width="430" rowspan="4"><table width="430" cellspacing="0" cellpadding="0" border="0" rows="2" cols="1"><tr><td align="left" valign="top"><br><img width="200" vspace="0" src="./images/logo_ejb2.gif" hspace="0" height="55" border="0"><br><img src="images/dotTrans.gif" hspace="0" height="7" border="0"><br><span class="pageTitle">David's notes on setting up Tomcat with OpenEJB</span><br><img src="images/dotTrans.gif" hspace="0" height="1" border="0"></td></tr></table><p></p><p></p><br><span class="toc"><a hre
f="#intro">Notes</a><br></span><span class="toc"><a href="#intro">Before we start</a><br></span><span class="toc"><a href="#intro">Installing Everything</a><br></span><span class="toc"><img border="0" height="1" width="15" src="images/dotTrans.gif"><a href="#download.tomcat">Install Tomcat</a><br></span><span class="toc"><img border="0" height="1" width="15" src="images/dotTrans.gif"><a href="#download.openejb">Install OpenEJB</a><br></span><span class="toc"><img border="0" height="1" width="15" src="images/dotTrans.gif"><a href="#download.openejb">Hook them together</a><br></span><span class="toc"><a href="#example">Example Servlet</a><br></span><br><a name="intro"><h2>Notes</h2></a>
+<p><span class="bodyBlack">
+These are my notes from writing the Tomcat/OpenEJB integration. These are
+the minimum steps for integrating OpenEJB into Tomcat. The commands in this
+document are specifically for a bash shell in either Linux, Unix, Mac OS X
+or Windows with Cygwin.
+</span></p>
+
+<p><span class="bodyBlack">
+The steps will be the same for the Windows Command Prompt, but the
+syntax of the commands themselves will obviously be different. Aside from
+that, there isn't a whole lot of information on what is going on behind
+the sences. So, I encourage *anyone* to feel completely welcome (perhaps
+obligated) to rewrite this document.
+</span></p>
+
+<p><span class="bodyBlack">
+<i>Anyone...anyone...Bueller...Bueller....</i>
+</span></p>
+<p><span class="bodyBlack">
+Regardless, this should help people get started. So here goes.
+</span></p>
+
+<a name="intro"><h2>Before we start</h2></a>
+
+<p><span class="bodyBlack">
+We always tell users to send us info on their OS and what version of
+OpenEJB, Java, or any other programs they are using when they submit
+support requests. So, I guess it's only fair I do the same.
+</span></p>
+
+<p><span class="bodyBlack">
+Here is some
+information about my setup </span></p>
+
+<p><span class="bodyBlack">
+
+<table width="440" cellspacing="0" cellpadding="0" border="0"><tr><td bgcolor="#e0e0e0"><span class="code-block"><pre>
+dblevins@Miles /home/j2ee
+$ pwd
+/home/j2ee
+
+dblevins@Miles /home/j2ee
+$ uname -a
+CYGWIN_NT-5.0 Miles 1.3.12(0.54/3/2) 2002-07-06 02:16 i686 unknown
+
+dblevins@Miles /home/j2ee
+$ java -version
+java version "1.3.1"
+Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.1-b24)
+Java HotSpot(TM) Client VM (build 1.3.1-b24, mixed mode)
+</pre></span></td></tr></table>
+</span></p>
+<a name="intro"><h2>Installing Everything</h2></a>
+<a name="download.tomcat"><h3>Install Tomcat</h3></a>
+<p><span class="bodyBlack">
+If you don't already have Tomcat on your machine, download the
+Tomcat version of your choice from Apache we recommend the latest
+version as it has the most up-to-date libraries) In our example,
+we'll be using version 4.1.12.
+</span></p>
+<p><span class="bodyBlack">
+<a href="http://jakarta.apache.org/builds/jakarta-tomcat-4.0/release/" target="_blank">
+http://jakarta.apache.org/builds/jakarta-tomcat-4.0/release/</a>
+</span></p>
+<p><span class="bodyBlack">
+Unpack Tomcat
+</span></p>
+<p><span class="bodyBlack">
+<table width="440" cellspacing="0" cellpadding="0" border="0"><tr><td bgcolor="#e0e0e0"><span class="code-block"><pre>
+dblevins@Miles /home/j2ee
+$ tar xzvf jakarta-tomcat-4.1.12.tar.gz
+</pre></span></td></tr></table>
+</span></p>
+
+
+
+<a name="download.openejb"><h3>Install OpenEJB</h3></a>
+<p><span class="bodyBlack">
+You need OpenEJB 0.9.0 or higher, any older versions of OpenEJB will not
+work. You can get that here: <a href="http://www.openejb.org/download.html" target="_blank">
+http://www.openejb.org/download.html</a>
+</span></p>
+<p><span class="bodyBlack">
+Unpack OpenEJB
+</span></p>
+<p><span class="bodyBlack">
+<table width="440" cellspacing="0" cellpadding="0" border="0"><tr><td bgcolor="#e0e0e0"><span class="code-block"><pre>
+dblevins@Miles /home/j2ee
+$ tar xzvf openejb-0.9.0.tar.gz
+</pre></span></td></tr></table>
+</span></p>
+
+
+<a name="download.openejb"><h3>Hook them together</h3></a>
+<p><span class="bodyBlack">
+ Go to the Tomcat Dir
+</span></p>
+
+<p><span class="bodyBlack">
+<table width="440" cellspacing="0" cellpadding="0" border="0"><tr><td bgcolor="#e0e0e0"><span class="code-block"><pre>
+dblevins@Miles /home/j2ee
+$ cd jakarta-tomcat-4.1.12
+</pre></span></td></tr></table>
+</span></p>
+
+<p><span class="bodyBlack">
+Pass the OPENEJB_HOME dir into Tomcat
+using the CATALINA_OPTS environment variable
+</span></p>
+
+<p><span class="bodyBlack">
+<table width="440" cellspacing="0" cellpadding="0" border="0"><tr><td bgcolor="#e0e0e0"><span class="code-block"><pre>
+dblevins@Miles /home/j2ee/jakarta-tomcat-4.1.12
+$ export CATALINA_OPTS='-Dopenejb.home=/home/j2ee/openejb-0.9.0'
+</pre></span></td></tr></table>
+</span></p>
+
+<p><span class="bodyBlack">
+Add the OpenEJB Loader to Tomcat
+</span></p>
+
+<p><span class="bodyBlack">
+<table width="440" cellspacing="0" cellpadding="0" border="0"><tr><td bgcolor="#e0e0e0"><span class="code-block"><pre>
+dblevins@Miles /home/j2ee/jakarta-tomcat-4.1.12
+$ cp ../openejb-0.9.0/dist/openejb_loader-0.9.0.war webapps/
+</pre></span></td></tr></table>
+</span></p>
+
+<p><span class="bodyBlack">
+ At this point, you're actually finished.
+ All the libraries you need are in place.
+ Your servlets should use the following
+ InitialContextFactory when creating
+ an InitialContext to lookup beans
+</span></p>
+
+<p><span class="bodyBlack">
+<table width="440" cellspacing="0" cellpadding="0" border="0"><tr><td bgcolor="#e0e0e0"><span class="code-block"><pre>org.openejb.client.LocalInitialContextFactory</pre></span></td></tr></table>
+</span></p>
+
+<p><span class="bodyBlack">
+The openejb.home is taken care of for us
+with the CATALINA_OPTS variable, so no other
+JNDI options are needed to get an
+InitialContext from OpenEJB
+</span></p>
+
+<a name="example"><h2>Example Servlet</h2></a>
+<p><span class="bodyBlack">
+You can use the OpenEJB Hello World as an
+example EJB to test things out. You won't
+need to do anything differently. Deploy
+the myHelloEjb.jar just as described.
+</span></p>
+
+<p><span class="bodyBlack">
+<a href="http://www.openejb.org/hello-world.html" target="_blank">http://www.openejb.org/hello-world.html</a>
+</span></p>
+
+<p><span class="bodyBlack">
+Once deployed, the myHelloEjb.jar should be in the beans directory.
+</span></p>
+
+<p><span class="bodyBlack">
+<table width="440" cellspacing="0" cellpadding="0" border="0"><tr><td bgcolor="#e0e0e0"><span class="code-block"><pre>
+openejb-0.9.0/beans/myHelloEjb.jar
+</pre></span></td></tr></table>
+</span></p>
+
+<p><span class="bodyBlack">
+You can use the HelloOpenEJB servlet
+below as an example of a
+servlet that looks up beans from OpenEJB.
+</span></p>
+
+<p><span class="bodyBlack">
+It uses the HelloBean created in the
+OpenEJB Hello World document, so you'll
+need to run through that first.
+You can put the servlet in the following
+webapps directory
+</span></p>
+
+<p><span class="bodyBlack">
+<table width="440" cellspacing="0" cellpadding="0" border="0"><tr><td bgcolor="#e0e0e0"><span class="code-block"><pre>
+jakarta-tomcat-4.1.12/webapps/examples/WEB-INF/classes
+</pre></span></td></tr></table>
+</span></p>
+<p><span class="bodyBlack">
+
+<table width="440" cellspacing="0" cellpadding="0" border="0"><tr><td bgcolor="#c0c0c0"><i><span class="code-title">HelloOpenEJB.java</span></i></td></tr><tr><td bgcolor="#e0e0e0"><span class="code-block"><pre>
+import javax.servlet.http.*;
+import javax.naming.*;
+import javax.rmi.PortableRemoteObject;
+
+import org.acme.*;
+
+public class HelloOpenEJB extends HttpServlet {
+
+ String factory = "org.openejb.client.LocalInitialContextFactory";
+
+ public void doGet(HttpServletRequest request, HttpServletResponse response)
+ throws IOException, ServletException
+ {
+ PrintWriter out = response.getWriter();
+
+ try{
+ Properties p = new Properties();
+ p.put(Context.INITIAL_CONTEXT_FACTORY, factory );
+ InitialContext ctx = new InitialContext( p );
+
+ //Lookup the bean using it's deployment id
+ Object obj = ctx.lookup("/Hello");
+
+ HelloHome ejbHome = (HelloHome)
+ PortableRemoteObject.narrow(obj, HelloHome.class);
+
+ //Use the HelloHome to create a HelloObject
+ HelloObject ejbObject = ejbHome.create();
+
+ // Set content type. If not done, only IE will be able
+ // to interpret that it's HTML. Otherwise, you'll
+ // get nothing but tags and content, not HTML.
+ response.setContentType("text/html");
+
+ //The part we've all been wainting for...
+ out.println("<html>");
+ out.println("<body>");
+ out.println("<head>");
+ out.println("<title>Hello World!</title>");
+ out.println("</head>");
+ out.println("<body>");
+ out.println("<h1>"+ ejbObject.sayHello() +"</h1>");
+ out.println("</body>");
+ out.println("</html>");
+ } catch (Exception e){
+ response.setContentType("text/plain");
+ e.printStackTrace(out);
+ }
+ }
+}
+</pre></span></td></tr></table>
+</span></p>
+<p><span class="bodyBlack">
+Now you can start Tomcat...
+</span></p>
+
+
+<p><span class="bodyBlack">
+<table width="440" cellspacing="0" cellpadding="0" border="0"><tr><td bgcolor="#e0e0e0"><span class="code-block"><pre>
+dblevins@Miles /home/j2ee/jakarta-tomcat-4.1.12
+$ ./bin/startup.sh
+Using CATALINA_BASE: C:\home\j2ee\jakarta-tomcat-4.1.12
+Using CATALINA_HOME: C:\home\j2ee\jakarta-tomcat-4.1.12
+Using CATALINA_TMPDIR: /home/j2ee/jakarta-tomcat-4.1.12/temp
+Using JAVA_HOME: C:\program_files\jdk1.3.1
+</pre></span></td></tr></table>
+</span></p>
+
+<p><span class="bodyBlack">
+Now, pop open your browser and go to the
+following URL.
+</span></p>
+
+
+<p><span class="bodyBlack">
+<table width="440" cellspacing="0" cellpadding="0" border="0"><tr><td bgcolor="#e0e0e0"><span class="code-block"><pre>
+<a href="http://localhost:8080/examples/servlet/HelloOpenEJB" target="_blank">http://localhost:8080/examples/servlet/HelloOpenEJB</a>
+</pre></span></td></tr></table>
+</span></p>
+
+<p><span class="bodyBlack">
+Should say "Hello World!!!" on the screen
+</span></p>
+</td><td align="left" valign="top" height="5" width="120"><img src="images/diagram-tomcat-adapter.gif" width="240" height="500" border="0"><br>
+
+
+
+ </td></tr><tr height="5"><td align="left" valign="top" bgcolor="#7270c2" height="5" width="20"> </td><td valign="top" bgcolor="#7270c2" height="5" width="95"> </td><td align="left" valign="top" bgcolor="#a9a5de" height="5" width="7"> </td><td align="left" valign="top" height="5" width="40"> </td><td align="left" valign="top" height="5" width="120"> </td></tr><tr><td align="left" valign="top" bgcolor="#7270c2" height="5" width="20"> </td><td align="left" valign="top" bgcolor="#7270c2" width="95"> </td><td align="left" valign="top" bgcolor="#a9a5de" width="7"><img border="0" height="25" width="1" src="images/dotTrans.gif"></td><td align="left" valign="top" width="40"><img border="0" height="25" width="1" src="images/dotTrans.gif"></td><td align="left" valign="top" width="120"> </td></tr><tr height="5"><td align="left" valign="bottom" bgcolor="#7270c2" height="100%" rowspan="2" width="20"><img border="0" height="125" width="20" sr
c="images/stripes1.gif"></td><td align="left" valign="bottom" bgcolor="#7270c2" height="100%" rowspan="2" width="95"><img border="0" height="125" width="105" src="images/stripe105.gif"></td><td align="left" valign="top" bgcolor="#a9a5de" height="100%" rowspan="2" width="7"> </td><td align="left" valign="top" height="100%" width="40"> </td><td align="left" valign="top" height="100%" width="120"> </td></tr><tr height="5"><td align="left" valign="top" height="25" width="40"> </td><td align="left" valign="bottom" height="25" width="430"><br><br><img height="3" width="430" border="0" src="images/line_light.gif"><br><p></p><span class="bodyGrey"><small><notice>
+ OpenEJB is a trademark of the OpenEJB Group.
+ Java, EJB, JDBC, JNDI, JTA, Sun, Sun Microsystems are trademarks or registered
+ trademarks of Sun Microsystems, Inc. in the United States and in other
+ countries. XML, XML Schema, XSLT and related standards are trademarks or registered
+ trademarks of MIT, INRIA, Keio or others, and a product of the World Wide Web
+ Consortium. All other product names mentioned herein are trademarks of their respective
+ owners.
+ </notice><br> <br></small></span><p></p>
+
+ </td><td align="left" valign="top" height="25" width="120"> </td></tr></table></body></html>
\ No newline at end of file