User: mulder
Date: 00/10/09 21:18:31
Modified: manual examples.html index.html third_party.html
warning.html
Log:
3rd-party software page:
- add tomcat integration (still need classloader integration)
examples page:
- bare-bones outline of J2EE Blueprints/Pet Store precedures
Revision Changes Path
1.2 +26 -0 jbossweb/manual/examples.html
Index: examples.html
===================================================================
RCS file: /products/cvs/ejboss/jbossweb/manual/examples.html,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- examples.html 2000/09/14 18:28:36 1.1
+++ examples.html 2000/10/10 04:18:30 1.2
@@ -5,5 +5,31 @@
</head>
<body>
<h1 ALIGN="CENTER">jBoss 2.0: Examples</h1>
+
+ <h2><a NAME="petstore">J2EE Blueprints: Pet Store</a></h2>
+ <p>One common example is the Pet Store web app that Sun created
+ as part of the "J2EE Blueprints" package. Though it assumes
+ you're using the J2EE RI server, it's not too difficult to
+ adapt to jBoss and Tomcat.</p>
+ <p>Here are the tasks you'll need to perform to deploy the
+ Pet Store:</p>
+ <ol>
+ <li><a HREF="http://java.sun.com/j2ee/download.html">Download</a>
+ the pet store source.</li>
+ <li><a HREF="http://jakarta.apache.org/downloads/binindex.html">Download</a>
+ a current version of Ant</li>
+ <li>Update your build script to use J2EE components outside of
+ Sun's <code>j2ee.jar</code></li>
+ <li>Update your Ant script to use current Ant syntax and ignore
+ the J2EE RI security implementation</li>
+ <li>Resolve the Catalog DB Situation</li>
+ <li>Build the Java code</li>
+ <li>Make EJB client and server and support JARs</li>
+ <li>Prepare the database</li>
+ <li>Add the jBoss-specific EJB directives</li>
+ <li>Deploy the JSPs to Tomcat</li>
+ <li>Deploy the EJBs to jBoss</li>
+ <li>Run the Pet Store!</li>
+ </ol>
</body>
</html>
1.10 +6 -6 jbossweb/manual/index.html
Index: index.html
===================================================================
RCS file: /products/cvs/ejboss/jbossweb/manual/index.html,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- index.html 2000/10/02 17:43:26 1.9
+++ index.html 2000/10/10 04:18:30 1.10
@@ -117,11 +117,12 @@
<p CLASS="tc2"><a CLASS="plain" HREF="clients.html#corba">CORBA
Clients</a></p>
<p CLASS="tc2"><a CLASS="plain" HREF="clients.html#ejb">EJB Clients</a></p>
<p CLASS="tc1"><a CLASS="plain" HREF="third_party.html">Third-Party
Software</a></p>
- <p CLASS="tc2">About JVM Integration</p>
- <p CLASS="tc2">J2EE</p>
- <p CLASS="tc3">Tomcat</p>
- <p CLASS="tc4">Same JVM</p>
- <p CLASS="tc4">Different JVM</p>
+ <p CLASS="tc2"><a CLASS="plain" HREF="third_party.html#vm">About JVM
Integration</a></p>
+ <p CLASS="tc2"><a CLASS="plain" HREF="third_party.html#j2ee">J2EE</a></p>
+ <p CLASS="tc3"><a CLASS="plain"
HREF="third_party.html#tomcat">Tomcat</a></p>
+ <p CLASS="tc4"><a CLASS="plain"
HREF="third_party.html#tomcat-separate">Different JVMs</a></p>
+ <p CLASS="tc4"><a CLASS="plain"
HREF="third_party.html#tomcat-invm">Same JVM, Different ClassLoaders</a></p>
+ <p CLASS="tc4"><a CLASS="plain" HREF="third_party.html#tomcat-cl">Same
JVM, Same ClassLoader</a></p>
<p CLASS="tc3">Resin</p>
<p CLASS="tc2">Persistence</p>
<p CLASS="tc3">Ozone</p>
@@ -131,7 +132,6 @@
<p CLASS="tc3">KAWA</p>
<p CLASS="tc3">JBuilder</p>
<p CLASS="tc3">VisualAge</p>
- <p CLASS="tc3">NetBeans</p>
<p CLASS="tc3">Forte</p>
<p CLASS="tc1"><a CLASS="plain" HREF="extending.html">Extending jBoss</a></p>
<p CLASS="tc2">Licensing</p>
1.2 +157 -0 jbossweb/manual/third_party.html
Index: third_party.html
===================================================================
RCS file: /products/cvs/ejboss/jbossweb/manual/third_party.html,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- third_party.html 2000/09/14 18:28:38 1.1
+++ third_party.html 2000/10/10 04:18:30 1.2
@@ -5,5 +5,162 @@
</head>
<body>
<h1 ALIGN="CENTER">jBoss 2.0: Third-Party Software</h1>
+ <p>jBoss is designed to be modular and configurable, and thus should
+ integrate easily with a number of third-party packages. Here we
+ discuss some of the ones we already have configuration information
+ for. If you'd like to integrate jBoss with something that is not
+ listed here, or you already have and would like to share, please
+ let us know on the jBoss
+ <a HREF="http://www.jboss.org/mailing.htm">Mailing List</a>.
+
+ <h2><a NAME="vm">About JVM Integration</a></h2>
+ <p>In general, there are two ways to integrate jBoss with another
+ package. The first is to integrate within the jBoss JVM.
+ Examples of this would include using a different Persistence
+ Manager or Transaction Manager, where it essentially runs as
+ part of jBoss. The other way is to run outside the jBoss
+ JVM. An example of this might be a management console that
+ communicates with jBoss over the network. Some software can
+ work either way: a servlet container, for example, may run in
+ the JVM for better performance or outside the JVM for better
+ flexibility.</p>
+ <p>Each approach has a most common trouble spot for integration.
+ The problem with integration within the JVM is that jBoss uses
+ a number of ClassLoaders, and you must make sure that the other
+ package uses the correct ClassLoader at any given time - the
+ best way to do this is to use the JDK 1.2 API call
+ <code>Thread.currentThread().getContextClassLoader()</code>.
+ As for out-of-JVM integration, the most common problem is getting
+ the JNDI and RMI settings right for communicating over the
+ network (see <a HREF="clients.html#remote">Connecting To A
+ Remote Server</a> in the <a HREF="clients.html">jBoss Clients</a>
+ section).</p>
+
+ <h2><a NAME="j2ee">J2EE</a></h2>
+ <p>The most common need for J2EE is to integrate jBoss with a
+ servlet and JSP container. This alone does not yet provide a
+ full J2EE environment though - you also need JavaMail and JMS
+ integration, among other things. Here are the procedures for
+ the packages we have already integrated with.</p>
+
+ <h3><a NAME="tomcat">Tomcat</a></h3>
+ <p>Tomcat is the reference implementation for a Servlet and JSP
+ container. You can integrate in the same VM or outside: full
+ integration gives the best performance but the least
+ flexibility, and it hardest to implement. In any of these
+ cases, you can choose to locate your jBoss code at the top
+ level of Tomcat, or for individual web apps - but you cannot mix
+ the two (for example, by putting jBoss JARs at the top level but
+ your EJB interfaces at the web app level). We strongly
+ recommend locating all jBoss and EJB code at the web app level,
+ so that is how the directions are oriented.</p>
+
+ <h4><a NAME="tomcat-separate">Different JVMs</a></h4>
+ <p>The easiest way to configure Tomcat and jBoss is to run them
+ completely separately. In this case, you just need to provide
+ the jBoss and EJB client files for Tomcat:</p>
+ <dl>
+ <dt>jBoss Libraries</dt>
+ <dd>The following jBoss libraries should be copied to
+ <b>web app/WEB-INF/lib</b>: <code>jboss-client.jar</code>,
+ <code>jnp-client.jar</code>, <code>ejb.jar</code>,
+ <code>jta-spec1_0_1.jar</code>, and (for JDK <= 1.2.2 only)
+ <code>jndi.jar</code> (see
+ <a HREF="clients.html#libs">Required Client Libraries</a>
+ for details on these files).</dd>
+ <dt>JNDI Configuration</dt>
+ <dd>The <code>jndi.properties</code> files should be copied to
+ <b>web app/WEB-INF/classes</b> (see
+ <a HREF="clients.html#jndi">Using JNDI</a> for details on
+ on this file).</dd>
+ <dt>EJB Client Code</dt>
+ <dd>The EJB client code should go in
+ <b>web app/WEB-INF/classes</b> (for individual classes) or
+ <b>web app/WEB-INF/lib</b> (if you have prepared a client
+ JAR). The required classes are your EJB home and remote
+ interfaces, the primary key for entity beans, and any helper
+ classes used by the client.</dd>
+ </dl>
+
+ <h4><a NAME="tomcat-invm">Same JVM, Different ClassLoader</a></h4>
+ <p>The next step of integration is to run Tomcat and jBoss in the
+ same JVM, bet let them use their default ClassLoaders. This is
+ still quite easy to configure, and gives better performance
+ than the separate setup, but not as good as the fully integrated
+ configuration.</p>
+ <p>You may still install Tomcat and jBoss in any way you like -
+ they do not need to be installed in the same location. You
+ should place your jBoss client libraries and EJB client code
+ in your web app as above (for the non-integrated install).
+ However, you must perform the following additional steps to
+ enable the integrated configuration:</p>
+ <dl>
+ <dt>Setup Environment Variables</dt>
+ <dd>In whatever batch or shell script you use to launch JBoss,
+ add entries for the following environment variables:
+ <table border="1">
+ <tr><th>variable</th><th>value</th></tr>
+ <tr>
+ <td align="RIGHT" valign="TOP">TOMCAT_HOME</td>
+ <td>The base directory of Tomcat's binaries. With the
+ binary distribution, this would be jakarta-tomcat under
+ your installation root.</td>
+ </tr>
+ <tr>
+ <td align="RIGHT" valign="TOP">JAVA_HOME</td>
+ <td>The base directory of your JDK 1.2.2 or 1.3
+ installation</td>
+ </tr>
+ <tr>
+ <td align="RIGHT" valign="TOP">CLASSPATH</td>
+ <td>This should <I>not include anything</I> (unless you
+ really know what you're doing!). Both Tomcat and JBoss
+ have startup sequences that load the necessary JARs onto
+ the classpath.</td>
+ </tr>
+ </table>
+ </dd>
+ <dt>Add Request Interceptor <font COLOR="RED"><i>(Tomcat 3.2+
+ Only!)</i></font></dt>
+ <dd>In order to enable the correct ClassLoader mechanics, you
+ must add a RequestInterceptor to the default Tomcat
+ configuration. This is global across all web apps, and is
+ generally a good idea when you're running in JDK 1.2 or
+ greater, but it required for proper behavior with jBoss. The
+ configuration file you need to change is <b>server.xml</b>
+ and it is located in the <b>conf</b> directory under the
+ Tomcat install directory (jakarta-tomcat for the binary).
+ There are a number of lines that deal with
+ RequestInterceptors, the last of which are currently the
+ Realms (SimpleRealm, JDBCRealm, etc.). <B>After</B> the other
+ RequestInterceptors, add the following:
+<pre>
+ <RequestInterceptor
+ className="org.apache.tomcat.request.Jdk12Interceptor"
+ debug="0" />
+</pre>
+ </dd>
+ <dt>Enable Tomcat in jBoss</dt>
+ <dd>To start Tomcat when you start jBoss, you need to edit
+ the <b>jboss.conf</b> file located in the <b>conf</b>
+ directory under your jBoss install directory. You need to
+ add the following entry to the end of the file:
+<pre>
+ <MLET CODE = "org.jboss.tomcat.TomcatService" ARCHIVE="jboss.jar"
CODEBASE="../lib/ext/">
+ </MLET>
+</pre>
+ </dd>
+ </dl>
+ <p>After that, when you start jBoss it will start Tomcat too,
+ and when you shut down jBoss it will shut down Tomcat. If you
+ have any problems, make sure that all the environment variables
+ above are set correctly in your startup script.</p>
+
+ <h4><a NAME="tomcat-cl">Same JVM, Same ClassLoader</a></h4>
+ <p>This is the best-performing option. Again, you should first
+ locate all the jBoss and EJB code as above (for the
+ non-integrated install). Then perform the follow additional
+ steps to enable the fully integrated configuration:</p>
+ <p><i>Forthcoming</i></p>
</body>
</html>
1.10 +14 -0 jbossweb/manual/warning.html
Index: warning.html
===================================================================
RCS file: /products/cvs/ejboss/jbossweb/manual/warning.html,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- warning.html 2000/10/02 17:43:27 1.9
+++ warning.html 2000/10/10 04:18:30 1.10
@@ -95,6 +95,20 @@
<li>Write advanced dynamic loading section</li>
</ul>
</li>
+ <li>Third-Party Software
+ <ul>
+ <li>Get procedures for total Tomcat+jBoss integration
+ (ContextInterceptor must be written!)</li>
+ <li>Get procedures for Resin integration</li>
+ <li>Get procedures for Ozone integration</li>
+ <li>Get procedures for CocoBase integration</li>
+ <li>Get procedures for Castor integration</li>
+ <li>Get procedures for Kawa integration</li>
+ <li>Get procedures for JBuilder integration</li>
+ <li>Get procedures for VisualAge integration</li>
+ <li>Get procedures for Forte integration</li>
+ </ul>
+ </li>
<li>Extending jBoss
<ul>
<li>This section must be written</li>