User: fleury  
  Date: 00/09/01 16:53:51

  Modified:    .        news.htm menu.htm jboss_win32_6.html
                        jboss_win32_5.html jboss_win32_4.html
                        jboss_win32_3.html jboss_win32_2.html
                        jboss_win32_1.html jboss_cmp4.html jboss_cmp3.html
                        jboss_cmp2.html jboss_cmp.html jboss6.html
                        jboss5.html jboss4.html jboss3.html jboss2.html
                        jboss1.html getting_startedJB2.htm
  Added:       .        rmh_jboss.zip rmh_howto.html postgres.htm
                        oraclecmp.htm mssql.htm jndi_howto.html
                        jbuilder.htm jbossxml_howto.html jboss.dtd
                        ejbref_howto1.html ejbref_howto.html datasource.htm
                        contconf_howto1.html contconf_howto.html
  Log:
  initial doco update
  
  Revision  Changes    Path
  1.2       +354 -385  jbossweb/news.htm
  
  Index: news.htm
  ===================================================================
  RCS file: /products/cvs/ejboss/jbossweb/news.htm,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- news.htm  2000/08/29 23:11:01     1.1
  +++ news.htm  2000/09/01 23:53:44     1.2
  @@ -1,388 +1,357 @@
   <html>
   
  -  <head>
  -    <meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
  -    <meta name="generator" content="Adobe GoLive 4">
  -    <title>Untitled Document</title>
  -    <meta name="description" content="jBoss, initially known as EJBoss dates back 
to March 1999 when Marc Fleury launched it, is a joint effort of developers to 
implement Sun's J2EE and to produce a top-notch Open Source Application server.It will 
enable the ployment of EJBs (Enterprise Java Bean) to deliver the coolest applications 
online. It's completely free so download it and use it to deploy your beans.. ">
  -    <meta name="keywords" content="jBoss EJBoss Telkel Marc Fleury Rickard Oberg 
J2EE Open Source Sun platform Appication Server EJB Beans Enterprise Java Bean GPL hot 
deploy Enhydra WebLogic">
  -  </head>
  +     <head>
  +             <meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
  +             <meta name="generator" content="Adobe GoLive 4">
  +             <title>Untitled Document</title>
  +             <meta name="description" content="jBoss, initially known as EJBoss 
dates back to March 1999 when Marc Fleury launched it, is a joint effort of developers 
to implement Sun's J2EE and to produce a top-notch Open Source Application server.It 
will enable the ployment of EJBs (Enterprise Java Bean) to deliver the coolest 
applications online. It's completely free so download it and use it to deploy your 
beans.. ">
  +             <meta name="keywords" content="jBoss EJBoss Telkel Marc Fleury Rickard 
Oberg J2EE Open Source Sun platform Appication Server EJB Beans Enterprise Java Bean 
GPL hot deploy Enhydra WebLogic">
  +     </head>
  +
  +     <body bgcolor="white" leftmargin="0" topmargin="0" marginwidth="0" 
marginheight="0">
  +             <table border="0" cellpadding="0" cellspacing="0" width="100%" 
height="1653">
  +                     <tbody>
  +                             <tr height="1958">
  +                                     <td bgcolor="white" valign="top" height="1958">
  +                                             <table border="0" cellpadding="0" 
cellspacing="0" width="100%">
  +                                                     <tbody>
  +                                                             <tr>
  +                                                                     <td><img 
src="picture/corner-nw-small.gif" width="11" height="11"></td>
  +                                                             </tr>
  +                                                             <tr height="25">
  +                                                                     <td 
height="25"><img alt="o" height="1" src="binary.htm" width="1"><font color="#ffcc00" 
size="6" face="Myriad Web,Arial"><b>Current news</b></font></td>
  +                                                             </tr>
  +                                                     </tbody>
  +                                             </table>
  +                                             <table border="0" cellspacing="0" 
cellpadding="0" width="100%">
  +                                                     <tr>
  +                                                             <td valign="top" 
bgcolor="#eeeeee"></td>
  +                                                     </tr>
  +                                             </table>
  +                                             <p>
  +                                             <table border="0" cellspacing="0" 
cellpadding="0" width="100%">
  +                                                     <tr>
  +                                                             <td valign="top" 
bgcolor="#eeeeee"><font size="4" face="arial,helvetica">August 21 - August 27 2000: 
Transactions and caches</font></td>
  +                                                     </tr>
  +                                             </table>
  +                                             </p>
  +                                             <p><b>Transactions and caches</b>: 
Real life bugs appear as we release the BETA version. Some are deep some are shallow, 
the important thing is that the flow of bug fixes is a crazy as ever! BETA-PROD here 
we come, we will be on time!</p>
  +                                             <p>
  +                                             <table border="0" cellspacing="0" 
cellpadding="0" width="100%">
  +                                                     <tr>
  +                                                             <td valign="top" 
bgcolor="#eeeeee"><font size="4" face="arial,helvetica">August 14 - August 20 2000: 
<b>API Compliance</b>,<b>SPEED</b>, <b>BETA Binary Release </b>, FreeBSD</font></td>
  +                                                     </tr>
  +                                             </table>
  +                                             </p>
  +                                             <p><b>API Compliance</b>: Bug fixes 
and &quot;Not Yet Implemented&quot; are done. As Marc Fleury and his crew work on it, 
the API compliance of jboss is now almost 100%. We are finishing the latest callbacks 
on the container and making it complete for the production release.</p>
  +                                             <p><b>SPEED</b>: Our favorite Jndi 
Knight, Rickard Oberg, has blasted the performance bottlenecks in RMI/JMX. The stuff 
flies now ! Give it a spin and hear those engines roar...</p>
  +                                             <p><b>BETA Release</b>: We are ahead 
of schedule with the Production release. The latest binary release is a real beta now 
that the spec compliance is there and speed is good. Let's move on to real life bugs 
shall we? get your PR4-BETA release today</p>
  +                                             <p><b>FreeBSD</b> We recieve news that 
jboss happily runs under FreeBSD... great news! jboss is meant to be used in ISP 
settings for those that want to offer &quot;application hosting&quot; and jboss is 
leading the way with ease of use and deployment. Seems the dream is coming true, don't 
you think?</p>
  +                                             <p>
  +                                             <table border="0" cellspacing="0" 
cellpadding="0" width="100%">
  +                                                     <tr>
  +                                                             <td valign="top" 
bgcolor="#eeeeee"><font size="4" face="arial,helvetica">August 7 - August 13 2000: 
<b>DEADLINE SEPT 1ST</b>, <b>New Metadata</b>, Case Studies, New Transaction 
Manager</font></td>
  +                                                     </tr>
  +                                             </table>
  +                                             </p>
  +                                             <p><b>DEADLINE SEPT 1st</b>: Marc 
Fleury says &quot;I announce that we will be done with alpha by the end of this month. 
That means that by September 1st we will put out a real beta with all the features and 
QA done so that folks can use this in development and production with the ease of mind 
that must come with it.&quot;. So there you have it jboss2 will be in BETA-PROD by 
Sept 1st!</p>
  +                                             <p><b>New Metadata</b>: In order to 
simplify the use of jboss xml files, Sebastien Alborini has rewritten the metadata 
package for jboss. It features ease of use stuff such as &quot;differential&quot; xml 
files which means that when advanced configurations of the container are needed you 
specify only what you need and nothing else. Making your deployment life easy with 
jboss is our number 1 goal!</p>
  +                                             <p><b>Case studies</b>: Following a 
mail posted on jboss-user, everybody goes into sharing their experiences with J2EE 
technology, a lot of good some bad, but all in all a varied mosaic of how people use 
J2EE, great feedback!</p>
  +                                             <p><b>New Transaction Manager:</b> 
Marc Fleury posts an advanced JTA compliant implementation for the stand alone jboss. 
The transaction implementation is inVM for this version. The implementation is also 
pluggable so we can go to distributed stuff when we need to.</p>
  +                                             <p>
  +                                             <table border="0" cellspacing="0" 
cellpadding="0" width="100%">
  +                                                     <tr>
  +                                                             <td valign="top" 
bgcolor="#eeeeee"><font size="4" face="arial,helvetica">July 31 - August 6 2000: 
<b>Security</b>, JMX Connector, jboss-dev</font></td>
  +                                                     </tr>
  +                                             </table>
  +                                             </p>
  +                                             <p><b>Security</b>: Dan OConnor 
commits the first version. The security stuff is implicitely passed around the 
container and we will support all EJB 1.1 security requirements. Go help Dan put that 
framework in place!</p>
  +                                             <p><b>JMX</b>: Andreas Schaefer posts 
the requirements for the JMX connector and the next generation way to access to the 
server management infrastructure. jboss leads the way with JMX management of the 
server and we intend to continue showing the industry where this management of J2EE 
technology is going!</p>
  +                                             <p>jboss-dev: The list is alive! come 
join us on working-dogs! we cover every aspect of EJB and the container design, this 
week it was the transaction and the ORB discussions that took place. Deep stuff, many 
insights! Come join a group of experts and learn/work with them. Can your day job 
*really* do that? join jboss-dev' mailing list.</p>
  +                                             <p>
  +                                             <table border="0" cellspacing="0" 
cellpadding="0" width="100%">
  +                                                     <tr>
  +                                                             <td valign="top" 
bgcolor="#eeeeee"><font size="4" face="arial,helvetica">July 24 - July 30 2000: 
<b>jboss2.0 PR3 released</b></font></td>
  +                                                     </tr>
  +                                             </table>
  +                                             </p>
  +                                             <p><b>jboss2.0 PR3</b>: NEW BINARY 
online. Here it is, thanks to all that have helped this binary come online. Mucho bug 
fixes, ease of use features and some new code ships... We will put up the mirrors very 
soon. This is code is still officially &quot;alpha&quot; code, but you know... yeah... 
well <a href="binary.htm">give it a try</a> and you will see ;-)</p>
  +                                             <p>
  +                                             <table border="0" cellspacing="0" 
cellpadding="0" width="100%">
  +                                                     <tr>
  +                                                             <td valign="top" 
bgcolor="#eeeeee"><font size="4" face="arial,helvetica">July 17 - July 23 2000: pGO 
groups, PR Needed! jboss-announce</font></td>
  +                                                     </tr>
  +                                             </table>
  +                                             </p>
  +                                             <p><b>pGO groups</b>: Project Game 
Over group leaders announced. We need more men and more brains! Join the troups and 
embark on distant technology adventures, be all you can be! So we scale the management 
behind the development of jboss2.0. Project leaders and task are assigned... did you 
register for the war with us? did you sign up for project Game Over? Go to your 
nearest recruitment center to enroll and lookup your new batallion. <a 
href="project_game_over.htm">Do you want to know more?</a></p>
  +                                             <p><b>PR Needed</b>: The war isn't 
fought just with grit, guns and gruff, it's all about PR and love. We are looking for 
a PR genius. Do you have some spare time to write and help us promote jboss? <a 
href="mailto:[EMAIL PROTECTED]">drop us a note!</a></p>
  +                                             <p><b>jboss-announce</b>: The volume 
on the mailing lists is quite large still, even though we have split the lists. Some 
folks are interested in just the announcements and have requested this list. <a 
href="mailto:jboss-announce-on">Get on!</a> and thanks to Jon Stevens for setting it 
up.</p>
  +                                             <p>
  +                                             <table border="0" cellspacing="0" 
cellpadding="0" width="100%">
  +                                                     <tr>
  +                                                             <td valign="top" 
bgcolor="#eeeeee"><font size="4" face="arial,helvetica">July 10 - July 16 2000: 
Debugging, Getting Started, </font></td>
  +                                                     </tr>
  +                                             </table>
  +                                             </p>
  +                                             <p><b>Debugging</b>: Serious debugging 
of the 2.0 codebase is going on. All fronts are adressed at once as the codebases 
stabilize. BMP behaviour, CMP Persistence Managers, EJB callbacks are all ironed out 
as a massive effort goes on. We will be ready! oh yes! <a 
href="project_game_over.htm">we will be ready!</a></p>
  +                                             <p><b>Getting Started</b>: Ken Jenks 
is leading the documentation and it is now separated in a &quot;linux trail&quot; and 
&quot;windows trail&quot;. Also we need the many of you that got their particular 
databases running to help us put together a mini-howto for all the databases. You got 
&quot;ACME-RDBMS&quot; to run with jboss? you got your jboss.xml and jaws.xml right? 
share the knowledge! do a &quot;ACME-RDBMS-in-jboss-mini-howto&quot;!</p>
  +                                             <p>
  +                                             <table border="0" cellspacing="0" 
cellpadding="0" width="100%">
  +                                                     <tr>
  +                                                             <td valign="top" 
bgcolor="#eeeeee"><font size="4" face="arial,helvetica">July 3 - July 9 2000: 
<b>Tomcat</b>, Mirrors, <b>SpyderMQ</b>, &quot;PooPoo wars&quot;</font></td>
  +                                                     </tr>
  +                                             </table>
  +                                             </p>
  +                                             <p><b>Tomcat</b>: Sylvain Laurent 
posts a first page on the tomcat integration in jboss. It is integrated in one VM. 
Deep optimizations are underway (sharing of classloaders) to make the complete J2EE 
stack one of the fastest in the market. Project Game Over advances... J2EE based 
products are almost all in open source now.</p>
  +                                             <p><b>Mirrors</b>: jboss still victim 
of its success! With still close to a 1000 thousand downloads a day it seems we max 
our current line (the one we enhanced a couple of month ago). This explosive growth of 
jboss demands real mirrors. Many of you have answered and we will set them up with the 
soon to come new binary of jboss. Thanks for your help!</p>
  +                                             <p><b>SpyderMQ</b>: Norbert Lataille 
just commited the first version of the persistence and officially reaches 0.7. 
SpyderMQ is of commercial quality grade or better thanks to your feedback and will 
soon be a 1.0 product. Kudos to Norbert for a serious and in-depth work on this all 
important part of the jboss J2EE infrastructure.</p>
  +                                             <p><b>&quot;PooPoo Wars&quot;</b>: 
Want to see starfighter starfighting? come and see what open source is all about. The 
passion, the technology, the arguments, the technology, the insults, but at the end of 
the day among bloodied warriors? superior technology ;-). The &quot;Poopoo wars&quot; 
rage on jboss-dev!!! first row tickets right here! Step right in step right in! Man we 
got to get Don King to sponsor us...</p>
  +                                             <p>
  +                                             <table border="0" cellspacing="0" 
cellpadding="0" width="100%">
  +                                                     <tr>
  +                                                             <td valign="top" 
bgcolor="#eeeeee"><font size="4" face="arial,helvetica">June 26 - July 2 2000: 
Security, Transactions, Marius, MetaData </font></td>
  +                                                     </tr>
  +                                             </table>
  +                                             </p>
  +                                             <p><b>Security</b>: On Monday, Dan 
OConnor posts a first draft of a security proposal for jboss. Integration of JAAS, 
management of users are integrated in this proposal.</p>
  +                                             <p><b>Transactions</b>: Aaron Mulder 
takes a crack at rewriting the transaction manager. A new implementations that treats 
JTS for what it is worth is needed. We are trying to let go of legacy, reuse the good 
ideas and see what comes out of it. The first transactions work on Sunday.</p>
  +                                             <p><b>Marius</b>: Andy Dwelly, the 
lead developer behind the critically acclaimed &quot;Marius&quot; writes to us to 
submit a first cut of the documentation framework with Marius. Looks promising and we 
will try to bring some developer documentation under that framework.</p>
  +                                             <p><b>MetaData</b>: EJX needs to 
separate MVC and we are undertaking the creation of the metadata package in jboss. 
Heavy discussions on the mailing lists. Juha Lindfors and Aaron Mulder take a first 
pass at it.</p>
  +                                             <p>
  +                                             <table border="0" cellspacing="0" 
cellpadding="0" width="100%">
  +                                                     <tr>
  +                                                             <td valign="top" 
bgcolor="#eeeeee"><font size="4" face="arial,helvetica">June 19 - June 25 2000: Zoap, 
TestSuite, Project Game Over, Getting Started</font></td>
  +                                                     </tr>
  +                                             </table>
  +                                             </p>
  +                                             <p><b>ZOAP</b>: Dr Christoph Jung, 
submits a new access layer for jboss2.0. &nbsp;It is based on SOAP and not on RMI. The 
invocation layer of the container was cleanly abstracted and we will launching an 
official project of jboss for this invocation plugin. &nbsp;It seems there is 
tremendous interest in the industry for a SOAP&nbsp;enable J2EE&nbsp;server.</p>
  +                                             <p><b>JCTS</b>: Peter Braswell submits 
a first draft of JCTS. A&nbsp;complete test suite for jboss is in the works. It is 
separate from Zola, which will focus more on the application programming model and 
giving examples.</p>
  +                                             <p><b>Project Game Over</b>: Project 
Game Over is officially launched! <a href="game_over.htm">what is Project Game Over 
?</a></p>
  +                                             <p><b>Documentation</b>: Kevin Boone 
submits a very needed &quot;<a href="getting_startedJB2.htm">Getting Started</a>&quot; 
with jboss2.0. &nbsp;It is very complete with deployment packaging, and programmers 
instructions.</p>
  +                                             <p>
  +                                             <table border="0" cellspacing="0" 
cellpadding="0" width="100%">
  +                                                     <tr>
  +                                                             <td valign="top" 
bgcolor="#eeeeee"><font size="4" face="arial,helvetica">June 12 - June 18 2000: 
JMX&nbsp;Expert group, Cocobase, BMP, <b>BUZZ</b></font></td>
  +                                                     </tr>
  +                                             </table>
  +                                             </p>
  +                                             <p>Following the after glow of Java 
One...</p>
  +                                             <p><b>jboss/Telkel</b> is part of the 
<b>JMX in J2EE&nbsp;expert group at SUN</b> Microsystems. &nbsp;All of our 
configuration and dynamic binding of the server is done with JMX. &nbsp;Since Telkel 
is focusing its expertise on the large systems management we are really proud to be 
invited to share what we know about J2EE&nbsp;online management. Come and share the 
knowledge with us through the jboss community. Now we don't just implement the spec 
with jboss, we also write it ;).</p>
  +                                             <p><b>Cocobase, </b>the 
O/R&nbsp;mapper will be integrated as a plugin in jboss 2.0. Cocobase already 
integrates with other containers with open source code and we have agreed to adapt the 
code to jboss. The cocobase-jboss plugin project will be launched soon.</p>
  +                                             <p><b>BMP&nbsp;support: </b>assembling 
the pieces of the puzzle is being done in muti-task! BMP wiring is plugged in by 
Stephan Gruschke in one weekend. &nbsp;Quite an impressive feat..</p>
  +                                             <p><b>Help pours in: jboss 2.0 modular 
design is a success!</b> Since we now follow the modular design and interceptors it is 
fairly easy for folks to get in the code base and make a difference. &nbsp;We see 
mucho help pouring in and documentation being put in place. The bee-hive is alive!</p>
  +                                             <p>
  +                                             <table border="0" cellspacing="0" 
cellpadding="0" width="100%">
  +                                                     <tr>
  +                                                             <td valign="top" 
bgcolor="#eeeeee"><font size="4" face="arial,helvetica">June 5 - June 11 2000: 
<b>JAVA-ONE</b>!</font></td>
  +                                                     </tr>
  +                                             </table>
  +                                             </p>
  +                                             <p>What a blast!</p>
  +                                             <p>The woodstock of computer science 
lived up to its reputation... the bands (conferences) sucked but the real show was as 
usual in the people and the crowd.</p>
  +                                             <p>Le who's who of J2EE&nbsp;came by 
our booth and many contacts were taken. From Vlada Matena to Linda DeMichiel, to 
WebLogic's VP&nbsp;of engineering we saw everyone. But most importantly we thank the 
many of you that came by and expressed support, enthusiasm, offered help, and helped 
spread the buzz and those that just came to introduce themselves. We had a blast. The 
conference with&nbsp;RMH&nbsp;went fine, except that we had forgotten our slides and 
did the open source thing of &quot;welcome to the future&quot; (now imagine it). Most 
notably an analyst came by and said &quot;you are the fastest growing application 
server today&quot; and that &quot;All the analysts are watching you&quot;.. hee hee we 
feel like rock stars and well we like it!. More than anything we finally became aware 
of the amazing buzz that surrounded jboss at JavaOne. The presentation on Open Source 
J2EE&nbsp;on Linux obviously added to that growing buzz. Buzz is a funny thing, it 
comes and g!
oes, right now we are IT! so let's not drop that ball and let's capitalize on our 
momentum!</p>
  +                                             <p>We have had tremendous feedback on 
the jboss2.0 architecture and the modular approach to distributed software development 
in open source. The press talks about us saying that we are the next &quot;test case 
of open source&quot;. Project Game Over also lights some eyes... people join in and 
grin...</p>
  +                                             <p>It could be that there will be less 
vendors at java one next year, that would be nice, it would cost a little less, we 
could have a slightly bigger booth and we wouldn't be smothered by the Gemstone ladies 
(althought that part was nice) with long legs, wonderful b**bs, what the application 
server? where? gad, I really love what you do, could you tell me more about your 
wonderful cache? that's right baby cache is king, cache is king...</p>
  +                                             <p><a 
href="javaone_site/javaone.htm">PICTURES&nbsp;RIGHT&nbsp;HERE!!!!</a></p>
  +                                             <p>
  +                                             <table border="0" cellspacing="0" 
cellpadding="0" width="100%">
  +                                                     <tr>
  +                                                             <td valign="top" 
bgcolor="#eeeeee"><font size="4" face="arial,helvetica">May 29 - June 4 2000: New 
contributions, jboss2.0, <b>Minerva</b></font></td>
  +                                                     </tr>
  +                                             </table>
  +                                             </p>
  +                                             <p>This week we understand that 
jboss2.0 is going to be able to scale the development of the organization. The modular 
design and the clean isolation of contributions enables people to work on isolated 
parts of the code (if they are lucky)</p>
  +                                             <p><b>Wednesday</b>:&nbsp; jboss 2.0 
stateful bean implementation gets a face lift and the needed work is done. Numerous 
bug fixes as the code base stabilizes fast.</p>
  +                                             <p><b>Friday</b>:&nbsp; Aaron Mulder 
submits <b>Minerva </b>a high level pool management plugin for jboss. Minerva is now 
shipped as default with jboss and the new pool management will interest those of you 
that need pools for those pricey Oracle connections.</p>
  +                                             <p><b>Saturday: </b>3 new contributors 
added to jboss 2.0. &nbsp;The modular design enables multiple contributions in 
parallel. &nbsp;We add Justin Forder (Jaws), Dan christopherson (zola) and Aaron 
Mulder to the list of contributors... bravo and thanks to them, keep it coming.</p>
  +                                             <p>
  +                                             <table border="0" cellspacing="0" 
cellpadding="0" width="100%">
  +                                                     <tr>
  +                                                             <td valign="top" 
bgcolor="#eeeeee"><font size="4" face="arial,helvetica">May 22 - May 28 2000: jBoss 
advances on all CVS fronts. </font></td>
  +                                                     </tr>
  +                                             </table>
  +                                             </p>
  +                                             <p>A lot of CVS commits this week as 
all projects of jBoss advance. Help is pouring and the state of all the projects 
progresses fast.</p>
  +                                             <p><b>Tuesday</b>: <b>jBoss 2.0</b>. A 
lot of bug reports and frantic fixes pace the last days. jBoss 2.0 reaches spec 
compliance and stability fast as all development and testing effort focuses on this 
version released only weeks ago. We recieve praise on the state of the container and 
it feels good, we will be ready by JavaONE, oh yes! we will.</p>
  +                                             <p><b>Wednesday</b>: <b>Jaws</b>. 
Mucho functionality is required on Jaws and it seems that O/R mapping is everyone's 
favorite topic of discussion. Everyone has a favorite database that needs a particular 
Mapping. XML mapping permits us to define pretty much any database, mapping it all 
takes some time. Jaws is moving fast.</p>
  +                                             <p><b>Thursday</b> <b>spyderMQ</b>. 
The little spyder is growing big. Norbert Lataille commits an advanced implementation 
of the queues and moves to 0.3. The topic selection is also coded so that complex 
queries on the topics can be specified. spyderMQ is looking more and more like an 
advanced JMS implementation. 0.5 coming fast and furious.</p>
  +                                             <p><b>Friday</b>: <b>Webstore</b> i18n 
support for webstore, you can now try the ZOL implementation in many languages. 
JSP/Servlet and EJB in mucho ways.</p>
  +                                             <p>
  +                                             <table border="0" cellspacing="0" 
cellpadding="0" width="100%">
  +                                                     <tr>
  +                                                             <td valign="top" 
bgcolor="#eeeeee"><font size="4" face="arial,helvetica">May 15 - May 21 2000: J1, GPL 
revision, Website maxed, <b>10000 downloads </b></font></td>
  +                                                     </tr>
  +                                             </table>
  +                                             </p>
  +                                             <p>Another Big Week for jBoss with 
close to 600 mails on the combined mailing lists. Folks are getting used to the mail 
split and discussion happen on Jaws, spyderMQ, jBoss-dev, jBoss-user and Zola</p>
  +                                             <p><b>Monday</b>:&nbsp; We will be at 
JavaONE. Thanks to RMH (a graduate of the group) for inviting us to the BOF on J2EE 
open source. We will also be on the Telkel stand at J1, pays us a visit, come to the 
BOF.</p>
  +                                             <p><b>Tuesday</b>:&nbsp; Some folks 
need the information on the GPL to be clearly layed out. We specify in a NOTE just 
like it is done in Linux that we consider beans and applications to be &quot;normal 
usage&quot; of our container.</p>
  +                                             <p><b>Wednesday</b>:&nbsp;Website 
down! with too many downloads the bandwidth is maxed on the old website. There was a 
service interruption this morning and we apologize to all the visitors that were 
greated with &quot;404&quot;. The site is back up with a new bigger provider.</p>
  +                                             <p><b>Friday</b>:&nbsp;<b>10000 
downloads in 10 days! jBoss2.0 is a smashing success! </b>With about 1000 downloads 
per day jBoss must be the fastest growing application server! No wonder the website 
went down...</p>
  +                                             <p>
  +                                             <table border="0" cellspacing="0" 
cellpadding="0" width="100%">
  +                                                     <tr>
  +                                                             <td valign="top" 
bgcolor="#eeeeee"><font size="4" face="arial,helvetica">May 8 - May 14 2000: Le Board, 
new Website, <b>Bugzilla</b>, Mail split, <b>JAWS</b></font></td>
  +                                                     </tr>
  +                                             </table>
  +                                             </p>
  +                                             <p>Another Big Week for jBoss with 
close to 500 mails on the combined mailing lists. The flow is big, and we are 
splitting the mailings list.</p>
  +                                             <p>Monday:&nbsp;We announce the 
composition of the board of jBoss. Early members are Marc Fleury, USA, Rickard Oberg, 
Sweden, Juha Lindfors, Finland, Oleg Nitz, Ukraine and Dan O'Connor USA. &nbsp;This 
board does the usual, vote on patches, vote on 3rd party integration, vote...</p>
  +                                             <p>Tuesday:&nbsp;NEW&nbsp;WEBSITE!!! 
you are checking it out.</p>
  +                                             <p>Thursday: Bugzilla. 
&nbsp;Management of the bugs, reports and features is growing out of hand. We have 
installed the Open Source standard, Bugzilla.</p>
  +                                             <p>Saturday:&nbsp;JAWS mailing list is 
up. &nbsp;Our favorite little austrilian shark is up at [EMAIL PROTECTED] JAWS is a 
powerful little O/R&nbsp;tool, join it's mailing list and feed the fish!</p>
  +                                             <p>Sunday:&nbsp;Mailing list split. 
&nbsp;Due to the very high volume on jBoss we have decided to split the mailing lists. 
ejboss now moves to jboss-user and jboss-dev. Same great place working-dogs.com, 
thanks to jon*.</p>
  +                                             <p>
  +                                             <table border="0" cellspacing="0" 
cellpadding="0" width="100%">
  +                                                     <tr>
  +                                                             <td valign="top" 
bgcolor="#eeeeee"><font size="4" face="arial,helvetica">May 1st - May 7 2000: PR2, 
Linux JDK1.3, JavaONE</font></td>
  +                                                     </tr>
  +                                             </table>
  +                                             </p>
  +                                             <p>Tuesday: jBoss1.0 PR2 is released. 
jBoss1.0 moves in bug-fixing mode and development moves to jBoss2.0. Some bug fixes in 
this version, some enhancements 1.0 final here we come</p>
  +                                             <p>Wednesday:&nbsp;Major news... 
IBM<b>&nbsp;</b>releases the much expected<b> JDK1.3 on Linux. </b>jBoss decided to 
standardize on 1.3 long time ago, cool technology is what this is all about and now 
our Linux penguin friends can play with us. Thank you!</p>
  +                                             <p>Thrusday: Gary Meyer from Vitria 
will be talking about jBoss at JavaONE during his &quot;<b>Enterprise Java on Linux 
HOWTO</b>&quot; presentation and has given us a heads up!. Dude! thanks, we will get 
you going.</p>
  +                                             <p>
  +                                             <table border="0" cellspacing="0" 
cellpadding="0" width="100%">
  +                                                     <tr>
  +                                                             <td valign="top" 
bgcolor="#eeeeee"><font size="4" face="arial,helvetica">April 24 - April 30 2000: Test 
integration, <b>spyderMQ</b>, jBoss 2.0 on Linux</font></td>
  +                                                     </tr>
  +                                             </table>
  +                                             </p>
  +                                             <p>Monday:&nbsp;Zol and jBoss*.0 
integrate their test suites. Zola becomes the default test suite for jBoss.</p>
  +                                             <p>Tuesday:&nbsp;<b>spyderMQ is 
released</b>. jBoss believes that JMS&nbsp;will likely lie at the heart of a scalable 
implementation. We get the message! Norbert Lataille the lead developer announces the 
availability of the 0.1 source code and the mailing list on egroups.</p>
  +                                             <p>Friday:&nbsp;jBoss 2.0 on Linux. 
&nbsp;Back by popular demand! Rickard Oberg delivers a <b>jBoss 2.0 on Linux</b> 
(1.2.2) version of jBoss2.0. Now folks on Linux can work on the latest and greatest 
electronica from the jBoss gang.</p>
  +                                             <p>&nbsp;
  +                                             <table border="0" cellspacing="0" 
cellpadding="0" width="100%">
  +                                                     <tr>
  +                                                             <td valign="top" 
bgcolor="#eeeeee"><font size="4" face="arial,helvetica">April 17 - April 23 2000: 
<b>Board formation, jBoss 2.0</b></font></td>
  +                                                     </tr>
  +                                             </table>
  +                                             </p>
  +                                             <p>Two major events this week, a busy 
one with north of 300 mails on the list.</p>
  +                                             <p>Wednesday:&nbsp; Two major events 
this week. First the announcement of the new<b> Board formation</b> for the jBoss 
organization. jBoss 2.0 with its modular approach makes way for massive parallel 
development and collaboration. jBoss will now be headed by a board of 5 to manage CVS, 
the people, the outside communication and vote on major issues. We feel it is the 
right thing to do at this exciting stage and given the breath taking rate of growth of 
jBoss. Expanded management should enable us to scale this modular container. 
&nbsp;Marc Fleury will appoint the first members.</p>
  +                                             <p>Saturday: Rickard Oberg posts the 
<b>first version of jBoss 2.0 in CVS</b>... go get it, it is revolutionary, all JMX, 
all componentized, same forward thinking engineering... come code the future with us 
and <b>this</b> is the future (applause in the room).</p>
  +                                             <p>&nbsp;
  +                                             <table border="0" cellspacing="0" 
cellpadding="0" width="100%">
  +                                                     <tr>
  +                                                             <td valign="top" 
bgcolor="#eeeeee"><font size="4" face="arial,helvetica">April 10 - April 16 2000: 
Hypersonic, EJB References and Debugging</font></td>
  +                                                     </tr>
  +                                             </table>
  +                                             </p>
  +                                             <p>Tuesday:&nbsp;a lively mail thread 
is started on the mailing list. &nbsp;It discusses the default database that is 
shipped with jBoss. We talk about many of them, most notably HypersonicSQL and 
instantDB. Both look good and can be redistributed, a test version with HypersonicSQL 
is bundled by Marc Fleury and immediately available.</p>
  +                                             <p>Thursday:&nbsp;a nagging bug, first 
identified by juha lindfors and corrected by Dan O'Connor is integrated by Marc 
Fleury. &nbsp;We can now reference the other EJB's from the java:&nbsp;namespace in 
JNDI, neat'o.</p>
  +                                             <p>Sunday: A must see feature... tired 
of seeing all of your messages in one console, tired of not being able to call 
system.out from your beans. jBoss just introduced a simple yet powerful feature for 
bean debugging:&nbsp;the capacity to overwrite the out messages with the standard 
Tracer... neat messages. jBoss 2.0 takes this even further.&nbsp;
  +                                             <table border="0" cellspacing="0" 
cellpadding="0" width="100%">
  +                                                     <tr>
  +                                                             <td valign="top" 
bgcolor="#eeeeee"><font size="4" face="arial,helvetica">April 3 - April 9 2000: jBoss 
2.0, name change, Rickard Oberg, PR1</font></td>
  +                                                     </tr>
  +                                             </table>
  +                                             </p>
  +                                             <p>Monday:&nbsp;Following the success 
of the conference and in keeping the pace up, Rickard announced the &quot;soon to be 
available&quot; jBoss2.0. Just like its predecessor, jBoss1.0, jBoss 2.0 will set 
ground breaking features for the rest of the industry to watch. Just like we 
introduced dynamic Proxy based designs, we move forward with JMX&nbsp;based 
administration and full componentization of the container. jBoss 2.0 is a fully 
modular container it will enable all parties to simply integrate their software and 
configure the container to suit their particular needs.</p>
  +                                             <p>Wednesday: EJBoss will change its 
name, we have chosen and reserved and trademarked the name &quot;jBoss&quot;. &nbsp;We 
drop the &quot;e&quot; as we hear that e-commerce is out of fashion anyway ;-). Plus 
jBoss sort of sounds better than EJBoss don't it? try it you will see that it rolls 
well on the tongue &quot;jay...Boss&quot; :)</p>
  +                                             <p>Friday: Rickard Oberg will join the 
Telkel staff full time. Telkel is starting to look like the &quot;who's who&quot; of 
jBoss;-). Rickard will be able to dedicate himself fulltime to coding the server and 
it's kernel and that is cool ...</p>
  +                                             <p>Friday: jBoss in PR1. &nbsp;&nbsp;A 
public release of the 1.0 version.</p>
  +                                             <p>&nbsp;
  +                                             <table border="0" cellspacing="0" 
cellpadding="0" width="100%">
  +                                                     <tr>
  +                                                             <td valign="top" 
bgcolor="#eeeeee"><font size="4" face="arial,helvetica">March 27 - April 2 2000: 
O'Reilly conference a roaring success</font></td>
  +                                                     </tr>
  +                                             </table>
  +                                             </p>
  +                                             <p>This week Marc Fleury and Rickard 
Oberg presented at the O'Reilly conference on Java. It was great to finally get to 
meet many of you and put names on faces. It is good to hear your feedback and see that 
jBoss is used in the field. Many contacts were taken, many talks initiated and most 
interesting was the talk with Graig McLanahan of SUN/Tomcat. We will integrated Tomcat 
and jBoss. The talks with the SUN&nbsp;were also very interesting, our project is 
clearly percieved as the leader in the field and it was interesting to hear the plans 
that SUN&nbsp;has for the open source. They spoke warmly of jBoss and our technology 
&quot;we were told it's not that low end&quot; was the remark (pun) of one of the 
proeminent figures of EJB... hee hee who said it was low-end? . &nbsp;&nbsp;</p>
  +                                             <p>
  +                                             <table border="0" cellspacing="0" 
cellpadding="0" width="100%">
  +                                                     <tr>
  +                                                             <td valign="top" 
bgcolor="#eeeeee"><font size="4" face="arial,helvetica">March 20 - March 26 2000: DR2 
update, JAWS&nbsp;update</font></td>
  +                                                     </tr>
  +                                             </table>
  +                                             </p>
  +                                             <p>Wednesday: A new version of DR2 is 
posted. &nbsp;It contais many bug fixes from the early reports, mainly the class 
loader glitches.</p>
  +                                             <p>Thursday: Rickard Oberg posts 
another exciting enhancement for jBoss 2.0, it will come with a mapping for full 
finders and a graphical tool to select the fields you want to work on. With full 
R-&gt;O mapping jaws, still a &quot;one nostril&quot; implementation will cover 
80%&nbsp;of the OR&nbsp;needs out there. And if it doesn't?&nbsp;well somebody has to 
make a living selling those pricey OR&nbsp;mappers to you ;-)</p>
  +                                             <p>Sunday: Failed interposition bug 
solved by Dan O'Connor.&nbsp;</p>
  +                                             <center>
  +                                                     <p><a 
href="http://www.mail-archive.com/ejboss%40list.working-dogs.com/"><font 
size="1">(hey, pst! working-dogs is where it's at)</font></a></p>
  +                                                     <p><a 
href="news0400.htm"><font size="6"><b>OLDER NEWS</b></font></a></p>
  +                                             </center>
  +                                             <p>
  +                                             <table border="0" cellpadding="0" 
cellspacing="0" width="100%">
  +                                                     <tbody>
  +                                                             <tr>
  +                                                                     <td 
bgcolor="white" valign="bottom" width="11"><img src="picture/corner-sw-small.gif" 
width="11" height="11"></td>
  +                                                                     <td 
bgcolor="white" width="100%"></td>
  +                                                                     <td 
bgcolor="white" width="21"></td>
  +                                                                     <td 
width="4"></td>
  +                                                             </tr>
  +                                                             <tr>
  +                                                                     <td 
bgcolor="#99cc66" width="11"><img alt="o" height="1" src="binary.htm" width="1"></td>
  +                                                                     <td 
bgcolor="#99cc66" width="100%">
  +                                                                             <table 
border="0" cellpadding="0" cellspacing="0" width="100%">
  +                                                                                    
 <tbody>
  +                                                                                    
         <tr bgcolor="#99cc66">
  +                                                                                    
                 <td width="100%">&nbsp;</td>
  +                                                                                    
         </tr>
  +                                                                                    
 </tbody>
  +                                                                             
</table>
  +                                                                     </td>
  +                                                                     <td 
bgcolor="#666699" width="21"><img src="picture/corner-e.gif" width="22" 
height="22"></td>
  +                                                                     <td 
width="4"></td>
  +                                                             </tr>
  +                                                             <tr height="89">
  +                                                                     <td 
bgcolor="white" valign="top" width="11" height="89"><img 
src="picture/corner-nw-small.gif" width="11" height="11"></td>
  +                                                                     <td 
align="right" height="89" width="100%">
  +                                                                             <table 
border="0" cellpadding="0" cellspacing="0" width="100%" height="89">
  +                                                                                    
 <tbody>
  +                                                                                    
         <tr>
  +                                                                                    
                 <td valign="top" width="648"></td>
  +                                                                                    
                 <td valign="top" width="10"></td>
  +                                                                                    
                 <td align="right" valign="top" width="10">&nbsp;</td>
  +                                                                                    
         </tr>
  +                                                                                    
 </tbody>
  +                                                                             
</table>
  +                                                                     </td>
  +                                                                     <td width="21" 
height="89"><img alt="o" height="1" src="binary.htm" width="1"></td>
  +                                                                     <td width="4" 
height="89"></td>
  +                                                             </tr>
  +                                                     </tbody>
  +                                             </table>
  +                                     </td>
  +                                     <td bgcolor="white" valign="top" width="170" 
height="1958">
  +                                             <table border="0" cellpadding="0" 
cellspacing="0" width="100%">
  +                                                     <tbody>
  +                                                             <tr>
  +                                                                     <td>&nbsp;</td>
  +                                                             </tr>
  +                                                             <tr>
  +                                                                     <td><img 
alt="o" height="1" src="binary.htm" width="1"><font color="#424264" face="Myriad 
Web,Arial" size="1"> </font></td>
  +                                                             </tr>
  +                                                     </tbody>
  +                                             </table>
  +                                             <table border="0" cellpadding="0" 
cellspacing="0" width="100%" height="394">
  +                                                     <tbody>
  +                                                             <tr>
  +                                                                     <td 
bgcolor="#54547f">
  +                                                                             <div 
align="right">
  +                                                                                    
 <img src="picture/corner-w.gif" width="10" height="22"></div>
  +                                                                     </td>
  +                                                                     <td 
bgcolor="#336600" width="100%" nowrap><font face="Myriad Web,Arial" color="white" 
size="3"><b>Java One</b></font></td>
  +                                                                     <td 
bgcolor="#396c06"><img alt="o" height="1" src="picture/blank.gif" width="1"></td>
  +                                                             </tr>
  +                                                             <tr height="372">
  +                                                                     <td 
height="372"></td>
  +                                                                     <td 
bgcolor="#ffcc00" width="100%" height="372">jBoss was present at JavaONE 2000 as a 
guest in Telkel's booth . jBoss is clearly becoming the standard j2ee open source 
effort. Thanks for all of those that stopped by and the good buzz.
  +                                                                             
<p>Keep the buzz going round and round. You can see the pictures <a 
href="javaone_site/javaone.htm">here</a>.</p>
  +                                                                             
<p>jBoss now has a new logo,</p>
  +                                                                             
<p><b>You love jBoss or you are powered by jBoss</b>? Feel free to use this logo on 
your site</p>
  +                                                                             
<p><img height="60" width="159" src="picture/powered_by_jboss_flat_metal.gif"></p>
  +                                                                             <p><a 
href="logos.htm">More logos....</a></td>
  +                                                                     <td 
bgcolor="#99cc66" height="372"></td>
  +                                                             </tr>
  +                                                     </tbody>
  +                                             </table>
  +                                     </td>
  +                                     <td bgcolor="#bfbffe" height="1958"></td>
  +                             </tr>
  +                     </table>
  +             </body>
   
  -  <body bgcolor="white" leftmargin="0" topmargin="0" marginwidth="0" 
marginheight="0">
  -    <table border="0" cellpadding="0" cellspacing="0" width="100%" height="1653">
  -      <tbody>
  -     <tr height="1958">
  -       <td bgcolor="white" valign="top" height="1958">
  -         <table border="0" cellpadding="0" cellspacing="0" width="100%">
  -     <tbody>
  -       <tr>
  -         <td><img src="picture/corner-nw-small.gif" width="11" height="11"></td>
  -       </tr>
  -       <tr height="25">
  -         <td height="25"><img alt="o" height="1" src="binary.htm" width="1"><font 
color="#ffcc00" size="6" face="Myriad Web,Arial"><b>Current news</b></font></td>
  -       </tr>
  -     </tbody>
  -    </table>
  -    <table border="0" cellspacing="0" cellpadding="0" width="100%">
  -      <tr>
  -     <td valign="top" bgcolor="#eeeeee"></td>
  -      </tr>
  -    </table>
  -    <p>
  -
  -
  -    <table border="0" cellspacing="0" cellpadding="0" width="100%">
  -      <tr>
  -     <td valign="top" bgcolor="#eeeeee"><font size="4" 
face="arial,helvetica">August 21 - August 27 2000: Transactions and caches</font></td>
  -      </tr>
  -    </table>
  -    <p></p>
  -    <p><b>Transactions and caches</b>: Real life bugs appear as we release the BETA 
version.  Some are deep some are shallow, the important thing is that the flow of bug 
fixes is a crazy as ever!  BETA-PROD here we come, we will be on time!
  -<p>
  -
  -
  -
  -    <table border="0" cellspacing="0" cellpadding="0" width="100%">
  -      <tr>
  -     <td valign="top" bgcolor="#eeeeee"><font size="4" 
face="arial,helvetica">August 14 - August 20 2000: <b>API 
Compliance</b>,<b>SPEEEEED</b>, <b> BETA Binary Release </b>, FreeBSD</font></td>
  -      </tr>
  -    </table>
  -    <p></p>
  -    <p><b>API Compliance</b>: Bug fixes and "Not Yet Implemented" are done.  As 
Marc Fleury and his crew work on it, the API compliance of jboss is now almost 100%.  
We are finishing the latest callbacks on the container and making it complete for the 
production release.
  -
  -    <p>
  -      <b>SPEED</b>: Our favorite Jndi Knight, Rickard Oberg, has blasted the 
performance bottlenecks in RMI/JMX.  The stuff flies now !  Give it a spin and hear 
those engines roar...
  -      <p>
  -<b>BETA Release</b>:  We are ahead of schedule with the Production release.  The 
latest binary release is a real beta now that the spec compliance is there and speed 
is good.  Let's move on to real life bugs shall we?  get your PR4-BETA release today
  -
  -<p><b>FreeBSD</b> We recieve news that jboss happily runs under FreeBSD... great 
news! jboss is meant to be used in ISP settings for those that want to offer 
"application hosting" and jboss is leading the way with ease of use and deployment.  
Seems the dream is coming true, don't you think?<p>
  -
  -
  -    <table border="0" cellspacing="0" cellpadding="0" width="100%">
  -      <tr>
  -     <td valign="top" bgcolor="#eeeeee"><font size="4" 
face="arial,helvetica">August 7 - August 13 2000: <b>DEADLINE SEPT 1ST</b>, <b> New 
Metadata</b>, Case Studies, New Transaction Manager</font></td>
  -      </tr>
  -    </table>
  -    <p></p>
  -    <p><b>DEADLINE SEPT 1st</b>: Marc Fleury says "I announce that we will be done 
with alpha by the end of this month.  That means that by September 1st we will put out 
a real beta with all the features and QA done so that folks can use this in 
development and production with the ease of mind that must come with it.".  So there 
you have it jboss2 will be in BETA-PROD by Sept 1st!
  -
  -    <p>
  -      <b>New Metadata</b>: In order to simplify the use of jboss xml files, 
Sebastien Alborini has rewritten the metadata package for jboss.  It features ease of 
use stuff such as "differential" xml files which means that when advanced 
configurations of the container are needed you specify only what you need and nothing 
else.  Making your deployment life easy with jboss is our number 1 goal!
  -      <p>
  -<b>Case studies</b>:  Following a mail posted on jboss-user, everybody goes into 
sharing their experiences with J2EE technology, a lot of good some bad, but all in all 
a varied mosaic of how people use J2EE, great feedback!
  -<p><b>New Transaction Manager:</b> Marc Fleury posts an advanced JTA compliant 
implementation for the stand alone jboss.  The transaction implementation is inVM for 
this version.  The implementation is also pluggable so we can go to distributed stuff 
when we need to.<p>
  -
  -
  -
  -    <table border="0" cellspacing="0" cellpadding="0" width="100%">
  -      <tr>
  -     <td valign="top" bgcolor="#eeeeee"><font size="4" face="arial,helvetica">July 
31 - August 6 2000: <b>Security</b>, JMX Connector, jboss-dev</font></td>
  -      </tr>
  -    </table>
  -    <p></p>
  -    <p><b>Security</b>: Dan OConnor commits the first version.  The security stuff 
is implicitely passed around the container and we will support all EJB 1.1 security 
requirements.  Go help Dan put that framework in place!
  -      
  -    <p><b>JMX</b>: Andreas Schaefer posts the requirements for the JMX connector 
and the next generation way to access to the server management infrastructure.  jboss 
leads the way with JMX management of the server and we intend to continue showing the 
industry where this management of J2EE technology is going! 
  -     <p>jboss-dev: The list is alive! come join us on working-dogs! we cover every 
aspect of EJB and the container design, this week it was the transaction and the ORB 
discussions that took place. Deep stuff, many insights! Come join a group of experts 
and learn/work with them.  Can your day job *really* do that? join jboss-dev' mailing 
list.<p>
  -
  -
  -
  -    <table border="0" cellspacing="0" cellpadding="0" width="100%">
  -      <tr>
  -     <td valign="top" bgcolor="#eeeeee"><font size="4" face="arial,helvetica">July 
24 - July 30 2000: <b>jboss2.0 PR3 released</b></font></td>
  -      </tr>
  -    </table>
  -    <p></p>
  -    <p><b>jboss2.0 PR3</b>: NEW BINARY online.  Here it is, thanks to all that have 
helped this binary come online.  Mucho bug fixes, ease of use features and some new 
code ships... We will put up the mirrors very soon.  This is code is still officially 
"alpha" code, but you know... yeah... well <a href = "binary.htm">give it a try</a> 
and you will see ;-)
  -    <p>
  -
  -
  -
  -
  -    <table border="0" cellspacing="0" cellpadding="0" width="100%">
  -      <tr>
  -     <td valign="top" bgcolor="#eeeeee"><font size="4" face="arial,helvetica">July 
17 - July 23 2000: pGO groups, PR Needed! jboss-announce</font></td>
  -      </tr>
  -    </table>
  -    <p></p>
  -
  -    <p><b>pGO groups</b>: Project Game Over group leaders announced.  We need more 
men and more brains!  Join the troups and embark on distant technology adventures, be 
all you can be!  So we scale the management behind the development of jboss2.0.  
Project leaders and task are assigned... did you register for the war with us? did you 
sign up for project Game Over? Go to your nearest recruitment center to enroll and 
lookup your new batallion.  <a href="project_game_over.htm">Do you want to know 
more?</a>
  -    <p><b>PR Needed</b>: The war isn't fought just with grit, guns and gruff, it's 
all about PR and love.  We are looking for a PR genius.  Do you have some spare time 
to write and help us promote jboss? <a href="mailto:[EMAIL PROTECTED]">drop us a 
note!</a>
  -<p><b>jboss-announce</b>: The volume on the mailing lists is quite large still, 
even though we have split the lists.  Some folks are interested in just the 
announcements and have requested this list.  <a href="mailto:jboss-announce-on">Get 
on!</a> and thanks to Jon Stevens for setting it up.
  -<p>
  -
  -    <table border="0" cellspacing="0" cellpadding="0" width="100%">
  -      <tr>
  -     <td valign="top" bgcolor="#eeeeee"><font size="4" face="arial,helvetica">July 
10 - July 16 2000: Debugging, Getting Started, <font></td>
  -      </tr>
  -    </table>
  -    <p></p>
  -    <p><b>Debugging</b>: Serious debugging of the 2.0 codebase is going on.  All 
fronts are adressed at once as the codebases stabilize.  BMP behaviour, CMP 
Persistence Managers, EJB callbacks are all ironed out as a massive effort goes on.  
We will be ready! oh yes! <a href="project_game_over.htm"> we will be ready!</a>
  -      <p><b>Getting Started</b>: Ken Jenks is leading the documentation and it is 
now separated in a "linux trail" and "windows trail".  Also we need the many of you 
that got their particular databases running to help us put together a mini-howto for 
all the databases.  You got "ACME-RDBMS" to run with jboss? you got your jboss.xml and 
jaws.xml right? share the knowledge! do a "ACME-RDBMS-in-jboss-mini-howto"!
  -    <p>
  -
  -
  -    <table border="0" cellspacing="0" cellpadding="0" width="100%">
  -      <tr>
  -     <td valign="top" bgcolor="#eeeeee"><font size="4" face="arial,helvetica">July 
3 - July 9 2000: <b>Tomcat</b>, Mirrors, <b>SpyderMQ</b>, "PooPoo wars"</font></td>
  -      </tr>
  -    </table>
  -    <p></p>
  -    <p><b>Tomcat</b>: Sylvain Laurent posts a first page on the tomcat integration 
in jboss.  It is integrated in one VM.  Deep optimizations are underway (sharing of 
classloaders) to make the complete J2EE stack one of the fastest in the market.  
Project Game Over advances... J2EE based products are almost all in open source now.
  -    <p><b>Mirrors</b>: jboss still victim of its success! With still close to a 
1000 thousand downloads a day it seems we max our current line (the one we enhanced a 
couple of month ago).  This explosive growth of jboss demands real mirrors.  Many of 
you have answered and we will set them up with the soon to come new binary of jboss.  
Thanks for your help!
  -    <p><b>SpyderMQ</b>: Norbert Lataille just commited the first version of the 
persistence and officially reaches 0.7.  SpyderMQ is of commercial quality grade or 
better thanks to your feedback and will soon be a 1.0 product.  Kudos to Norbert for a 
serious and in-depth work on this all important part of the jboss J2EE infrastructure.
  -    <p><b>"PooPoo Wars"</b>:  Want to see starfighter starfighting? come and see 
what open source is all about.  The passion, the technology, the arguments, the 
technology, the insults, but at the end of the day among bloodied warriors?  superior 
technology ;-).  The "Poopoo wars" rage on jboss-dev!!! first row tickets right here! 
Step right in step right in!  Man we got to get Don King to sponsor us... 
  -    <p>
  -
  -
  -
  -    <table border="0" cellspacing="0" cellpadding="0" width="100%">
  -      <tr>
  -     <td valign="top" bgcolor="#eeeeee"><font size="4" face="arial,helvetica">June 
26 - July 2 2000: Security, Transactions, Marius, MetaData </font></td>
  -      </tr>
  -    </table>
  -    <p></p>
  -    <p><b>Security</b>: On Monday, Dan OConnor posts a first draft of a security 
proposal for jboss.  Integration of JAAS, management of users are integrated in this 
proposal.  
  -    <p><b>Transactions</b>: Aaron Mulder takes a crack at rewriting the transaction 
manager.  A new implementations that treats JTS for what it is worth is needed.  We 
are trying to let go of legacy, reuse the good ideas and see what comes out of it.  
The first transactions work on Sunday.
  -    <p><b>Marius</b>: Andy Dwelly, the lead developer behind the critically 
acclaimed "Marius" writes to us to submit a first cut of the documentation framework 
with Marius.  Looks promising and we will try to bring some developer documentation 
under that framework.
  -    <p><b>MetaData</b>: EJX needs to separate MVC and we are undertaking the 
creation of the metadata package in jboss.  Heavy discussions on the mailing lists.  
Juha Lindfors and Aaron Mulder take a first pass at it.
  -<p>
  -
  -
  -    <table border="0" cellspacing="0" cellpadding="0" width="100%">
  -      <tr>
  -     <td valign="top" bgcolor="#eeeeee"><font size="4" face="arial,helvetica">June 
19 - June 25 2000: Zoap, TestSuite, Project Game Over, Getting Started</font></td>
  -      </tr>
  -    </table>
  -    <p></p>
  -    <p><b>ZOAP</b>: Dr Christoph Jung, submits a new access layer for jboss2.0. 
&nbsp;It is based on SOAP and not on RMI. The invocation layer of the container was 
cleanly abstracted and we will launching an official project of jboss for this 
invocation plugin. &nbsp;It seems there is tremendous interest in the industry for a 
SOAP&nbsp;enable J2EE&nbsp;server.</p>
  -    <p><b>JCTS</b>: Peter Braswell submits a first draft of JCTS. A&nbsp;complete 
test suite for jboss is in the works. It is separate from Zola, which will focus more 
on the application programming model and giving examples.</p>
  -    <p><b>Project Game Over</b>: Project Game Over is officially launched! <a 
href="game_over.htm">what is Project Game Over ?</a> </p>
  -    <p><b>Documentation</b>:  Kevin Boone submits a very needed &quot;<a 
href="getting_startedJB2.htm">Getting Started</a>&quot; with jboss2.0.  &nbsp;It is 
very complete with deployment packaging, and programmers instructions. </p>
  -    <p>
  -    <table border="0" cellspacing="0" cellpadding="0" width="100%">
  -      <tr>
  -     <td valign="top" bgcolor="#eeeeee"><font size="4" face="arial,helvetica">June 
12 - June 18 2000: JMX&nbsp;Expert group, Cocobase, BMP, <b>BUZZ</b></font></td>
  -      </tr>
  -    </table>
  -    <p></p>
  -    <p>Following the after glow of Java One...</p>
  -    <p><b>jboss/Telkel</b> is part of the <b>JMX in J2EE&nbsp;expert group at 
SUN</b> Microsystems. &nbsp;All of our configuration and dynamic binding of the server 
is done with JMX. &nbsp;Since Telkel is focusing its expertise on the large systems 
management we are really proud to be invited to share what we know about 
J2EE&nbsp;online management. Come and share the knowledge with us through the jboss 
community. Now we don't just implement the spec with jboss, we also write it ;).</p>
  -    <p><b>Cocobase, </b>the O/R&nbsp;mapper will be integrated as a plugin in jboss 
2.0. Cocobase already integrates with other containers with open source code and we 
have agreed to adapt the code to jboss. The cocobase-jboss plugin project will be 
launched soon.</p>
  -    <p><b>BMP&nbsp;support: </b>assembling the pieces of the puzzle is being done 
in muti-task! BMP wiring is plugged in by Stephan Gruschke in one weekend. &nbsp;Quite 
an impressive feat..</p>
  -    <p><b>Help pours in: jboss 2.0 modular design is a success!</b> Since we now 
follow the modular design and interceptors it is fairly easy for folks to get in the 
code base and make a difference. &nbsp;We see mucho help pouring in and documentation 
being put in place. The bee-hive is alive!</p>
  -    <p>
  -    <table border="0" cellspacing="0" cellpadding="0" width="100%">
  -      <tr>
  -     <td valign="top" bgcolor="#eeeeee"><font size="4" face="arial,helvetica">June 
5 - June 11 2000: <b>JAVA-ONE</b>!</font></td>
  -      </tr>
  -    </table>
  -    <p></p>
  -    <p>What a blast!</p>
  -    <p>The woodstock of computer science lived up to its reputation... the bands 
(conferences) sucked but the real show was as usual in the people and the crowd.</p>
  -    <p>Le who's who of J2EE&nbsp;came by our booth and many contacts were taken. 
From Vlada Matena to Linda DeMichiel, to WebLogic's VP&nbsp;of engineering we saw 
everyone. But most importantly we thank the many of you that came by and expressed 
support, enthusiasm, offered help, and helped spread the buzz and those that just came 
to introduce themselves. We had a blast. The conference with&nbsp;RMH&nbsp;went fine, 
except that we had forgotten our slides and did the open source thing of &quot;welcome 
to the future&quot; (now imagine it). Most notably an analyst came by and said 
&quot;you are the fastest growing application server today&quot; and that &quot;All 
the analysts are watching you&quot;.. hee hee we feel like rock stars and well we like 
it!. More than anything we finally became aware of the amazing buzz that surrounded 
jboss at JavaOne. The presentation on Open Source J2EE&nbsp;on Linux obviously added 
to that growing buzz. Buzz is a funny thing, it comes and goe!
s, right now we are IT! so let's not drop that ball and let's capitalize on our 
momentum!</p>
  -    <p>We have had tremendous feedback on the jboss2.0 architecture and the modular 
approach to distributed software development in open source. The press talks about us 
saying that we are the next &quot;test case of open source&quot;. Project Game Over 
also lights some eyes... people join in and grin...</p>
  -    <p>It could be that there will be less vendors at java one next year, that 
would be nice, it would cost a little less, we could have a slightly bigger booth and 
we wouldn't be smothered by the Gemstone ladies (althought that part was nice) with 
long legs, wonderful b**bs, what the application server? where? gad, I really love 
what you do, could you tell me more about your wonderful cache? that's right baby 
cache is king, cache is king...</p>
  -    <p><a href="javaone_site/javaone.htm">PICTURES&nbsp;RIGHT&nbsp;HERE!!!!</a></p>
  -    <p>
  -    <table border="0" cellspacing="0" cellpadding="0" width="100%">
  -      <tr>
  -     <td valign="top" bgcolor="#eeeeee"><font size="4" face="arial,helvetica">May 
29 - June 4 2000: New contributions, jboss2.0, <b>Minerva</b></font></td>
  -      </tr>
  -    </table>
  -    <p></p>
  -    <p>This week we understand that jboss2.0 is going to be able to scale the 
development of the organization. The modular design and the clean isolation of 
contributions enables people to work on isolated parts of the code (if they are 
lucky)</p>
  -    <p><b>Wednesday</b>:&nbsp; jboss 2.0 stateful bean implementation gets a face 
lift and the needed work is done. Numerous bug fixes as the code base stabilizes 
fast.</p>
  -    <p><b>Friday</b>:&nbsp; Aaron Mulder submits <b>Minerva </b>a high level pool 
management plugin for jboss. Minerva is now shipped as default with jboss and the new 
pool management will interest those of you that need pools for those pricey Oracle 
connections.</p>
  -    <p><b>Saturday: </b>3 new contributors added to jboss 2.0. &nbsp;The modular 
design enables multiple contributions in parallel. &nbsp;We add Justin Forder (Jaws), 
Dan christopherson (zola) and Aaron Mulder to the list of contributors... bravo and 
thanks to them, keep it coming.</p>
  -    <p>
  -    <table border="0" cellspacing="0" cellpadding="0" width="100%">
  -      <tr>
  -     <td valign="top" bgcolor="#eeeeee"><font size="4" face="arial,helvetica">May 
22 - May 28 2000: jBoss advances on all CVS fronts. </font></td>
  -      </tr>
  -    </table>
  -    <p></p>
  -    <p>A lot of CVS commits this week as all projects of jBoss advance. Help is 
pouring and the state of all the projects progresses fast.</p>
  -    <p><b>Tuesday</b>: <b>jBoss 2.0</b>. A lot of bug reports and frantic fixes 
pace the last days. jBoss 2.0 reaches spec compliance and stability fast as all 
development and testing effort focuses on this version released only weeks ago. We 
recieve praise on the state of the container and it feels good, we will be ready by 
JavaONE, oh yes! we will.</p>
  -    <p><b>Wednesday</b>: <b>Jaws</b>. Mucho functionality is required on Jaws and 
it seems that O/R mapping is everyone's favorite topic of discussion. Everyone has a 
favorite database that needs a particular Mapping. XML mapping permits us to define 
pretty much any database, mapping it all takes some time. Jaws is moving fast.</p>
  -    <p><b>Thursday</b> <b>spyderMQ</b>. The little spyder is growing big. Norbert 
Lataille commits an advanced implementation of the queues and moves to 0.3. The topic 
selection is also coded so that complex queries on the topics can be specified. 
spyderMQ is looking more and more like an advanced JMS implementation. 0.5 coming fast 
and furious.</p>
  -    <p><b>Friday</b>: <b>Webstore</b> i18n support for webstore, you can now try 
the ZOL implementation in many languages. JSP/Servlet and EJB in mucho ways.</p>
  -    <p>
  -    <table border="0" cellspacing="0" cellpadding="0" width="100%">
  -      <tr>
  -     <td valign="top" bgcolor="#eeeeee"><font size="4" face="arial,helvetica">May 
15 - May 21 2000: J1, GPL revision, Website maxed, <b>10000 downloads </b></font></td>
  -      </tr>
  -    </table>
  -    <p></p>
  -    <p>Another Big Week for jBoss with close to 600 mails on the combined mailing 
lists. Folks are getting used to the mail split and discussion happen on Jaws, 
spyderMQ, jBoss-dev, jBoss-user and Zola</p>
  -    <p><b>Monday</b>:&nbsp; We will be at JavaONE. Thanks to RMH (a graduate of the 
group) for inviting us to the BOF on J2EE open source. We will also be on the Telkel 
stand at J1, pays us a visit, come to the BOF.</p>
  -    <p><b>Tuesday</b>:&nbsp; Some folks need the information on the GPL to be 
clearly layed out. We specify in a NOTE just like it is done in Linux that we consider 
beans and applications to be &quot;normal usage&quot; of our container.</p>
  -    <p><b>Wednesday</b>:&nbsp;Website down! with too many downloads the bandwidth 
is maxed on the old website. There was a service interruption this morning and we 
apologize to all the visitors that were greated with &quot;404&quot;. The site is back 
up with a new bigger provider.</p>
  -    <p><b>Friday</b>:&nbsp;<b>10000 downloads in 10 days! jBoss2.0 is a smashing 
success! </b>With about 1000 downloads per day jBoss must be the fastest growing 
application server! No wonder the website went down...</p>
  -    <p>
  -    <table border="0" cellspacing="0" cellpadding="0" width="100%">
  -      <tr>
  -     <td valign="top" bgcolor="#eeeeee"><font size="4" face="arial,helvetica">May 8 
- May 14 2000: Le Board, new Website, <b>Bugzilla</b>, Mail split, 
<b>JAWS</b></font></td>
  -      </tr>
  -    </table>
  -    <p></p>
  -    <p>Another Big Week for jBoss with close to 500 mails on the combined mailing 
lists. The flow is big, and we are splitting the mailings list.</p>
  -    <p>Monday:&nbsp;We announce the composition of the board of jBoss. Early 
members are Marc Fleury, USA, Rickard Oberg, Sweden, Juha Lindfors, Finland, Oleg 
Nitz, Ukraine and Dan O'Connor USA. &nbsp;This board does the usual, vote on patches, 
vote on 3rd party integration, vote...</p>
  -    <p>Tuesday:&nbsp;NEW&nbsp;WEBSITE!!! you are checking it out.</p>
  -    <p>Thursday: Bugzilla. &nbsp;Management of the bugs, reports and features is 
growing out of hand. We have installed the Open Source standard, Bugzilla.</p>
  -    <p>Saturday:&nbsp;JAWS mailing list is up. &nbsp;Our favorite little austrilian 
shark is up at [EMAIL PROTECTED] JAWS is a powerful little O/R&nbsp;tool, join it's 
mailing list and feed the fish!</p>
  -    <p>Sunday:&nbsp;Mailing list split. &nbsp;Due to the very high volume on jBoss 
we have decided to split the mailing lists. ejboss now moves to jboss-user and 
jboss-dev. Same great place working-dogs.com, thanks to jon*.</p>
  -    <p>
  -    <table border="0" cellspacing="0" cellpadding="0" width="100%">
  -      <tr>
  -     <td valign="top" bgcolor="#eeeeee"><font size="4" face="arial,helvetica">May 
1st - May 7 2000: PR2, Linux JDK1.3, JavaONE</font></td>
  -      </tr>
  -    </table>
  -    <p></p>
  -    <p>Tuesday: jBoss1.0 PR2 is released. jBoss1.0 moves in bug-fixing mode and 
development moves to jBoss2.0. Some bug fixes in this version, some enhancements 1.0 
final here we come</p>
  -    <p>Wednesday:&nbsp;Major news... IBM<b>&nbsp;</b>releases the much expected<b> 
JDK1.3 on Linux. </b>jBoss decided to standardize on 1.3 long time ago, cool 
technology is what this is all about and now our Linux penguin friends can play with 
us. Thank you!</p>
  -    <p>Thrusday: Gary Meyer from Vitria will be talking about jBoss at JavaONE 
during his &quot;<b>Enterprise Java on Linux HOWTO</b>&quot; presentation and has 
given us a heads up!. Dude! thanks, we will get you going.</p>
  -    <p>
  -    <table border="0" cellspacing="0" cellpadding="0" width="100%">
  -      <tr>
  -     <td valign="top" bgcolor="#eeeeee"><font size="4" face="arial,helvetica">April 
24 - April 30 2000: Test integration, <b>spyderMQ</b>, jBoss 2.0 on Linux</font></td>
  -      </tr>
  -    </table>
  -    <p></p>
  -    <p>Monday:&nbsp;Zol and jBoss*.0 integrate their test suites. Zola becomes the 
default test suite for jBoss.</p>
  -    <p>Tuesday:&nbsp;<b>spyderMQ is released</b>. jBoss believes that JMS&nbsp;will 
likely lie at the heart of a scalable implementation. We get the message! Norbert 
Lataille the lead developer announces the availability of the 0.1 source code and the 
mailing list on egroups.</p>
  -    <p>Friday:&nbsp;jBoss 2.0 on Linux. &nbsp;Back by popular demand! Rickard Oberg 
delivers a <b>jBoss 2.0 on Linux</b> (1.2.2) version of jBoss2.0. Now folks on Linux 
can work on the latest and greatest electronica from the jBoss gang.</p>
  -    <p>&nbsp;
  -    <table border="0" cellspacing="0" cellpadding="0" width="100%">
  -      <tr>
  -     <td valign="top" bgcolor="#eeeeee"><font size="4" face="arial,helvetica">April 
17 - April 23 2000: <b>Board formation, jBoss 2.0</b></font></td>
  -      </tr>
  -    </table>
  -    <p></p>
  -    <p>Two major events this week, a busy one with north of 300 mails on the 
list.</p>
  -    <p>Wednesday:&nbsp; Two major events this week. First the announcement of the 
new<b> Board formation</b> for the jBoss organization. jBoss 2.0 with its modular 
approach makes way for massive parallel development and collaboration. jBoss will now 
be headed by a board of 5 to manage CVS, the people, the outside communication and 
vote on major issues. We feel it is the right thing to do at this exciting stage and 
given the breath taking rate of growth of jBoss. Expanded management should enable us 
to scale this modular container. &nbsp;Marc Fleury will appoint the first members.</p>
  -    <p>Saturday: Rickard Oberg posts the <b>first version of jBoss 2.0 in 
CVS</b>... go get it, it is revolutionary, all JMX, all componentized, same forward 
thinking engineering... come code the future with us and <b>this</b> is the future 
(applause in the room).</p>
  -    <p>&nbsp;
  -    <table border="0" cellspacing="0" cellpadding="0" width="100%">
  -      <tr>
  -     <td valign="top" bgcolor="#eeeeee"><font size="4" face="arial,helvetica">April 
10 - April 16 2000: Hypersonic, EJB References and Debugging</font></td>
  -      </tr>
  -    </table>
  -    <p></p>
  -    <p>Tuesday:&nbsp;a lively mail thread is started on the mailing list. &nbsp;It 
discusses the default database that is shipped with jBoss. We talk about many of them, 
most notably HypersonicSQL and instantDB. Both look good and can be redistributed, a 
test version with HypersonicSQL is bundled by Marc Fleury and immediately 
available.</p>
  -    <p>Thursday:&nbsp;a nagging bug, first identified by juha lindfors and 
corrected by Dan O'Connor is integrated by Marc Fleury. &nbsp;We can now reference the 
other EJB's from the java:&nbsp;namespace in JNDI, neat'o.</p>
  -    <p>Sunday: A must see feature... tired of seeing all of your messages in one 
console, tired of not being able to call system.out from your beans. jBoss just 
introduced a simple yet powerful feature for bean debugging:&nbsp;the capacity to 
overwrite the out messages with the standard Tracer... neat messages. jBoss 2.0 takes 
this even further.&nbsp;
  -    <table border="0" cellspacing="0" cellpadding="0" width="100%">
  -      <tr>
  -     <td valign="top" bgcolor="#eeeeee"><font size="4" face="arial,helvetica">April 
3 - April 9 2000: jBoss 2.0, name change, Rickard Oberg, PR1</font></td>
  -      </tr>
  -    </table>
  -    <p></p>
  -    <p>Monday:&nbsp;Following the success of the conference and in keeping the pace 
up, Rickard announced the &quot;soon to be available&quot; jBoss2.0. Just like its 
predecessor, jBoss1.0, jBoss 2.0 will set ground breaking features for the rest of the 
industry to watch. Just like we introduced dynamic Proxy based designs, we move 
forward with JMX&nbsp;based administration and full componentization of the container. 
jBoss 2.0 is a fully modular container it will enable all parties to simply integrate 
their software and configure the container to suit their particular needs.</p>
  -    <p>Wednesday: EJBoss will change its name, we have chosen and reserved and 
trademarked the name &quot;jBoss&quot;. &nbsp;We drop the &quot;e&quot; as we hear 
that e-commerce is out of fashion anyway ;-). Plus jBoss sort of sounds better than 
EJBoss don't it? try it you will see that it rolls well on the tongue 
&quot;jay...Boss&quot; :)</p>
  -    <p>Friday: Rickard Oberg will join the Telkel staff full time. Telkel is 
starting to look like the &quot;who's who&quot; of jBoss;-). Rickard will be able to 
dedicate himself fulltime to coding the server and it's kernel and that is cool ...</p>
  -    <p>Friday: jBoss in PR1. &nbsp;&nbsp;A public release of the 1.0 version.</p>
  -    <p>&nbsp;
  -    <table border="0" cellspacing="0" cellpadding="0" width="100%">
  -      <tr>
  -     <td valign="top" bgcolor="#eeeeee"><font size="4" face="arial,helvetica">March 
27 - April 2 2000: O'Reilly conference a roaring success</font></td>
  -      </tr>
  -    </table>
  -    <p></p>
  -    <p>This week Marc Fleury and Rickard Oberg presented at the O'Reilly conference 
on Java. It was great to finally get to meet many of you and put names on faces. It is 
good to hear your feedback and see that jBoss is used in the field. Many contacts were 
taken, many talks initiated and most interesting was the talk with Graig McLanahan of 
SUN/Tomcat. We will integrated Tomcat and jBoss. The talks with the SUN&nbsp;were also 
very interesting, our project is clearly percieved as the leader in the field and it 
was interesting to hear the plans that SUN&nbsp;has for the open source. They spoke 
warmly of jBoss and our technology &quot;we were told it's not that low end&quot; was 
the remark (pun) of one of the proeminent figures of EJB... hee hee who said it was 
low-end? . &nbsp;&nbsp;</p>
  -    <p>
  -    <table border="0" cellspacing="0" cellpadding="0" width="100%">
  -      <tr>
  -     <td valign="top" bgcolor="#eeeeee"><font size="4" face="arial,helvetica">March 
20 - March 26 2000: DR2 update, JAWS&nbsp;update</font></td>
  -      </tr>
  -    </table>
  -    <p></p>
  -    <p>Wednesday: A new version of DR2 is posted. &nbsp;It contais many bug fixes 
from the early reports, mainly the class loader glitches.</p>
  -    <p>Thursday: Rickard Oberg posts another exciting enhancement for jBoss 2.0, it 
will come with a mapping for full finders and a graphical tool to select the fields 
you want to work on. With full R-&gt;O mapping jaws, still a &quot;one nostril&quot; 
implementation will cover 80%&nbsp;of the OR&nbsp;needs out there. And if it 
doesn't?&nbsp;well somebody has to make a living selling those pricey OR&nbsp;mappers 
to you ;-)</p>
  -    <p>Sunday: Failed interposition bug solved by Dan O'Connor.&nbsp;</p>
  -    <center>
  -      <p><a 
href="http://www.mail-archive.com/ejboss%40list.working-dogs.com/"><font 
size="1">(hey, pst! working-dogs is where it's at)</font></a></p>
  -      <p><a href="news0400.htm"><font size="6"><b>OLDER NEWS</b></font></a></p>
  -    </center>
  -    <p>
  -    <table border="0" cellpadding="0" cellspacing="0" width="100%">
  -      <tbody>
  -     <tr>
  -       <td bgcolor="white" valign="bottom" width="11"><img 
src="picture/corner-sw-small.gif" width="11" height="11"></td>
  -       <td bgcolor="white" width="100%"></td>
  -       <td bgcolor="white" width="21"></td>
  -       <td width="4"></td>
  -     </tr>
  -     <tr>
  -       <td bgcolor="#99cc66" width="11"><img alt="o" height="1" src="binary.htm" 
width="1"></td>
  -       <td bgcolor="#99cc66" width="100%">
  -         <table border="0" cellpadding="0" cellspacing="0" width="100%">
  -     <tbody>
  -       <tr bgcolor="#99cc66">
  -         <td width="100%">&nbsp;</td>
  -       </tr>
  -     </tbody>
  -    </table>
  -  </td>
  -    <td bgcolor="#666699" width="21"><img src="picture/corner-e.gif" width="22" 
height="22"></td>
  -    <td width="4"></td>
  -  </tr>
  -    <tr height="89">
  -      <td bgcolor="white" valign="top" width="11" height="89"><img 
src="picture/corner-nw-small.gif" width="11" height="11"></td>
  -      <td align="right" height="89" width="100%">
  -     <table border="0" cellpadding="0" cellspacing="0" width="100%" height="89">
  -       <tbody>
  -         <tr>
  -           <td valign="top" width="648"></td>
  -           <td valign="top" width="10"></td>
  -           <td align="right" valign="top" width="10">&nbsp;</td>
  -         </tr>
  -       </tbody>
  -     </table>
  -      </td>
  -      <td width="21" height="89"><img alt="o" height="1" src="binary.htm" 
width="1"></td>
  -      <td width="4" height="89"></td>
  -    </tr>
  -  </tbody>
  -  </table>
  -  </td>
  -    <td bgcolor="white" valign="top" width="170" height="1958">
  -      <table border="0" cellpadding="0" cellspacing="0" width="100%">
  -     <tbody>
  -       <tr>
  -         <td>&nbsp;</td>
  -       </tr>
  -       <tr>
  -         <td><img alt="o" height="1" src="binary.htm" width="1"><font 
color="#424264" face="Myriad Web,Arial" size="1"> </font></td>
  -       </tr>
  -     </tbody>
  -      </table>
  -      <table border="0" cellpadding="0" cellspacing="0" width="100%" height="394">
  -     <tbody>
  -       <tr>
  -         <td bgcolor="#54547f">
  -           <div align="right">
  -             <img src="picture/corner-w.gif" width="10" height="22"></div>
  -         </td>
  -         <td bgcolor="#336600" width="100%" nowrap><font face="Myriad Web,Arial" 
color="white" size="3"><b>Java One</b></font></td>
  -         <td bgcolor="#396c06"><img alt="o" height="1" src="picture/blank.gif" 
width="1"></td>
  -       </tr>
  -       <tr height="372">
  -         <td height="372"></td>
  -         <td bgcolor="#ffcc00" width="100%" height="372">jBoss was present at 
JavaONE 2000 as a guest in Telkel's booth . jBoss is clearly becoming the standard 
j2ee open source effort. Thanks for all of those that stopped by and the good buzz.
  -           <p>Keep the buzz going round and round. You can see the pictures <a 
href="javaone_site/javaone.htm">here</a>.</p>
  -           <p>jBoss now has a new logo,</p>
  -           <p><b>You love jBoss or you are powered by jBoss</b>? Feel free to use 
this logo on your site</p>
  -           <p><img height="60" width="159" 
src="picture/powered_by_jboss_flat_metal.gif"></p>
  -           <p><a href="logos.htm">More logos....</a></td>
  -         <td bgcolor="#99cc66" height="372"></td>
  -       </tr>
  -     </tbody>
  -      </table>
  -    </td>
  -    <td bgcolor="#bfbffe" height="1958"></td>
  -  </tr>
  -  </table>
  -  </body>
  -
  -</html>
  +     </html>
  
  
  
  1.2       +158 -158  jbossweb/menu.htm
  
  Index: menu.htm
  ===================================================================
  RCS file: /products/cvs/ejboss/jbossweb/menu.htm,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- menu.htm  2000/08/29 23:10:53     1.1
  +++ menu.htm  2000/09/01 23:53:44     1.2
  @@ -1,158 +1,158 @@
  -<html>
  -
  -     <head>
  -             <meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
  -             <meta name="generator" content="Adobe GoLive 4">
  -             <title>Untitled Document</title>
  -     </head>
  -
  -     <body bgcolor="#99cc66" leftmargin="0" topmargin="0" marginwidth="0" 
marginheight="0" text="black" link="black" vlink="black" alink="black">
  -             <table width="99" border="0">
  -                     <tr>
  -                             <td><img src="picture/button-jboss%20.gif" width="85" 
height="24"></td>
  -                     </tr>
  -                     <tr height="162">
  -                             <td height="162">
  -                                     <table>
  -                                             <tbody>
  -                                                     <tr>
  -                                                             <td align="left" 
width="12"><img src="picture/bullet-small.gif" width="12" height="12"></td>
  -                                                             <td width="83"><a 
href="organization.htm" target="mainFrame"><font color="black" face="Myriad Web,Arial" 
size="1">Organization</font></a></td>
  -                                                     </tr>
  -                                                     <tr height="17">
  -                                                             <td align="left" 
width="12" height="17"><img src="picture/bullet-small.gif" width="12" height="12"></td>
  -                                                             <td width="83" 
height="17"><a href="news.htm" target="mainFrame"><font size="1" face="Myriad 
Web,Arial" color="black">News</font></a></td>
  -                                                     </tr>
  -                                                     <tr>
  -                                                             <td align="left" 
width="12"><img src="picture/bullet-small.gif" width="12" height="12"></td>
  -                                                             <td width="83"><a 
href="developers.htm" target="mainFrame"><font size="1" face="Myriad Web,Arial" 
color="black">Developers</font></a></td>
  -                                                     </tr>
  -                                                     <tr height="15">
  -                                                             <td align="left" 
width="12" height="15"><img src="picture/bullet-small.gif" width="12" height="12"></td>
  -                                                             <td width="83" 
height="15"><a href="users.htm" target="mainFrame"><font size="1" face="Myriad 
Web,Arial" color="black">Users</font></a></td>
  -                                                     </tr>
  -                                             </tbody>
  -                                             <tr height="15">
  -                                                     <td width="12" 
height="15"><img src="picture/bullet-small.gif" width="12" height="12"></td>
  -                                                     <td width="83" height="15"><a 
href="team.htm" target="mainFrame"><font size="1" face="Myriad Web,Arial" 
color="black">The team</font></a></td>
  -                                             </tr>
  -                                             <tr height="15">
  -                                                     <td width="12" 
height="15"><img src="picture/bullet-small.gif" width="12" height="12"></td>
  -                                                     <td width="83" height="15"><a 
href="sponsor.htm" target="mainFrame"><font size="1" face="Myriad Web,Arial" 
color="black">Sponsors</font></a></td>
  -                                             </tr>
  -                                             <tr height="15">
  -                                                     <td width="12" 
height="15"><img src="picture/bullet-small.gif" width="12" height="12"></td>
  -                                                     <td width="83" height="15"><a 
href="partners.htm" target="mainFrame"><font size="1" face="Myriad 
Web,Arial">Partners</font></a></td>
  -                                             </tr>
  -                                             <tr height="15">
  -                                                     <td width="12" 
height="15"><img src="picture/bullet-small.gif" width="12" height="12"></td>
  -                                                     <td width="83" height="15"><a 
href="project_game_over.htm" target="mainFrame"><font size="1" face="Myriad 
Web,Arial">Game&nbsp;Over</font></a></td>
  -                                             </tr>
  -                                             <tr height="15">
  -                                                     <td width="12" 
height="15"><img src="picture/bullet-small.gif" width="12" height="12"></td>
  -                                                     <td width="83" height="15"><a 
href="what.htm" target="mainFrame"><font size="1" face="Myriad Web,Arial">What they 
say </font></a></td>
  -                                             </tr>
  -                                     </table>
  -                             </td>
  -                     </tr>
  -                     <tr>
  -                             <td><img src="picture/button-modules.gif" width="85" 
height="24" border="0"></td>
  -                     </tr>
  -                     <tr>
  -                             <td>
  -                                     <table>
  -                                             <tbody>
  -                                                     <tr>
  -                                                             <td align="left" 
width="12"><img src="picture/bullet-small.gif" width="12" height="12"></td>
  -                                                             <td width="86"><a 
href="jboss.htm" target="mainFrame"><font size="1" face="Myriad Web,Arial" 
color="black">jBoss</font></a></td>
  -                                                     </tr>
  -                                                     <tr>
  -                                                             <td align="left" 
width="12"><img src="picture/bullet-small.gif" width="12" height="12"></td>
  -                                                             <td width="86"><a 
href="spydermq.htm" target="mainFrame"><font color="black" face="Myriad Web,Arial" 
size="1">SpyderMQ</font></a></td>
  -                                                     </tr>
  -                                                     <tr height="17">
  -                                                             <td align="left" 
width="12" height="17"><img src="picture/bullet-small.gif" width="12" height="12"></td>
  -                                                             <td width="86" 
height="17"><a href="jaws/jaws.html" target="mainFrame"><font color="black" 
face="Myriad Web,Arial" size="1">Jaws</font></a></td>
  -                                                     </tr>
  -                                                     <tr height="17">
  -                                                             <td align="left" 
width="12" height="17"><img src="picture/bullet-small.gif" width="12" height="12"></td>
  -                                                             <td width="86" 
height="17"><a href="minerva/minerva.htm" target="mainFrame"><font color="black" 
face="Myriad Web,Arial" size="1">Minerva</font></a></td>
  -                                                     </tr>
  -                                                     <tr height="17">
  -                                                             <td align="left" 
width="12" height="17"><img src="picture/bullet-small.gif" width="12" height="12"></td>
  -                                                             <td width="86" 
height="17"><a href="jcts/jcts.htm" target="mainFrame"><font color="black" 
face="Myriad Web,Arial" size="1">TestSuite</font></a></td>
  -                                                     </tr>
  -                                                     <tr height="17">
  -                                                             <td align="left" 
width="12" height="17"><img src="picture/bullet-small.gif" width="12" height="12"></td>
  -                                                             <td width="86" 
height="17"><a href="tomcat.htm" target="mainFrame"><font color="black" face="Myriad 
Web,Arial" size="1">Tomcat</font></a></td>
  -                                                     </tr>
  -                                                     <tr height="17">
  -                                                             <td align="left" 
width="12" height="17"><img src="picture/bullet-small.gif" width="12" height="12"></td>
  -                                                             <td width="86" 
height="17"><a href="zoap/zoap.htm" target="mainFrame"><font color="black" 
face="Myriad Web,Arial" size="1">Zoap</font></a></td>
  -                                                     </tr>
  -                                                     <tr height="17">
  -                                                             <td align="left" 
width="12" height="17"><img src="picture/bullet-small.gif" width="12" height="12"></td>
  -                                                             <td width="86" 
height="17"><a href="zola.htm" target="mainFrame"><font color="black" face="Myriad 
Web,Arial" size="1">Zola</font></a></td>
  -                                                     </tr>
  -                                             </tbody>
  -                                             <tr height="17">
  -                                                     <td width="12" 
height="17"><img src="picture/bullet-small.gif" width="12" height="12"></td>
  -                                                     <td width="86" height="17"><a 
href="http://www.telkel.com/bugzilla/" target="mainFrame"><font color="black" 
face="Myriad Web,Arial" size="1">Bugzilla</font></a></td>
  -                                             </tr>
  -                                             <tr height="17">
  -                                                     <td width="12" 
height="17"><img src="picture/bullet-small.gif" width="12" height="12"></td>
  -                                                     <td width="86" height="17"><a 
href="mailing.htm" target="mainFrame"><font color="black" face="Myriad Web,Arial" 
size="1">Mailing lists</font></a></td>
  -                                             </tr>
  -                                     </table>
  -                             </td>
  -                     </tr>
  -                     <tr>
  -                             <td><img src="picture/button-download.gif" width="85" 
height="24"></td>
  -                     </tr>
  -                     <tr>
  -                             <td>
  -                                     <table>
  -                                             <tbody>
  -                                                     <tr>
  -                                                             <td align="left" 
width="15"><img src="picture/bullet-small.gif" width="12" height="12"></td>
  -                                                             <td><a href="cvs.htm" 
target="mainFrame"><font face="Myriad Web,Arial" size="1" 
color="black">CVS</font></a></td>
  -                                                     </tr>
  -                                                     <tr>
  -                                                             <td align="left" 
width="15"><img src="picture/bullet-small.gif" width="12" height="12"></td>
  -                                                             <td><a 
href="binary.htm" target="mainFrame"><font face="Myriad Web,Arial" size="1" 
color="black">Binary</font></a></td>
  -                                                     </tr>
  -                                                     <tr>
  -                                                             <td align="left" 
width="15"><img src="picture/bullet-small.gif" width="12" height="12"></td>
  -                                                             <td><a 
href="license.htm" target="mainFrame"><font face="Myriad Web,Arial" size="1" 
color="black">GPL License</font></a></td>
  -                                                     </tr>
  -                                             </tbody>
  -                                     </table>
  -                             </td>
  -                     </tr>
  -                     <tr>
  -                             <td><img src="picture/button-how%20to.gif" width="85" 
height="24"></td>
  -                     </tr>
  -                     <tr>
  -                             <td>
  -                                     <table>
  -                                             <tbody>
  -                                                     <tr>
  -                                                             <td align="left" 
width="12"><img src="picture/bullet-small.gif" width="12" height="12"></td>
  -                                                             <td width="46"><a 
href="about.htm" target="mainFrame"><font size="1" face="Myriad Web,Arial" 
color="black">About...</font></a></td>
  -                                                     </tr>
  -                                             </tbody>
  -                                             <tr>
  -                                                     <td width="12"><img 
src="picture/bullet-small.gif" width="12" height="12"></td>
  -                                                     <td width="46"><a 
href="getting_startedJB2.htm" target="mainFrame"><font face="Myriad Web,Arial" 
size="1" color="black">Getting Started</font></a></td>
  -                                             </tr>
  -                                             <tr>
  -                                                     <td width="12"><img 
src="picture/bullet-small.gif" width="12" height="12"></td>
  -                                                     <td width="46"><a 
href="faq.htm" target="mainFrame"><font face="Myriad Web,Arial" size="1" 
color="black">FAQ</font></a></td>
  -                                             </tr>
  -                                     </table>
  -                             </td>
  -                     </tr>
  -             </table>
  -     </body>
  -
  -</html>
  +<html>
  +
  +     <head>
  +             <meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
  +             <meta name="generator" content="Adobe GoLive 4">
  +             <title>Untitled Document</title>
  +     </head>
  +
  +     <body bgcolor="#99cc66" leftmargin="0" topmargin="0" marginwidth="0" 
marginheight="0" text="black" link="black" vlink="black" alink="black">
  +             <table width="99" border="0">
  +                     <tr>
  +                             <td><img src="picture/button-jboss%20.gif" width="85" 
height="24"></td>
  +                     </tr>
  +                     <tr height="162">
  +                             <td height="162">
  +                                     <table>
  +                                             <tbody>
  +                                                     <tr>
  +                                                             <td align="left" 
width="12"><img src="picture/bullet-small.gif" width="12" height="12"></td>
  +                                                             <td width="83"><a 
href="organization.htm" target="mainFrame"><font color="black" face="Myriad Web,Arial" 
size="1">Organization</font></a></td>
  +                                                     </tr>
  +                                                     <tr height="17">
  +                                                             <td align="left" 
width="12" height="17"><img src="picture/bullet-small.gif" width="12" height="12"></td>
  +                                                             <td width="83" 
height="17"><a href="news.htm" target="mainFrame"><font size="1" face="Myriad 
Web,Arial" color="black">News</font></a></td>
  +                                                     </tr>
  +                                                     <tr>
  +                                                             <td align="left" 
width="12"><img src="picture/bullet-small.gif" width="12" height="12"></td>
  +                                                             <td width="83"><a 
href="developers.htm" target="mainFrame"><font size="1" face="Myriad Web,Arial" 
color="black">Developers</font></a></td>
  +                                                     </tr>
  +                                                     <tr height="15">
  +                                                             <td align="left" 
width="12" height="15"><img src="picture/bullet-small.gif" width="12" height="12"></td>
  +                                                             <td width="83" 
height="15"><a href="users.htm" target="mainFrame"><font size="1" face="Myriad 
Web,Arial" color="black">Users</font></a></td>
  +                                                     </tr>
  +                                             </tbody>
  +                                             <tr height="15">
  +                                                     <td width="12" 
height="15"><img src="picture/bullet-small.gif" width="12" height="12"></td>
  +                                                     <td width="83" height="15"><a 
href="team.htm" target="mainFrame"><font size="1" face="Myriad Web,Arial" 
color="black">The team</font></a></td>
  +                                             </tr>
  +                                             <tr height="15">
  +                                                     <td width="12" 
height="15"><img src="picture/bullet-small.gif" width="12" height="12"></td>
  +                                                     <td width="83" height="15"><a 
href="sponsor.htm" target="mainFrame"><font size="1" face="Myriad Web,Arial" 
color="black">Sponsors</font></a></td>
  +                                             </tr>
  +                                             <tr height="15">
  +                                                     <td width="12" 
height="15"><img src="picture/bullet-small.gif" width="12" height="12"></td>
  +                                                     <td width="83" height="15"><a 
href="partners.htm" target="mainFrame"><font size="1" face="Myriad 
Web,Arial">Partners</font></a></td>
  +                                             </tr>
  +                                             <tr height="15">
  +                                                     <td width="12" 
height="15"><img src="picture/bullet-small.gif" width="12" height="12"></td>
  +                                                     <td width="83" height="15"><a 
href="project_game_over.htm" target="mainFrame"><font size="1" face="Myriad 
Web,Arial">Game&nbsp;Over</font></a></td>
  +                                             </tr>
  +                                             <tr height="15">
  +                                                     <td width="12" 
height="15"><img src="picture/bullet-small.gif" width="12" height="12"></td>
  +                                                     <td width="83" height="15"><a 
href="what.htm" target="mainFrame"><font size="1" face="Myriad Web,Arial">What they 
say </font></a></td>
  +                                             </tr>
  +                                     </table>
  +                             </td>
  +                     </tr>
  +                     <tr>
  +                             <td><img src="picture/button-modules.gif" width="85" 
height="24" border="0"></td>
  +                     </tr>
  +                     <tr>
  +                             <td>
  +                                     <table>
  +                                             <tbody>
  +                                                     <tr>
  +                                                             <td align="left" 
width="12"><img src="picture/bullet-small.gif" width="12" height="12"></td>
  +                                                             <td width="86"><a 
href="jboss.htm" target="mainFrame"><font size="1" face="Myriad Web,Arial" 
color="black">jBoss</font></a></td>
  +                                                     </tr>
  +                                                     <tr>
  +                                                             <td align="left" 
width="12"><img src="picture/bullet-small.gif" width="12" height="12"></td>
  +                                                             <td width="86"><a 
href="spydermq.htm" target="mainFrame"><font color="black" face="Myriad Web,Arial" 
size="1">SpyderMQ</font></a></td>
  +                                                     </tr>
  +                                                     <tr height="17">
  +                                                             <td align="left" 
width="12" height="17"><img src="picture/bullet-small.gif" width="12" height="12"></td>
  +                                                             <td width="86" 
height="17"><a href="jaws/jaws.html" target="mainFrame"><font color="black" 
face="Myriad Web,Arial" size="1">Jaws</font></a></td>
  +                                                     </tr>
  +                                                     <tr height="17">
  +                                                             <td align="left" 
width="12" height="17"><img src="picture/bullet-small.gif" width="12" height="12"></td>
  +                                                             <td width="86" 
height="17"><a href="minerva/minerva.htm" target="mainFrame"><font color="black" 
face="Myriad Web,Arial" size="1">Minerva</font></a></td>
  +                                                     </tr>
  +                                                     <tr height="17">
  +                                                             <td align="left" 
width="12" height="17"><img src="picture/bullet-small.gif" width="12" height="12"></td>
  +                                                             <td width="86" 
height="17"><a href="jcts/jcts.htm" target="mainFrame"><font color="black" 
face="Myriad Web,Arial" size="1">TestSuite</font></a></td>
  +                                                     </tr>
  +                                                     <tr height="17">
  +                                                             <td align="left" 
width="12" height="17"><img src="picture/bullet-small.gif" width="12" height="12"></td>
  +                                                             <td width="86" 
height="17"><a href="tomcat.htm" target="mainFrame"><font color="black" face="Myriad 
Web,Arial" size="1">Tomcat</font></a></td>
  +                                                     </tr>
  +                                                     <tr height="17">
  +                                                             <td align="left" 
width="12" height="17"><img src="picture/bullet-small.gif" width="12" height="12"></td>
  +                                                             <td width="86" 
height="17"><a href="zoap/zoap.htm" target="mainFrame"><font color="black" 
face="Myriad Web,Arial" size="1">Zoap</font></a></td>
  +                                                     </tr>
  +                                                     <tr height="17">
  +                                                             <td align="left" 
width="12" height="17"><img src="picture/bullet-small.gif" width="12" height="12"></td>
  +                                                             <td width="86" 
height="17"><a href="zola.htm" target="mainFrame"><font color="black" face="Myriad 
Web,Arial" size="1">Zola</font></a></td>
  +                                                     </tr>
  +                                             </tbody>
  +                                             <tr height="17">
  +                                                     <td width="12" 
height="17"><img src="picture/bullet-small.gif" width="12" height="12"></td>
  +                                                     <td width="86" height="17"><a 
href="http://www.telkel.com/bugzilla/" target="mainFrame"><font color="black" 
face="Myriad Web,Arial" size="1">Bugzilla</font></a></td>
  +                                             </tr>
  +                                             <tr height="17">
  +                                                     <td width="12" 
height="17"><img src="picture/bullet-small.gif" width="12" height="12"></td>
  +                                                     <td width="86" height="17"><a 
href="mailing.htm" target="mainFrame"><font color="black" face="Myriad Web,Arial" 
size="1">Mailing lists</font></a></td>
  +                                             </tr>
  +                                     </table>
  +                             </td>
  +                     </tr>
  +                     <tr>
  +                             <td><img src="picture/button-download.gif" width="85" 
height="24"></td>
  +                     </tr>
  +                     <tr>
  +                             <td>
  +                                     <table>
  +                                             <tbody>
  +                                                     <tr>
  +                                                             <td align="left" 
width="15"><img src="picture/bullet-small.gif" width="12" height="12"></td>
  +                                                             <td><a href="cvs.htm" 
target="mainFrame"><font face="Myriad Web,Arial" size="1" 
color="black">CVS</font></a></td>
  +                                                     </tr>
  +                                                     <tr>
  +                                                             <td align="left" 
width="15"><img src="picture/bullet-small.gif" width="12" height="12"></td>
  +                                                             <td><a 
href="binary.htm" target="mainFrame"><font face="Myriad Web,Arial" size="1" 
color="black">Binary</font></a></td>
  +                                                     </tr>
  +                                                     <tr>
  +                                                             <td align="left" 
width="15"><img src="picture/bullet-small.gif" width="12" height="12"></td>
  +                                                             <td><a 
href="license.htm" target="mainFrame"><font face="Myriad Web,Arial" size="1" 
color="black">GPL License</font></a></td>
  +                                                     </tr>
  +                                             </tbody>
  +                                     </table>
  +                             </td>
  +                     </tr>
  +                     <tr>
  +                             <td><img src="picture/button-how%20to.gif" width="85" 
height="24"></td>
  +                     </tr>
  +                     <tr>
  +                             <td>
  +                                     <table>
  +                                             <tbody>
  +                                                     <tr>
  +                                                             <td align="left" 
width="12"><img src="picture/bullet-small.gif" width="12" height="12"></td>
  +                                                             <td width="46"><a 
href="about.htm" target="mainFrame"><font size="1" face="Myriad Web,Arial" 
color="black">About...</font></a></td>
  +                                                     </tr>
  +                                             </tbody>
  +                                             <tr>
  +                                                     <td width="12"><img 
src="picture/bullet-small.gif" width="12" height="12"></td>
  +                                                     <td width="46"><a 
href="getting_startedJB2.htm" target="mainFrame"><font face="Myriad Web,Arial" 
size="1" color="black">Getting Started</font></a></td>
  +                                             </tr>
  +                                             <tr>
  +                                                     <td width="12"><img 
src="picture/bullet-small.gif" width="12" height="12"></td>
  +                                                     <td width="46"><a 
href="faq.htm" target="mainFrame"><font face="Myriad Web,Arial" size="1" 
color="black">FAQ</font></a></td>
  +                                             </tr>
  +                                     </table>
  +                             </td>
  +                     </tr>
  +             </table>
  +     </body>
  +
  +</html>
  
  
  
  1.2       +68 -91    jbossweb/jboss_win32_6.html
  
  Index: jboss_win32_6.html
  ===================================================================
  RCS file: /products/cvs/ejboss/jbossweb/jboss_win32_6.html,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- jboss_win32_6.html        2000/08/29 23:12:35     1.1
  +++ jboss_win32_6.html        2000/09/01 23:53:45     1.2
  @@ -1,97 +1,74 @@
   <html>
  -<head>
  -<title>
  -Step 6: compiling and running the test client
  -</title>
   
  -</head>
  +     <head>
  +             <meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
  +             <meta name="generator" content="Adobe GoLive 4">
  +             <title>Step 6: compiling and running the test client</title>
  +     </head>
   
  -<p><font face=arial,helvetica size=+3 color="#ffcc00"> Step 6: compiling and 
running the 
  -test client </font> </p>
  -<p>&nbsp;<font face=arial,helvetica size=+2>Beginning EJB programming using 
jBoss</font> </p>
  -<TABLE ALIGN="CENTER" BORDER=1 CELLSPACING=0 CELLPADDING=4>
  -  <tr> 
  -    <td>
  -      <p align=center><a href=jboss_win32_5.html > 
  -       BACK: Step 5: coding the test client </a></p>
  -    </td>
  -    <td>
  -      <p align=center><a href=jboss_win32_trail_index.html > contents </a></p>
  -    </td>
  -    <td> <a href=jboss_win32_7.html > 
  -      FORWARD: Step 7: compiling the test client as a servlet </a> </td>
  -  </tr>
  -</table>
  -<p> We're now ready to run the test client, but first a word of explanation. <br>
  -
  -  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; In reality the client and the server are 
  -  likely to be on different computers. When you <i>compile</i> the client, the 
  -  compiler needs to know about the organization and methods of classes in the 
  -  Bean so it can do type checking. When you <i>run</i> the client, the run-time 
  -  engine needs to know about the Bean classes, because type-casting is done at 
  -  run-time. So when the client attempts to cast the remote reference to a reference 
  -  to an object of class <code>InterestHome</code> for example, it needs to know 
  -  about this class. This means that <i>you will need the Bean class files on both 
  -  the client and the server</i> even though they execute on the server. This is 
  -  fairly obvious if you think about the logic, but it causes all sorts of problems 
  -  for people who are new to RMI programming. If the client can't find the Bean 
  -  classes, you will get error messages like this: 
  -<pre>
  -javax.naming.CommunicationException [Root exception is
  -java.lang.ClassNotFoundException: com.web_tomorrow.interest.InterestHome]
  -</pre>
  -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; A `communication exception' is the exception 
that represents any error that can't 
  -readily be ascribed to a definite cause. If you get this message you need to pay 
  -attention to the CLASSPATH on the client. <br>
  -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If the client program is at the top of the 
  -directory hierarchy, with the Bean classes below it, then we can run it like this:
  -<pre>
  -cd "\Program Files\jboss2\examples\interest"
  -java -classpath %CLASSPATH%;..\..\lib\ext\ejb.jar;..\..\client\jboss-client.jar;. 
InterestClient 
  -</pre>
  -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Once again, this needs to go in a .bat file or 
a Makefile; you won't want to 
  -type it more than once. Note the long CLASSPATH; it needs to include 
  -the jBoss client classes and the EJB classes as well as the standard classpath 
  -(if any). <br>
  -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If all is well, the test client produces 
  -the following output: 
  -<TABLE BORDER=0 BGCOLOR="#FFFF80" CELLSPACING=4><TR><TD><pre>
  -Got context
  +     <font face="arial,helvetica" size="6" color="#ffcc00">Step 6: compiling and 
running the test client </font>
  +     <p>&nbsp;<font face="arial,helvetica" size="5">Beginning EJB programming using 
jBoss</font></p>
  +     <p>
  +     <table align="CENTER" border="1" cellspacing="0" cellpadding="4">
  +             <tr>
  +                     <td>
  +                             <center>
  +                                     <a href="jboss_win32_5.html">BACK: Step 5: 
coding the test client </a></center>
  +                     </td>
  +                     <td>
  +                             <center>
  +                                     <a 
href="jboss_win32_trail_index.html">contents </a></center>
  +                     </td>
  +                     <td><a href="jboss_win32_7.html">FORWARD: Step 7: compiling 
the test client as a servlet </a></td>
  +             </tr>
  +     </table>
  +     <p>We're now ready to run the test client, but first a word of explanation.<br>
  +     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; In reality the client and the server are 
likely to be on different computers. When you <i>compile</i> the client, the compiler 
needs to know about the organization and methods of classes in the Bean so it can do 
type checking. When you <i>run</i> the client, the run-time engine needs to know about 
the Bean classes, because type-casting is done at run-time. So when the client 
attempts to cast the remote reference to a reference to an object of class 
<code>InterestHome</code> for example, it needs to know about this class. This means 
that <i>you will need the Bean class files on both the client and the server</i> even 
though they execute on the server. This is fairly obvious if you think about the 
logic, but it causes all sorts of problems for people who are new to RMI programming. 
If the client can't find the Bean classes, you will get error messages like this:</p>
  +     <pre>javax.naming.CommunicationException [Root exception is
  +java.lang.ClassNotFoundException: com.web_tomorrow.interest.InterestHome]</pre>
  +     <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; A `communication exception' is the 
exception that represents any error that can't readily be ascribed to a definite 
cause. If you get this message you need to pay attention to the CLASSPATH on the 
client. Note that the server doesn't need a classpath setting since it works from the 
deploy directory.<br>
  +     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If the client program is at the top of 
the directory hierarchy, with the Bean classes below it, then we can run it like this:
  +     <pre>cd &quot;\Program Files\jboss2\examples\interest&quot;
  +java -classpath %CLASSPATH%;..\..\lib\ext\ejb.jar;..\..\client\jboss-client.jar;. 
InterestClient </pre>
  +     <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Once again, this needs to go in a .bat 
file or a Makefile; you won't want to type it more than once. Note the long CLASSPATH; 
it needs to include the jBoss client classes and the EJB classes as well as the 
standard classpath (if any).<br>
  +     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If all is well, the test client produces 
the following output:
  +     <table border="0" bgcolor="#ffff80" cellspacing="4">
  +             <tr>
  +                     <td>
  +                             <pre>Got context
   Got reference
   Interest on 1000 units, at 10% per period, compounded over 2 periods is:
  -210.00000000000023
  -</pre></TD></TR></TABLE>
  -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If it doesn't produce this output but you see 
a "MalformedURLException" try installing jboss in another directory that doesn't 
contain space in it's path (typically some installations on windows don't like 
C:\Program Files (the space).
  -<br>
  -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Another common problem you can see here is a 
"class not found exception" make sure you include all the jars.
  -<br>
  -<br>
  -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The Bean should produce an output on the 
server as well; this is to show that 
  -the Bean has executed on the server, not the client. Look for something like this 
  -in the server log: 
  -<TABLE BORDER=0 BGCOLOR="#FFFF80" CELLSPACING=4><TR><TD><pre>
  -[Interest] Someone called `calculateCompoundInterest!'
  -</pre></TD></TR></TABLE>
  -Well, that's it. We covered coding, compiling and deploying the Bean, and coding 
  -and running a simple test client. If you found this article useful, drop me a 
  -line at <a href="mailto:[EMAIL PROTECTED]">[EMAIL PROTECTED]</a> ; if 
there's 
  -enough response I may be persuaded to produce some more sophisticated tutorials. 
  -<p> Kevin Boone, June 2000 (original author) 
  -<p> Gregory Pierce, July 2000 (ported to Windows platforms) 
  -<p> Ken Jenks, July 2000 (editing) 
  -<p>
  -<TABLE ALIGN="CENTER" BORDER=1 CELLSPACING=0 CELLPADDING=4>
  -  <tr> 
  -    <td>
  -      <p align=center><a href=jboss_win32_5.html > 
  -       BACK: Step 5: coding the test client </a></p>
  -    </td>
  -    <td>
  -      <p align=center><a href=jboss_win32_trail_index.html > contents </a></p>
  -    </td>
  -    <td> <a href=jboss_win32_7.html > 
  -      FORWARD: Step 7: compiling the test client as a servlet </a> </td>
  -  </tr>
  -</table>
  -
  +210.00000000000023</pre>
  +                     </td>
  +             </tr>
  +     </table>
  +     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If it doesn't produce this output but you 
see a &quot;MalformedURLException&quot; try installing jboss in another directory that 
doesn't contain space in it's path (typically some installations on windows don't like 
C:\Program Files (the space).<br>
  +     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Another common problem you can see here 
is a &quot;class not found exception&quot; make sure you include all the jars.<br>
  +     <br>
  +     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The Bean should produce an output on the 
server as well; this is to show that the Bean has executed on the server, not the 
client. Look for something like this in the server log:
  +     <table border="0" bgcolor="#ffff80" cellspacing="4">
  +             <tr>
  +                     <td>
  +                             <pre>[Interest] Someone called 
`calculateCompoundInterest!'</pre>
  +                     </td>
  +             </tr>
  +     </table>
  +     Well, that's it. We covered coding, compiling and deploying the Bean, and 
coding and running a simple test client. If you found this article useful, drop me a 
line at <a href="mailto:[EMAIL PROTECTED]">[EMAIL PROTECTED]</a> ; if 
there's enough response I may be persuaded to produce some more sophisticated 
tutorials.
  +     <p>Kevin Boone, June 2000 (original author)</p>
  +     <p>Gregory Pierce, July 2000 (ported to Windows platforms)</p>
  +     <p>Ken Jenks, July 2000 (editing)</p>
  +     <p>
  +     <table align="CENTER" border="1" cellspacing="0" cellpadding="4">
  +             <tr>
  +                     <td>
  +                             <center>
  +                                     <a href="jboss_win32_5.html">BACK: Step 5: 
coding the test client </a></center>
  +                     </td>
  +                     <td>
  +                             <center>
  +                                     <a 
href="jboss_win32_trail_index.html">contents </a></center>
  +                     </td>
  +                     <td><a href="jboss_win32_7.html">FORWARD: Step 7: compiling 
the test client as a servlet </a></td>
  +             </tr>
  +     </table>
   </html>
  
  
  
  1.2       +111 -114  jbossweb/jboss_win32_5.html
  
  Index: jboss_win32_5.html
  ===================================================================
  RCS file: /products/cvs/ejboss/jbossweb/jboss_win32_5.html,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- jboss_win32_5.html        2000/08/29 23:12:35     1.1
  +++ jboss_win32_5.html        2000/09/01 23:53:45     1.2
  @@ -1,48 +1,41 @@
   <html>
  -<head>
  -<title>
  -Step 5: coding the test client
  -</title>
  -
  -
  -</head>
  -
  -<p><font face=arial,helvetica size=+3 color="#ffcc00"> Step 5: coding the test 
client </font> </p>
  -<p>&nbsp;<font face=arial,helvetica size=+2>Beginning EJB programming using 
jBoss</font> </p>
  -<TABLE ALIGN="CENTER" BORDER=1 CELLSPACING=0 CELLPADDING=4>
  -  <tr> 
  -    <td>
  -      <p align=center><a href=jboss_win32_4.html > 
  -        BACK: Step 4: packaging and deploying the Bean </a></p>
  -    </td>
  -    <td>
  -      <p align=center><a href=jboss_win32_trail_index.html> contents </a></p>
  -    </td>
  -    <td>
  -      <p align=center><a href=jboss_win32_6.html > 
  -        FORWARD: Step 6: compiling and running the test client </a></p>
  -    </td>
  -  </tr>
  -</table>
  -<p> An EJB on its own is no use; we will need at least a simple client to use 
  -  its services. A user of EJBs may be another EJB, and ordinary JavaBean, a JSP 
  -  page, an applet, or a stand-alone application. In this example, for simplicity, 
  -  we will code a simple application. This application will create an object of 
  -  class Interest, and execute its one method. <br>
  -
  -  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; I should point out straight away that the 
  -  test client I will present below does not illustrate how you should code this 
  -  sort of thing in practice; I've done it this way to show exactly what's going 
  -  on. In reality, you will probably want to separate out the RMI-specific stuff 
  -  into a separate class to divide the important functionality from the technical 
  -  details. This class is sometimes called a `stub'. Some EJB products will generate 
  -  stubs automatically. jBoss doesn't do this, so you'll have to code the stubs 
  -  yourself (it isn't difficult). <br>
  -  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Here is the test client: 
  -<p> <b>Test client: InterestClient.java</b> <br>
  -<hr>
  -<TABLE BORDER=0 BGCOLOR="#80FF80" CELLSPACING=4><TR><TD><PRE>
  -import javax.naming.*;
  +
  +     <head>
  +             <meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
  +             <meta name="generator" content="Adobe GoLive 4">
  +             <title>Step 5: coding the test client</title>
  +     </head>
  +
  +     <font face="arial,helvetica" size="6" color="#ffcc00">Step 5: coding the test 
client </font>
  +     <p>&nbsp;<font face="arial,helvetica" size="5">Beginning EJB programming using 
jBoss</font></p>
  +     <p>
  +     <table align="CENTER" border="1" cellspacing="0" cellpadding="4">
  +             <tr>
  +                     <td>
  +                             <center>
  +                                     <a href="jboss_win32_4.html">BACK: Step 4: 
packaging and deploying the Bean </a></center>
  +                     </td>
  +                     <td>
  +                             <center>
  +                                     <a 
href="jboss_win32_trail_index.html">contents </a></center>
  +                     </td>
  +                     <td>
  +                             <center>
  +                                     <a href="jboss_win32_6.html">FORWARD: Step 6: 
compiling and running the test client </a></center>
  +                     </td>
  +             </tr>
  +     </table>
  +     </p>
  +     <p>An EJB on its own is no use; we will need at least a simple client to use 
its services. A user of EJBs may be another EJB, and ordinary JavaBean, a JSP page, an 
applet, or a stand-alone application. In this example, for simplicity, we will code a 
simple application. This application will create an object of class Interest, and 
execute its one method.<br>
  +     </p>
  +     <p>Upon &quot;deployment&quot; of the bean as we have seen in the previous 
step, the server has generated all the stubs and skeletons needed for the distributed 
calls. &nbsp;What we are going to cover here is the way you lookup a reference in 
JNDI&nbsp;from a client and invoke it. &nbsp;It is pretty straightforward.</p>
  +     <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Here is the test client:</p>
  +     <p><b>Test client: InterestClient.java</b><br>
  +     <hr>
  +     <table border="0" bgcolor="#80ff80" cellspacing="4">
  +             <tr>
  +                     <td>
  +                             <pre>import javax.naming.*;
   import com.web_tomorrow.interest.*;
   import java.util.Hashtable;
   import javax.rmi.PortableRemoteObject; 
  @@ -53,6 +46,10 @@
   implemented in the package `com.web_tomorrow.interest'. For this to work, the
   Bean must be deployed on an EJB server.
   <p>
  +</p>
  +
  +
  +
   <b>IMPORTANT</b> If you want to test this in a real client-server
   configuration, this class goes on the client; the URL of the naming provider
   specifed in the class must be changed from `localhost:1099' to the URL of the
  @@ -68,10 +65,10 @@
     public static void main(String[] args) {
       // Set up the naming provider; this may not always be necessary, depending
       // on how your Java system is configured.
  -    System.setProperty("java.naming.factory.initial", 
  -      "org.jnp.interfaces.NamingContextFactory");
  -    System.setProperty("java.naming.provider.url", 
  -      "localhost:1099");
  +    System.setProperty(&quot;java.naming.factory.initial&quot;, 
  +      &quot;org.jnp.interfaces.NamingContextFactory&quot;);
  +    System.setProperty(&quot;java.naming.provider.url&quot;, 
  +      &quot;localhost:1099&quot;);
   
       // Enclosing the whole process in a single `try' block is not an ideal way
       // to do exception handling, but I don't want to clutter the program up
  @@ -79,12 +76,17 @@
       try {
         // Get a naming context
         InitialContext jndiContext = new InitialContext();
  -      System.out.println("Got context");
  +      System.out.println(&quot;Got context&quot;);
   
         // Get a reference to the Interest Bean
  -      Object ref  = jndiContext.lookup("interest/Interest");
  -      System.out.println("Got reference");
  +      Object ref  = jndiContext.lookup(&quot;interest/Interest&quot;);
  +
  +      // Note that if you did not use jboss.xml to overwrite JNDI&nbsp;naming
  +      // the object will be available under &quot;Interest&quot; it's ejb-name
  +      // Object ref = jndiContext.lookup(&quot;Interest&quot;);
   
  +      System.out.println(&quot;Got reference&quot;);
  +
         // Get a reference from this to the Bean's Home interface
         InterestHome home = (InterestHome) 
           PortableRemoteObject.narrow (ref, InterestHome.class);
  @@ -94,72 +96,67 @@
   
         // call the calculateCompoundInterest() method to do the calculation
         System.out.println 
  -        ("Interest on 1000 units, at 10% per period, compounded over 2 periods 
is:");
  +        (&quot;Interest on 1000 units, at 10% per period, compounded over 2 periods 
is:&quot;);
         System.out.println (interest.calculateCompoundInterest (1000, 0.10, 2));
       } catch(Exception e) {
         System.out.println(e.toString());
       }
     }
  -}
  -</PRE></TD></TR></TABLE>
  -<hr>
  -<p> It's important to understand that in reality this client will be running on 
  -  a different computer to the Bean server. For testing you will probably run them 
  -  on the same computer, but it will still be using a network connection. So the 
  -  first part of the program indicates how to find the server. 
  -<TABLE BORDER=0 BGCOLOR="#80FF80" CELLSPACING=4><TR><TD><PRE>
  -  System.setProperty("java.naming.factory.initial", 
  -    "org.jnp.interfaces.NamingContextFactory");
  -  System.setProperty("java.naming.provider.url", 
  -    "localhost:1099");
  -</PRE></TD></TR></TABLE>
  -There are several other ways to do this, which you may see described in other 
  -articles. In this case, the server is on the same machine as the client 
(`localhost') 
  -and the default naming port is `1099' for jBoss (other servers may use different 
  -port numbers). If you run the client and the server on different machines, you 
  -will need to change these settings. <br>
  -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The comments in the program should describe 
  -how it works; one point that requires mention is that the recommended way to get 
  -a reference to the home interface on the server is like this: 
  -<TABLE BORDER=0 BGCOLOR="#80FF80" CELLSPACING=4><TR><TD><PRE>
  -InterestHome home = (InterestHome) 
  -     PortableRemoteObject.narrow (ref, InterestHome.class);
  -</PRE></TD></TR></TABLE>
  -which ensures compatibility with different RMI servers (e.g., CORBA). `narrow' 
  -ensures that the object returned in `ref' really can be converted to an object 
  -of class `InterestHome'. <br>
  -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The test client doesn't need to be in the 
  -same package as the EJB classes, and in practice it probably won't be. So it needs 
  -to import the EJB classes using their fully-qualified class name, like this: 
  -<TABLE BORDER=0 BGCOLOR="#80FF80" CELLSPACING=4><TR><TD><PRE>
  -import com.web_tomorrow.interest.*;
  -</PRE></TD></TR></TABLE>
  -You will also need to pay attention to the CLASSPATH when compiling. Even though 
  -the EJB classes will <i>run</i> on the server, they need to be identified to the 
  -client so that the compiler can do the appropriate type checking. In the example 
  -program I have put the client at the top level of the directory hierachy, so if 
  -the CLASSPATH includes the current directory it will correctly find the EJB classes 
  -which are in the directories beneath it. 
  -<pre>
  -cd "\Program Files\jboss2\examples\interest"
  -javac -classpath ..\..\lib\ext\ejb.jar;. InterestClient.java
  -</pre>
  -This generates <CODE>InterestClient.class</CODE>.
  -<p>
  -<TABLE ALIGN="CENTER" BORDER=1 CELLSPACING=0 CELLPADDING=4>
  -  <tr> 
  -    <td>
  -      <p align=center><a href=jboss_win32_4.html > 
  -        BACK: Step 4: packaging and deploying the Bean </a></p>
  -    </td>
  -    <td>
  -      <p align=center><a href=jboss_win32_trail_index.html> contents </a></p>
  -    </td>
  -    <td>
  -      <p align=center><a href=jboss_win32_6.html > 
  -        FORWARD: Step 6: compiling and running the test client </a></p>
  -    </td>
  -  </tr>
  -</table>
  -
  +}</pre>
  +                     </td>
  +             </tr>
  +     </table>
  +     <hr>
  +     </p>
  +     <p>It's important to understand that in reality this client will be running on 
a different computer to the Bean server. For testing you will probably run them on the 
same computer, but it will still be using a network connection. So the first part of 
the program indicates how to find the server.
  +     <table border="0" bgcolor="#80ff80" cellspacing="4">
  +             <tr>
  +                     <td>
  +                             <pre>  
System.setProperty(&quot;java.naming.factory.initial&quot;, 
  +    &quot;org.jnp.interfaces.NamingContextFactory&quot;);
  +  System.setProperty(&quot;java.naming.provider.url&quot;, 
  +    &quot;localhost:1099&quot;);</pre>
  +                     </td>
  +             </tr>
  +     </table>
  +     There are several other ways to do this, which you may see described in other 
articles. In this case, the server is on the same machine as the client (`localhost') 
and the default naming port is `1099' for jBoss (other servers may use different port 
numbers). If you run the client and the server on different machines, you will need to 
change these settings.<br>
  +     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The comments in the program should 
describe how it works; one point that requires mention is that the recommended way to 
get a reference to the home interface on the server is like this:
  +     <table border="0" bgcolor="#80ff80" cellspacing="4">
  +             <tr>
  +                     <td>
  +                             <pre>InterestHome home = (InterestHome) 
  +PortableRemoteObject.narrow (ref, InterestHome.class);</pre>
  +                     </td>
  +             </tr>
  +     </table>
  +     which ensures compatibility with different RMI servers (e.g., CORBA). `narrow' 
ensures that the object returned in `ref' really can be converted to an object of 
class `InterestHome'.<br>
  +     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The test client doesn't need to be in the 
same package as the EJB classes, and in practice it probably won't be. So it needs to 
import the EJB classes using their fully-qualified class name, like this:
  +     <table border="0" bgcolor="#80ff80" cellspacing="4">
  +             <tr>
  +                     <td>
  +                             <pre>import com.web_tomorrow.interest.*;</pre>
  +                     </td>
  +             </tr>
  +     </table>
  +     You will also need to pay attention to the CLASSPATH when compiling. Even 
though the EJB classes will <i>run</i> on the server, they need to be identified to 
the client so that the compiler can do the appropriate type checking. In the example 
program I have put the client at the top level of the directory hierachy, so if the 
CLASSPATH includes the current directory it will correctly find the EJB classes which 
are in the directories beneath it.</p>
  +     <pre>cd &quot;\Program Files\jboss2\examples\interest&quot;
  +javac -classpath ..\..\lib\ext\ejb.jar;. InterestClient.java</pre>
  +     <p>This generates <code>InterestClient.class</code>.</p>
  +     <p>
  +     <table align="CENTER" border="1" cellspacing="0" cellpadding="4">
  +             <tr>
  +                     <td>
  +                             <center>
  +                                     <a href="jboss_win32_4.html">BACK: Step 4: 
packaging and deploying the Bean </a></center>
  +                     </td>
  +                     <td>
  +                             <center>
  +                                     <a 
href="jboss_win32_trail_index.html">contents </a></center>
  +                     </td>
  +                     <td>
  +                             <center>
  +                                     <a href="jboss_win32_6.html">FORWARD: Step 6: 
compiling and running the test client </a></center>
  +                     </td>
  +             </tr>
  +     </table>
   </html>
  
  
  
  1.2       +60 -86    jbossweb/jboss_win32_4.html
  
  Index: jboss_win32_4.html
  ===================================================================
  RCS file: /products/cvs/ejboss/jbossweb/jboss_win32_4.html,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- jboss_win32_4.html        2000/08/29 23:12:34     1.1
  +++ jboss_win32_4.html        2000/09/01 23:53:45     1.2
  @@ -1,101 +1,75 @@
   <html>
  -<head>
  -<title>
  -Step 4: packaging and deploying the Bean
  -</title>
   
  -</head>
  +     <head>
  +             <meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
  +             <meta name="generator" content="Adobe GoLive 4">
  +             <title>Step 4: packaging and deploying the Bean</title>
  +     </head>
   
  -<p><font face=arial,helvetica size=+3 color="#ffcc00"> Step 4: packaging and 
deploying 
  -the Bean </font> </p>
  -<p>&nbsp;<font face=arial,helvetica size=+2>Beginning EJB programming using 
jBoss</font> </p>
  -
  -<TABLE ALIGN="CENTER" BORDER=1 CELLSPACING=0 CELLPADDING=4>
  -  <tr> 
  -    <td>
  -      <p align=center><a href=jboss_win32_3.html >
  -        BACK: Step 3: the deployment descriptor </a></p>
  -    </td>
  -    <td>
  -      <p align=center><a href=jboss_win32_trail_index.html > contents </a></p>
  -    </td>
  -    <td>
  -      <p align=center><a href=jboss_win32_5.html>
  -        FORWARD: Step 5: coding the test client </a></p>
  -    </td>
  -  </tr>
  -</table>
  -<p>
  -<p> Creation of the Bean package involves building a JAR archive containing the
  -  classes and the XML files. For the example Bean we have been discussing, this
  -  is straightforward; at the top of the directory hierarchy run <code>jar</code>
  -  like this: (This should all be on one long command line.)<BR>
  -<code>
  -jar cvf interest.jar com\web_tomorrow\interest\Interest.class 
com\web_tomorrow\interest\InterestHome.class 
com\web_tomorrow\interest\InterestBean.class META-INF
  -</code><BR>
  -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If you have `make' on your system, and you 
have unpacked the source code archive,
  -you can get the same effect simply by executing `make package'. I strongly recommend
  -using Makefiles or batch files to do these operations because in practice you
  -will be repeating them many times during development.<br>
  -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The <code>jar cvf</code> command builds an 
archive 
  -containing the three classes, and the XML files in the META-INF directory. If you 
list the
  -contents of the archive you should see something like this:
  -<pre>
  -      0  06-16-00  11:34   META-INF/
  +     <font face="arial,helvetica" size="6" color="#ffcc00">Step 4: packaging and 
deploying the Bean </font>
  +     <p>&nbsp;<font face="arial,helvetica" size="5">Beginning EJB programming using 
jBoss</font></p>
  +     <p>
  +     <table align="CENTER" border="1" cellspacing="0" cellpadding="4">
  +             <tr>
  +                     <td>
  +                             <center>
  +                                     <a href="jboss_win32_3.html">BACK: Step 3: the 
deployment descriptor </a></center>
  +                     </td>
  +                     <td>
  +                             <center>
  +                                     <a 
href="jboss_win32_trail_index.html">contents </a></center>
  +                     </td>
  +                     <td>
  +                             <center>
  +                                     <a href="jboss_win32_5.html">FORWARD: Step 5: 
coding the test client </a></center>
  +                     </td>
  +             </tr>
  +     </table>
  +     <p>Creation of the Bean package involves building a JAR archive containing the 
classes and the XML files. For the example Bean we have been discussing, this is 
straightforward; at the top of the directory hierarchy run <code>jar</code> like this: 
(This should all be on one long command line.)<br>
  +     <code>jar cvf interest.jar com\web_tomorrow\interest\Interest.class 
com\web_tomorrow\interest\InterestHome.class 
com\web_tomorrow\interest\InterestBean.class META-INF </code><br>
  +     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If you have `make' on your system, and 
you have unpacked the source code archive, you can get the same effect simply by 
executing `make package'. I strongly recommend using Makefiles or batch files to do 
these operations because in practice you will be repeating them many times during 
development.<br>
  +     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The <code>jar cvf</code> command builds 
an archive containing the three classes, and the XML files in the META-INF directory. 
If you list the contents of the archive you should see something like this:</p>
  +     <pre>      0  06-16-00  11:34   META-INF/
        72  06-16-00  11:35   META-INF/MANIFEST.MF
       248  06-16-00  10:12   com/web_tomorrow/interest/Interest.class
       300  06-16-00  10:12   com/web_tomorrow/interest/InterestHome.class
       877  06-16-00  10:12   com/web_tomorrow/interest/InterestBean.class
       549  06-15-00  18:15   META-INF/ejb-jar.xml
  -   3597  06-15-00  17:20   META-INF/jboss.xml
  -</pre>
  -Note that the directory structure must be <i>exactly</i> like this, or it won't
  -work. <br>
  -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; To deploy the Bean on the server, all that's
  -necessary is to copy the .jar file to the `deploy' directory on the server, 
e.g.,<pre>
  -copy interest.jar "c:\Program Files\jboss2\deploy"
  -</pre>
  -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; You can do this as often as you like; the 
server 
  -will detect that the file has changed and automatically re-deploy it. During 
  -deployment you should see the following
  -messages from the server:<pre>
  -[Auto deploy] Auto deploy of file: c:\Program Files\jboss2\deploy\interest.jar
  +   3597  06-15-00  17:20   META-INF/jboss.xml</pre>
  +     <p>Note that the directory structure must be <i>exactly</i> like this, or it 
won't work. Again a common mistake is to do a META_INF (underscore) instead of 
META-INF, be careful with this one<br>
  +     <br>
  +     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; To deploy the Bean on the server, all 
that's necessary is to copy the .jar file to the `deploy' directory on the server, 
e.g.,</p>
  +     <pre>copy interest.jar &quot;c:\Program Files\jboss2\deploy&quot;</pre>
  +     <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; You can do this as often as you like; 
the server will detect that the file has changed and automatically re-deploy it. 
During deployment you should see the following messages from the server:
  +     <pre>[Auto deploy] Auto deploy of file: c:\Program 
Files\jboss2\deploy\interest.jar
   [Container factory] Deploying:file: c:\Program Files\jboss2\deploy\interest.jar
   [Container factory] Deploying Interest
   [Container factory] Started: Interest
   [Container factory] Bound Interest to interest/Interest
   [Container factory] Deployed application:
  -file: c:\Program Files\jboss2\deploy\interest.jar
  -</pre>
  -If you see a message like this:<pre>
  -[Container factory] Deploying:file:c:\Program Files\jboss2\deploy\interest.jar
  +file: c:\Program Files\jboss2\deploy\interest.jar</pre>
  +     <p>If you see a message like this:
  +     <pre>[Container factory] Deploying:file:c:\Program 
Files\jboss2\deploy\interest.jar
   [Container factory] Deployed application:
  -file:c:\Program Files\jboss2\deploy\interest.jar
  -</pre>
  -then no Beans have been deployed -- the server always reports the Beans that it
  -detects. This usually means that the deployment descriptor <code>ejb-jar.xml</code>
  -is badly structured, or missing, or in the wrong directory. Note that you <i>can</i>
  -deploy without a <code>jboss.xml</code> file; the server will use defaults for
  -all its settings. In simple cases you may get away with this. <br>
  -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If everything has gone according to plan,
  -you should now have a Bean deployed on the server. We will now create a simple
  -test client that runs one of its methods, just to prove that it's working.
  -<p>&nbsp;</p>
  -<p>
  -<TABLE ALIGN="CENTER" BORDER=1 CELLSPACING=0 CELLPADDING=4>
  -  <tr> 
  -    <td>
  -      <p align=center><a href=jboss_win32_3.html >
  -        BACK: Step 3: the deployment descriptor </a></p>
  -    </td>
  -    <td>
  -      <p align=center><a href=jboss_win32_trail_index.html > contents </a></p>
  -    </td>
  -    <td>
  -      <p align=center><a href=jboss_win32_5.html>
  -        FORWARD: Step 5: coding the test client </a></p>
  -    </td>
  -  </tr>
  -</table>
  -
  +file:c:\Program Files\jboss2\deploy\interest.jar</pre>
  +     <p>then no Beans have been deployed -- the server always reports the Beans 
that it detects. This usually means that the deployment descriptor 
<code>ejb-jar.xml</code> is badly structured, or missing, or in the wrong directory. 
Note that the server doesn't need to have the CLASSPATH&nbsp;set with your classes it 
is done automatically from the deploy directory.<br>
  +     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If everything has gone according to plan, 
you should now have a Bean deployed on the server. We will now create a simple test 
client that runs one of its methods, just to prove that it's working.</p>
  +     <p>&nbsp;</p>
  +     <p>
  +     <table align="CENTER" border="1" cellspacing="0" cellpadding="4">
  +             <tr>
  +                     <td>
  +                             <center>
  +                                     <a href="jboss_win32_3.html">BACK: Step 3: the 
deployment descriptor </a></center>
  +                     </td>
  +                     <td>
  +                             <center>
  +                                     <a 
href="jboss_win32_trail_index.html">contents </a></center>
  +                     </td>
  +                     <td>
  +                             <center>
  +                                     <a href="jboss_win32_5.html">FORWARD: Step 5: 
coding the test client </a></center>
  +                     </td>
  +             </tr>
  +     </table>
   </html>
  
  
  
  1.2       +90 -174   jbossweb/jboss_win32_3.html
  
  Index: jboss_win32_3.html
  ===================================================================
  RCS file: /products/cvs/ejboss/jbossweb/jboss_win32_3.html,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- jboss_win32_3.html        2000/08/29 23:12:34     1.1
  +++ jboss_win32_3.html        2000/09/01 23:53:45     1.2
  @@ -1,46 +1,38 @@
   <html>
  -<head>
  -<title>
  -Step 3: the deployment descriptor
  -</title>
   
  +     <head>
  +             <meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
  +             <meta name="generator" content="Adobe GoLive 4">
  +             <title>Step 3: the deployment descriptor</title>
  +     </head>
   
  -</head>
  -
  -<p><font face=arial,helvetica size=+3 color="#ffcc00"> Step 3: the deployment 
descriptor 
  -  </font> </p>
  -<p>&nbsp; <font face=arial,helvetica size=+2>Beginning EJB programming using 
jBoss</font> 
  -</p>
  -<TABLE ALIGN="CENTER" BORDER=1 CELLSPACING=0 CELLPADDING=4>
  -  <tr> 
  -    <td>
  -      <p align=center><a href=jboss_win32_2.html> 
  -        BACK: Step 2: creating the Bean </a></p>
  -    </td>
  -    <td>
  -      <p align=center><a href=jboss_win32_trail_index.html> contents </a></p>
  -    </td>
  -    <td>
  -      <p align=center><a href=jboss_win32_4.html> 
  -        FORWARD: Step 4: packaging and deploying the Bean </a></p>
  -    </td>
  -  </tr>
  -</table>
  -<p> 
  -<p> Now it's time to create
  -the deployment descriptor. As a reminder, this file 
  -  tells the EJB server which classes form the Bean, the home interface and the 
  -  remote interface. If there is more than one Bean in the package, it indicates 
  -  also how the Beans interact with one another. In this simple example, there 
  -  is only one Bean so we won't need to worry about that part. <br>
  -  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Most commercial EJB servers are supplied 
  -  with graphical tools for constructing the deployment descriptor. jBoss does 
  -  have an XML editor, but it's just as easy to construct the deployment descriptor 
  -  manually. Here it is: 
  -<p> <b>ejb-jar.xml: deployment descriptor for the Interest Bean</b><br>
  -<hr>
  -<TABLE BORDER=0 BGCOLOR="#80FF80" CELLSPACING=4><TR><TD><PRE>
  -&lt;?xml version="1.0" encoding="Cp1252"?&gt;
  +     <font face="arial,helvetica" size="6" color="#ffcc00">Step 3: the deployment 
descriptor </font>
  +     <p>&nbsp; <font face="arial,helvetica" size="5">Beginning EJB programming 
using jBoss</font></p>
  +     <p>
  +     <table align="CENTER" border="1" cellspacing="0" cellpadding="4">
  +             <tr>
  +                     <td>
  +                             <center>
  +                                     <a href="jboss_win32_2.html">BACK: Step 2: 
creating the Bean </a></center>
  +                     </td>
  +                     <td>
  +                             <center>
  +                                     <a 
href="jboss_win32_trail_index.html">contents </a></center>
  +                     </td>
  +                     <td>
  +                             <center>
  +                                     <a href="jboss_win32_4.html">FORWARD: Step 4: 
packaging and deploying the Bean </a></center>
  +                     </td>
  +             </tr>
  +     </table>
  +     <p>Now it's time to create the deployment descriptor. As a reminder, this file 
tells the EJB server which classes form the Bean, the home interface and the remote 
interface. If there is more than one Bean in the package, it indicates also how the 
Beans interact with one another. In this simple example, there is only one Bean so we 
won't need to worry about that part.<br>
  +     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Most commercial EJB servers are supplied 
with graphical tools for constructing the deployment descriptor. jBoss does have an 
XML editor, but it's just as easy to construct the deployment descriptor manually. 
Here it is:</p>
  +     <p><b>ejb-jar.xml: deployment descriptor for the Interest Bean</b><br>
  +     <hr>
  +     <table border="0" bgcolor="#80ff80" cellspacing="4">
  +             <tr>
  +                     <td>
  +                             <pre>&lt;?xml version=&quot;1.0&quot; 
encoding=&quot;Cp1252&quot;?&gt;
     &lt;ejb-jar&gt;
        &lt;description&gt;jBoss test application&lt;/description&gt;
        &lt;display-name&gt;Test&lt;/display-name&gt;
  @@ -54,145 +46,69 @@
         &lt;transaction-type&gt;Bean&lt;/transaction-type&gt;
          &lt;/session&gt;
        &lt;/enterprise-beans&gt;
  -   &lt;/ejb-jar&gt;
  -</PRE></TD></TR></TABLE>
  -<hr>
  -The deployment descriptor must be called <code>ejb-jar.xml</code> and it must 
  -be in the directory <code>.\META-INF</code>. A common mistake is to name this 
  -directory `META_INF' (with an underscore, rather than a dash), which won't work. 
  -<br>
  -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; In principle what we deploy on the server 
  -is an application, not a Bean. In this example our application consists of exactly 
  -one Bean, so it comes to the same thing. In the deployment descriptor, the section 
  -<pre>
  -&lt;ejb-name&gt;Interest&lt;/ejb-name&gt;
  -</pre>
  -assigns a name to the Bean; in practice client applications won't use this name, 
  -they will use the Bean's JNDI name, which is assigned in a different file. The 
  -JNDI name will often be in the form `[application name]/[bean name]', which is 
  -what we shall use later. <br>
  -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Although the deployment
  -descriptor format
  - 
  -is common to all EJB servers, it doesn't provide all the information that the 
  -server needs to deploy the bean. Specifically it does not know how to map package 
  -names to JNDI names. The server may also need to be told how to manage persistence 
  -and state. There is, as yet, no standard way of specifying these things, and every 
  -server implementation does it differently. There isn't even a standard <i>name</i> 
  -for this procedure. The approach taken by jBoss is that the Bean package should 
  -provide an additional XML file, called <code>jboss.xml</code> in the same directory 
  -as the deployment descriptor. The format of <code>jboss.xml</code> is largely 
  -undocumented, but it's straightforward. The first part of the file lists the Beans 
  -and their JNDI names, and refers to configuration sections in the second part 
  -of the file. It should only be necessary to edit the first part. In the listings 
  -below I have divided the <code>jboss.xml</code> file into two parts to make the 
  -distinction clear; of course you need both these parts in the same file in 
practice. 
  -<p> <b>jboss.xml: first part (this bit provided by the Bean developer)</b><br>
  -<hr>
  -<TABLE BORDER=0 BGCOLOR="#80FF80" CELLSPACING=4><TR><TD><PRE>
  -&lt;jboss&gt;
  +   &lt;/ejb-jar&gt;</pre>
  +                     </td>
  +             </tr>
  +     </table>
  +     <hr>
  +     The deployment descriptor must be called <code>ejb-jar.xml</code> and it must 
be in the directory <code>.\META-INF</code>. A common mistake is to name this 
directory `META_INF' (with an underscore, rather than a dash), which won't work.<br>
  +     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; In principle what we deploy on the server 
is an application, not a Bean. In this example our application consists of exactly one 
Bean, so it comes to the same thing. In the deployment descriptor, the section</p>
  +     <pre>&lt;ejb-name&gt;Interest&lt;/ejb-name&gt;</pre>
  +     <p>assigns a name to the Bean.  jboss in its standard configuration will put 
the bean's home interface under the ejb-name moniker if you don't specify anything 
else.  In other words, when your applications want to access the bean through it's 
home jboss will put it in JNDI&nbsp;under the ejb-name.  </p>
  +     <p>In practice client applications are not forced to use this name.  Typically 
a developer will not bother with specifying a different name for the 
JNDI&nbsp;namespace.   However a production installation of a complete application 
comprising many beans, will usually use a different name than the one specified by the 
developer.   Typically it could use `[application name]/[bean name]', which is what we 
shall use later.<br>
  +     </p>
  +     <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Although the deployment descriptor 
format of the ejb-jar.xml file is common to all EJB servers, and precisely defined in 
a DTD you can get from SUN, it doesn't specify some advanced stuff. Specifically it 
does not know how to map ejb-name to a deployment JNDI&nbsp;such as the one we just 
talked about.  It also doesn't know how to map resources. The server may also need to 
be told how to manage persistence and state. There is, as yet, no standard way of 
specifying these things, and every server implementation does it differently. </p>
  +     <p>The approach taken by jBoss is it provides a standard behaviour that works 
mostly from the ejb-jar.xml file.  There is no need for additional information in most 
cases.  In case of advanced configurations we define the jboss.xml file that gives all 
the relevant information to the container, such as JNDI mapping names, persistence 
information, database mapping and advanced container configuration (interceptors and 
plugins), please refer to the chapter on jboss.xml for detailed information of what it 
can do, we will cover simple things here. <br>
  +     </p>
  +     <p>The standard behaviour of jboss is capable of working from ejb-jar.xml in 
95% of cases and needs jboss.xml only if you need to specify specific deployment 
information.  </p>
  +     <p>An additional feature of the new metadata is that it works 
&quot;differentially&quot;.  In clear what this means is that if you wish to override 
the name of a bean you need to only specify that part of xml tags in the jboss.xml 
file.</p>
  +     <p></p>
  +     <p><b>Using the ejb-name from ejb-jar.xml</b></p>
  +     <p>for most development purposes, as soon as you provide a ejb-jar.xml with 
the beans the container will get the ejb-name as the JNDI&nbsp;name as standard 
behaviour. &nbsp;This makes your development life easier.</p>
  +     <p>If you don't provide a jboss.xml file you will find your bean under the 
name &quot;Interest&quot;.</p>
  +     <p><b>Overriding ejb-name with a real JNDI name in jboss.xml</b></p>
  +     <p>If in deployment you would rather use the &quot;myApp/myBean&quot; naming 
pattern you need to provide the following text in jboss.xml.  </p>
  +     <p><b>jboss.xml:  (Optional, this bit provided by the Bean deployer)</b><br>
  +     <hr>
  +     <table border="0" bgcolor="#80ff80" cellspacing="4">
  +             <tr>
  +                     <td>
  +                             <pre>&lt;jboss&gt;
     &lt;enterprise-beans&gt;
       &lt;session&gt;
         &lt;ejb-name&gt;Interest&lt;/ejb-name&gt;
         &lt;jndi-name&gt;interest/Interest&lt;/jndi-name&gt;
  -      &lt;configuration-name&gt;Default Stateless 
SessionBean&lt;/configuration-name&gt;
       &lt;/session&gt;
       &lt;secure&gt;false&lt;/secure&gt;
  -  &lt;/enterprise-beans&gt;
  -</PRE></TD></TR></TABLE>
  -<hr>
  -<p> All this file says is that the Bean called <code>Interest</code> is assigned 
  -  the JNDI name of <code>interest/Interest</code> and has the server configuration 
  -  <code>Default Stateless SessionBean</code>. This configuration refers to a 
section 
  -  in the second part of the file. I don't know in detail what this section does, 
  -  and I don't particularly want to! Here it is, anyway: 
  -<p> <b>jboss.xml: second part (this bit should not need to be edited)</b><br>
  -<hr>
  -<TABLE BORDER=0 BGCOLOR="#80FF80" CELLSPACING=4><TR><TD><PRE>
  -  &lt;resource-managers /&gt;
  -  &lt;container-configurations&gt;
  -    &lt;container-configuration 
configuration-class="org.jboss.ejb.deployment.EntityContainerConfiguration"&gt;
  -      &lt;container-name&gt;BMP EntityBean&lt;/container-name&gt;
  -      
&lt;container-invoker&gt;org.jboss.ejb.plugins.jrmp13.server.JRMPContainerInvoker&lt;/container-invoker&gt;
  -      
&lt;instance-pool&gt;org.jboss.ejb.plugins.EntityInstancePool&lt;/instance-pool&gt;
  -      
&lt;instance-cache&gt;org.jboss.ejb.plugins.NoPassivationEntityInstanceCache&lt;/instance-cache&gt;
  -      
&lt;persistence-manager&gt;org.jboss.ejb.plugins.BMPPersistenceManager&lt;/persistence-manager&gt;
  -      &lt;transaction-manager&gt;org.jboss.tm.TxManager&lt;/transaction-manager&gt;
  -      &lt;container-invoker-conf&gt;
  -        &lt;Optimized&gt;False&lt;/Optimized&gt;
  -      &lt;/container-invoker-conf&gt;
  -      &lt;container-cache-conf /&gt;
  -      &lt;container-pool-conf&gt;
  -        &lt;MaximumSize&gt;100&lt;/MaximumSize&gt;
  -        &lt;MinimumSize&gt;10&lt;/MinimumSize&gt;
  -      &lt;/container-pool-conf&gt;
  -       &lt;/container-configuration&gt;
  -       &lt;container-configuration 
configuration-class="org.jboss.ejb.deployment.StatelessSessionContainerConfiguration"&gt;
  -      &lt;container-name&gt;Singleton Stateless SessionBean&lt;/container-name&gt;
  -      
&lt;container-invoker&gt;org.jboss.ejb.plugins.jrmp13.server.JRMPContainerInvoker&lt;/container-invoker&gt;
  -      
&lt;instance-pool&gt;org.jboss.ejb.plugins.SingletonStatelessSessionInstancePool&lt;/instance-pool&gt;
  -      &lt;instance-cache&gt;&lt;/instance-cache&gt;
  -      &lt;persistence-manager&gt;&lt;/persistence-manager&gt;
  -      &lt;transaction-manager&gt;org.jboss.tm.TxManager&lt;/transaction-manager&gt;
  -      &lt;container-invoker-conf&gt;
  -        &lt;Optimized&gt;False&lt;/Optimized&gt;
  -      &lt;/container-invoker-conf&gt;
  -       &lt;/container-configuration&gt;
  -       &lt;container-configuration 
configuration-class="org.jboss.ejb.deployment.EntityContainerConfiguration"&gt;
  -      &lt;container-name&gt;CMP EntityBean&lt;/container-name&gt;
  -      
&lt;container-invoker&gt;org.jboss.ejb.plugins.jrmp13.server.JRMPContainerInvoker&lt;/container-invoker&gt;
  -      
&lt;instance-pool&gt;org.jboss.ejb.plugins.EntityInstancePool&lt;/instance-pool&gt;
  -      
&lt;instance-cache&gt;org.jboss.ejb.plugins.NoPassivationEntityInstanceCache&lt;/instance-cache&gt;
  -      
&lt;persistence-manager&gt;org.jboss.ejb.plugins.jaws.JAWSPersistenceManager&lt;/persistence-manager&gt;
  -      &lt;transaction-manager&gt;org.jboss.tm.TxManager&lt;/transaction-manager&gt;
  -      &lt;container-invoker-conf&gt;
  -        &lt;Optimized&gt;False&lt;/Optimized&gt;
  -      &lt;/container-invoker-conf&gt;
  -      &lt;container-cache-conf /&gt;
  -      &lt;container-pool-conf&gt;
  -        &lt;MaximumSize&gt;100&lt;/MaximumSize&gt;
  -        &lt;MinimumSize&gt;10&lt;/MinimumSize&gt;
  -      &lt;/container-pool-conf&gt;
  -       &lt;/container-configuration&gt;
  -       &lt;container-configuration 
configuration-class="org.jboss.ejb.deployment.StatelessSessionContainerConfiguration"&gt;
  -      &lt;container-name&gt;Default Stateless SessionBean&lt;/container-name&gt;
  -      
&lt;container-invoker&gt;org.jboss.ejb.plugins.jrmp13.server.JRMPContainerInvoker&lt;/container-invoker&gt;
  -      
&lt;instance-pool&gt;org.jboss.ejb.plugins.StatelessSessionInstancePool&lt;/instance-pool&gt;
  -      &lt;instance-cache&gt;&lt;/instance-cache&gt;
  -      &lt;persistence-manager&gt;&lt;/persistence-manager&gt;
  -      &lt;transaction-manager&gt;org.jboss.tm.TxManager&lt;/transaction-manager&gt;
  -      &lt;container-invoker-conf&gt;
  -        &lt;Optimized&gt;False&lt;/Optimized&gt;
  -      &lt;/container-invoker-conf&gt;
  -      &lt;container-pool-conf&gt;
  -        &lt;MaximumSize&gt;100&lt;/MaximumSize&gt;
  -        &lt;MinimumSize&gt;10&lt;/MinimumSize&gt;
  -      &lt;/container-pool-conf&gt;
  -       &lt;/container-configuration&gt;
  -     &lt;/container-configurations&gt;
  -   &lt;/jboss&gt;
  -</PRE></TD></TR></TABLE>
  -<hr>
  -<p> <br>
  -  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; So now we've got the deployment descriptor 
  -  <code>ejb-jar.xml</code>, the run-time configuration file <code>jboss.xml</code> 
  -  and the classes. It's time to package them together. 
  -<p>&nbsp; </p>
  -<TABLE ALIGN="CENTER" BORDER=1 CELLSPACING=0 CELLPADDING=4>
  -  <tr> 
  -    <td>
  -      <p align=center><a href=jboss_win32_2.html> 
  -        BACK: Step 2: creating the Bean </a></p>
  -    </td>
  -    <td>
  -      <p align=center><a href=jboss_win32_trail_index.html> contents </a></p>
  -    </td>
  -    <td>
  -      <p align=center><a href=jboss_win32_4.html> 
  -        FORWARD: Step 4: packaging and deploying the Bean </a></p>
  -    </td>
  -  </tr>
  -</table>
  +  &lt;/enterprise-beans&gt;</pre>
  +                     </td>
  +             </tr>
  +     </table>
  +     <hr>
  +     </p>
  +     <p>All this file says is that the Bean called <code>Interest</code> is 
assigned the JNDI name of <code>interest/Interest</code>.</p>
  +     <p>The indentation is just there for formatting and readability, it is non 
important.
  +     <hr>
  +     </p>
  +     <p><br>
  +     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; So now we've got the deployment 
descriptor <code>ejb-jar.xml</code>.  Again jboss will happily run just from that file 
and bind the object under &quot;Interest&quot; as standard JNDI&nbsp;name.  We also 
have the optional jboss.xml to provide another name &quot;interest/Interest&quot; to 
overwrite the standard behaviour with JNDI.  We also have the classes. It's time to 
package them together.</p>
  +     <p>&nbsp;
  +     <table align="CENTER" border="1" cellspacing="0" cellpadding="4">
  +             <tr>
  +                     <td>
  +                             <center>
  +                                     <a href="jboss_win32_2.html">BACK: Step 2: 
creating the Bean </a></center>
  +                     </td>
  +                     <td>
  +                             <center>
  +                                     <a 
href="jboss_win32_trail_index.html">contents </a></center>
  +                     </td>
  +                     <td>
  +                             <center>
  +                                     <a href="jboss_win32_4.html">FORWARD: Step 4: 
packaging and deploying the Bean </a></center>
  +                     </td>
  +             </tr>
  +     </table>
  +     </body>
   
  -</body>
   </html>
  
  
  
  1.2       +110 -159  jbossweb/jboss_win32_2.html
  
  Index: jboss_win32_2.html
  ===================================================================
  RCS file: /products/cvs/ejboss/jbossweb/jboss_win32_2.html,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- jboss_win32_2.html        2000/08/29 23:12:33     1.1
  +++ jboss_win32_2.html        2000/09/01 23:53:45     1.2
  @@ -1,122 +1,76 @@
   <html>
  -<head>
  -<title>
  -Step 2: creating the Bean
  -</title>
  -</head>
   
  -<p><font face=arial,helvetica size=+3 color="#ffcc00"> Step 2: creating the Bean 
  -  </font> </p>
  -<p>&nbsp; <font face=arial,helvetica size=+2>Beginning EJB programming using 
jBoss</font> 
  -</p>
  -<TABLE ALIGN="CENTER" BORDER=1 CELLSPACING=0 CELLPADDING=4>
  -  <tr> 
  -    <td>
  -      <p align=center><a href=jboss_win32_1.html> 
  -        BACK: Step 1: installing jBoss </a></p>
  -    </td>
  -    <td>
  -      <p align=center><a href=jboss_win32_trail_index.html> contents </a></p>
  -    </td>
  -    <td>
  -      <p align=center><a href=jboss_win32_3.html> 
  -        FORWARD: Step 3: the deployment descriptor </a></p>
  -    </td>
  -  </tr>
  -</table>
  -<p> 
  -<p> In this step we will write and compile a simple Enterprise JavaBean. You can 
  -  <a href="interestEJB.zip">download the source code</a> 
<code>interestEJB.zip</code> 
  -  for this example. (You can use <CODE>jar xf interestEJB.zip</CODE> to unzip the 
.zip file.) 
  -  The example 
  -  -- which is called `Interest' -- is about as simple as an EJB can get: it is 
  -  a `stateless session bean'. Its job is to calculate the amount of compound 
interest 
  -  payable on a sum of money borrowed over a specified term with a specified 
interest 
  -  rate. In fact, there is only one functional line of code in the whole package. 
  -  <br>
  -  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If you want to compile the classes yourself, 
  -  you'll need to create a directory hierarchy that reflects the structure of the 
  -  pacakage. The package in this example is <code>com.web_tomorrow.interest</code> 
  -  so you'll need to create the directory structure: 
  -<pre>
  -com
  +     <head>
  +             <meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
  +             <meta name="generator" content="Adobe GoLive 4">
  +             <title>Step 2: creating the Bean</title>
  +     </head>
  +
  +     <font face="arial,helvetica" size="6" color="#ffcc00">Step 2: creating the 
Bean </font>
  +     <p>&nbsp; <font face="arial,helvetica" size="5">Beginning EJB programming 
using jBoss</font></p>
  +     <p>
  +     <table align="CENTER" border="1" cellspacing="0" cellpadding="4">
  +             <tr>
  +                     <td>
  +                             <center>
  +                                     <a href="jboss_win32_1.html">BACK: Step 1: 
installing jBoss </a></center>
  +                     </td>
  +                     <td>
  +                             <center>
  +                                     <a 
href="jboss_win32_trail_index.html">contents </a></center>
  +                     </td>
  +                     <td>
  +                             <center>
  +                                     <a href="jboss_win32_3.html">FORWARD: Step 3: 
the deployment descriptor </a></center>
  +                     </td>
  +             </tr>
  +     </table>
  +     <p>In this step we will write and compile a simple Enterprise JavaBean. You 
can <a href="interestEJB.zip">download the source code</a> 
<code>interestEJB.zip</code> for this example. (You can use <code>jar xf 
interestEJB.zip</code> to unzip the .zip file.) The example -- which is called 
`Interest' -- is about as simple as an EJB can get: it is a `stateless session bean'. 
Its job is to calculate the amount of compound interest payable on a sum of money 
borrowed over a specified term with a specified interest rate. In fact, there is only 
one functional line of code in the whole package.<br>
  +     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If you want to compile the classes 
yourself, you'll need to create a directory hierarchy that reflects the structure of 
the pacakage. The package in this example is <code>com.web_tomorrow.interest</code> so 
you'll need to create the directory structure:</p>
  +     <pre>com
       web_tomorrow
           interest
  -            {java source and class files here}
  -</pre>
  -  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The commands in this tutorial are specific
  -to the jBoss installation path, so the complete structure will look like this:
  -<pre>
  -Program Files
  +            {java source and class files here}</pre>
  +     <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The commands in this tutorial are 
specific to the jBoss installation path, so the complete structure will look like this:
  +     <pre>Program Files
       jboss2
           examples
               interest
                   com
                       web_tomorrow
                           interest
  -                            {java source and class files here}
  -</pre>
  -
  -  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Create an <CODE>examples</CODE> folder under 
  -<CODE>c:\Program Files\jboss2\</CODE>,
  -then create an <CODE>interest</CODE> folder under <CODE>examples\</CODE>. Now 
  -change to <CODE>c:\Program Files\jboss2\examples\interest</CODE> and unzip the 
  -archive <code>interestEJB.tar.gz</code>. It will create this 
  -structure automatically. 
  -<p> <font face=helvetica,arial size=+2>EJBs: review</font> 
  -<p> As a reminder, and Enterprise JavaBean has a minimum of three classes. 
  -<ul>
  -  <li>The remote interface. This is the class that exposes the methods of the 
  -    Bean to the outside world. In the example, the remote interface is the class 
  -    <code>com.web_tomorrow.interest.Interest</code> 
  -  <li>The Bean class. This implements the methods specified by the remote 
interface. 
  -    In this example, the Bean class is 
<code>com.web_tomorrow.interest.InterestBean</code> 
  -  <li>The home interface. This specifies how a new Bean is created, managed and 
  -    deleted. As a minimum it should specify at least one <code>create()</code> 
  -    method. There should be an <code>ejbCreate()</code> method in the Bean class 
  -    for each <code>create()</code> method in the home interface. In this example, 
  -    the home interface is <code>com.web_tomorrow.InterestHome</code> 
  -</ul>
  -  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Of course, a Bean can include other classes, 
or even other packages, but the classes 
  -listed above are the minimum. The classes must be packaged into a JAR archive 
  -with a directory structure that reflects the hierarchy of packages. In the example, 
  -the classes are in the package <code>com.web_tomorrow.interest</code>, so they 
  -need to be in the directory<pre>
  -c:\Program Files\jboss2\examples\interest\com\web_tomorrow\interest\
  -</pre>
  -You 
  -will also need a directory called <code>META-INF</CODE> to store the deployment 
  -descriptor (always called <code>ejb-jar.xml</code>) and -- optionally -- another 
  -XML file to tell the server about name mappings. With jBoss, this file must be 
  -called <code>jboss.xml</code>. <br>
  -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; So before writing the classes, we need a 
  -directory structure like this: 
  -<pre>
  -com
  +                            {java source and class files here}</pre>
  +     <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Create an <code>examples</code> folder 
under <code>c:\Program Files\jboss2\</code>, then create an <code>interest</code> 
folder under <code>examples\</code>. Now change to <code>c:\Program 
Files\jboss2\examples\interest</code> and unzip the archive 
<code>interestEJB.tar.gz</code>. It will create this structure automatically.
  +     <p><font face="helvetica,arial" size="5">EJBs: review</font></p>
  +     <p>As a reminder, and Enterprise JavaBean has a minimum of three classes.</p>
  +     <ul>
  +             <li>The remote interface. This is the class that exposes the methods 
of the Bean to the outside world. In the example, the remote interface is the class 
<code>com.web_tomorrow.interest.Interest</code>
  +             <li>The Bean class. This implements the methods specified by the 
remote interface. In this example, the Bean class is 
<code>com.web_tomorrow.interest.InterestBean</code>
  +             <li>The home interface. This specifies how a new Bean is created, 
managed and deleted. As a minimum it should specify at least one <code>create()</code> 
method. There should be an <code>ejbCreate()</code> method in the Bean class for each 
<code>create()</code> method in the home interface. In this example, the home 
interface is <code>com.web_tomorrow.InterestHome</code>
  +     </ul>
  +     <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Of course, a Bean can include other 
classes, or even other packages, but the classes listed above are the minimum. The 
classes must be packaged into a JAR archive with a directory structure that reflects 
the hierarchy of packages. In the example, the classes are in the package 
<code>com.web_tomorrow.interest</code>, so they need to be in the directory
  +     <pre>c:\Program Files\jboss2\examples\interest\com\web_tomorrow\interest\</pre>
  +     <p>You will also need a directory called <code>META-INF</code> to store the 
deployment descriptor (always called <code>ejb-jar.xml</code>) and -- optionally -- 
another XML file to tell the server about name mappings. With jBoss, this file must be 
called <code>jboss.xml</code>.<br>
  +     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; So before writing the classes, we need a 
directory structure like this:
  +     <pre>com
       web_tomorrow
           interest
               {java source and class files here}
   
   META-INF
        ejb-jar.xml
  -     jboss.xml
  -
  +     jboss.xml (optional)
   </pre>
  -  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If the <code>jar</code> utility is run at 
the top level of this directory structure, 
  -it will put the files in the right ordering in the archive. We will discuss the 
  -creation of the XML files later. <br>
  -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (Of course, in your own work you will create 
  -a directory hierarchy that reflect the package hierarchy you need, rather than 
  -`com.web_tomorrow.XXXX' )
  -<p> <font face=helvetica,arial size=+2>Coding the classes</font> 
  -<p> We need three classes: the remote interface, the Bean, and the home interface. 
  -  All the .java files will go in the subdirectory 
<code>.\com\web_tomorrow\interest</code> 
  -  <br>
  -  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The remote interface in this example is 
  -  very simple. 
  -<p> <b>Interest.java: remote interface for the `interest' EJB</b> <br>
  -<TABLE BORDER=0 BGCOLOR="#80FF80" CELLSPACING=4><TR><TD><PRE>
  -package com.web_tomorrow.interest;
  +     <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If the <code>jar</code> utility is run 
at the top level of this directory structure, it will put the files in the right 
ordering in the archive. We will discuss the creation of the XML files later.<br>
  +     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (Of course, in your own work you will 
create a directory hierarchy that reflect the package hierarchy you need, rather than 
`com.web_tomorrow.XXXX' )
  +     <p><font face="helvetica,arial" size="5">Coding the classes</font></p>
  +     <p>We need three classes: the remote interface, the Bean, and the home 
interface. All the .java files will go in the subdirectory 
<code>.\com\web_tomorrow\interest</code><br>
  +     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The remote interface in this example is 
very simple.</p>
  +     <p><b>Interest.java: remote interface for the `interest' EJB</b><br>
  +     <table border="0" bgcolor="#80ff80" cellspacing="4">
  +             <tr>
  +                     <td>
  +                             <pre>package com.web_tomorrow.interest;
   import javax.ejb.EJBObject;
   import java.rmi.RemoteException;
   
  @@ -137,16 +91,19 @@
   */
   public double calculateCompoundInterest(double principle, 
     double rate, double periods) throws RemoteException;
  -}
  -</PRE></TD></TR></TABLE>
  -<hr>
  -The remote interface specifies only one `business method' 
<code>calculateCompoundInterest</code>. 
  -<br>
  -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The home interface is even simpler. 
  -<p> <b>Interest.java: remote interface for the `interest' EJB</b> <br>
  -<hr>
  -<TABLE BORDER=0 BGCOLOR="#80FF80" CELLSPACING=4><TR><TD><PRE>
  -package com.web_tomorrow.interest;
  +}</pre>
  +                     </td>
  +             </tr>
  +     </table>
  +     <hr>
  +     The remote interface specifies only one `business method' 
<code>calculateCompoundInterest</code>.<br>
  +     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The home interface is even simpler.</p>
  +     <p><b>Interest.java: remote interface for the `interest' EJB</b><br>
  +     <hr>
  +     <table border="0" bgcolor="#80ff80" cellspacing="4">
  +             <tr>
  +                     <td>
  +                             <pre>package com.web_tomorrow.interest;
   import java.io.Serializable;
   import java.rmi.RemoteException;
   import javax.ejb.CreateException;
  @@ -164,15 +121,18 @@
     Interest create()
       throws RemoteException, CreateException;
   }
  -
  -</PRE></TD></TR></TABLE>
  -<hr>
  -Finally, here is the Bean class. This is the only one that does any real work 
  -in this simple example. 
  -<p> <b>Interest.java: remote interface for the `interest' EJB</b> <br>
  -<hr>
  -<TABLE BORDER=0 BGCOLOR="#80FF80" CELLSPACING=4><TR><TD><PRE>
  -package com.web_tomorrow.interest;
  +</pre>
  +                     </td>
  +             </tr>
  +     </table>
  +     <hr>
  +     Finally, here is the Bean class. This is the only one that does any real work 
in this simple example.</p>
  +     <p><b>Interest.java: remote interface for the `interest' EJB</b><br>
  +     <hr>
  +     <table border="0" bgcolor="#80ff80" cellspacing="4">
  +             <tr>
  +                     <td>
  +                             <pre>package com.web_tomorrow.interest;
   import java.rmi.RemoteException; 
   import javax.ejb.SessionBean;
   import javax.ejb.SessionContext;
  @@ -194,7 +154,7 @@
     */
     public double calculateCompoundInterest(double principle, 
       double rate, double periods) {
  -    System.out.println ("Someone called `calculateCompoundInterest!'");
  +    System.out.println (&quot;Someone called `calculateCompoundInterest!'&quot;);
       return principle * Math.pow(1+rate, periods) - principle;
     }
   
  @@ -222,41 +182,32 @@
     Empty method body
     */
     public void setSessionContext(SessionContext sc) {}
  -} 
  -</PRE></TD></TR></TABLE>
  -<hr>
  -Notice that most of the methods are empty; they have to exist because they're 
  -specified by the SessionBean interface, but they don't need to do anything in 
  -this case. <br>
  -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If you haven't already done so, you should 
  -create these .java files in the directory <code>.\com\web_tomorrow\interest</code> 
  -(or unpack the archive with them in). Then you can compile them using the 
commands<pre>
  -cd "\Program Files\jboss2\examples\interest"
  -javac -classpath ..\..\lib\ext\ejb.jar com\web_tomorrow\interest\*.java
  -</pre>
  -(Naturally, you should the correct path if you haven't installed 
  -jBoss in <code>c:\Program Files\jboss2</code>.) This should create three class 
files: 
  -<code>InterestBean.class</code>, 
  -<code>Interest.class</code>, and <code>InterestHome.class</code>. If you have 
  -`make' on your system, and you have unpacked the archive, you can build all the 
  -classes just be running <code>make</code> in the same directory as the Makefile. 
  -<br>
  -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; With the classes compiled, it's time to create 
  -the deployment descriptor. 
  -<p> 
  -<TABLE ALIGN="CENTER" BORDER=1 CELLSPACING=0 CELLPADDING=4>
  -  <tr> 
  -    <td>
  -      <p align=center><a href=jboss_win32_1.html> 
  -        BACK: Step 1: installing jBoss </a></p>
  -    </td>
  -    <td>
  -      <p align=center><a href=jboss_win32_trail_index.html> contents </a></p>
  -    </td>
  -    <td>
  -      <p align=center><a href=jboss_win32_3.html> 
  -        FORWARD: Step 3: the deployment descriptor </a></p>
  -    </td>
  -  </tr>
  -</table>
  +} </pre>
  +                     </td>
  +             </tr>
  +     </table>
  +     <hr>
  +     Notice that most of the methods are empty; they have to exist because they're 
specified by the SessionBean interface, but they don't need to do anything in this 
case.<br>
  +     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If you haven't already done so, you 
should create these .java files in the directory 
<code>.\com\web_tomorrow\interest</code> (or unpack the archive with them in). Then 
you can compile them using the commands</p>
  +     <pre>cd &quot;\Program Files\jboss2\examples\interest&quot;
  +javac -classpath ..\..\lib\ext\ejb.jar com\web_tomorrow\interest\*.java</pre>
  +     <p>(Naturally, you should the correct path if you haven't installed jBoss in 
<code>c:\Program Files\jboss2</code>.) This should create three class files: 
<code>InterestBean.class</code>, <code>Interest.class</code>, and 
<code>InterestHome.class</code>. If you have `make' on your system, and you have 
unpacked the archive, you can build all the classes just be running <code>make</code> 
in the same directory as the Makefile.<br>
  +     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; With the classes compiled, it's time to 
create the deployment descriptor.
  +     <p>
  +     <table align="CENTER" border="1" cellspacing="0" cellpadding="4">
  +             <tr>
  +                     <td>
  +                             <center>
  +                                     <a href="jboss_win32_1.html">BACK: Step 1: 
installing jBoss </a></center>
  +                     </td>
  +                     <td>
  +                             <center>
  +                                     <a 
href="jboss_win32_trail_index.html">contents </a></center>
  +                     </td>
  +                     <td>
  +                             <center>
  +                                     <a href="jboss_win32_3.html">FORWARD: Step 3: 
the deployment descriptor </a></center>
  +                     </td>
  +             </tr>
  +     </table>
   </html>
  
  
  
  1.2       +83 -145   jbossweb/jboss_win32_1.html
  
  Index: jboss_win32_1.html
  ===================================================================
  RCS file: /products/cvs/ejboss/jbossweb/jboss_win32_1.html,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- jboss_win32_1.html        2000/08/29 23:12:33     1.1
  +++ jboss_win32_1.html        2000/09/01 23:53:45     1.2
  @@ -1,148 +1,86 @@
   <html>
  -<head>
  -<title>
  -Step 1: installing jBoss
  -</title>
   
  -</head>
  -
  -<p><font face=arial,helvetica size=+3 color="#ffcc00"> Step 1: installing jBoss 
</font> </p>
  -<p>&nbsp;<font face=arial,helvetica size=+2>Beginning EJB programming using 
jBoss</font> </p>
  -
  -<TABLE ALIGN="CENTER" BORDER=1 CELLSPACING=0 CELLPADDING=4>
  -  <tr> 
  -    <td>
  -      <p align=center><a href="jboss_win32_trail_index.html"> contents </a></p>
  -    </td>
  -    <td>
  -      <p align=center><a href=jboss_win32_2.html> 
  -        FORWARD: Step 2: creating the Bean </a></p>
  -    </td>
  -  </tr>
  -</table>
  -<p>
  -<p> Before installing and running the server, you should check that your 
  -<A HREF="http://java.sun.com/">JDK installation</A> is working. 
  -It is important that you use JDK1.3 for your 
  -Java installation as many functions of jBoss 2.0 depend on functionality 
  -that is only present in JDK1.3. You won't need to specify a CLASSPATH 
  -  environment variable if you don't normally have to. <br>
  -
  -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; You will <i>need</i> 
  -  the JDK binaries directory in your PATH (this is essential: see below) not just 
  -  for the user account which is doing the installation, but also for the user 
  -  account that will run the server. <br>
  -
  -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If you are running the server on Windows NT as 
Administrator, you 
  -  should check that the JDK binaries are in the PATH even for Administrator. 
(Administrator and ordinary 
  -  users normally have different PATH settings. 
  -  <CODE>Start | Settings | Control Panel | System | Environment tab | Path 
variable</CODE>. 
  -  In the Value field, put <CODE>c:\jdk1.3\bin;</CODE> in front. Click Set. Click 
OK.)  <P>
  -
  -Now you can download, install and test the jBoss 
  -server. At the time of writing the most recent version of jBoss is 2.0. You can get 
jBoss 
  -  from <a href=http://www.jboss.org/>www.jboss.org</a>. <br>
  -
  -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; jBoss is 
  -  <A HREF="http://jboss.org/jBoss2/install.htm">distributed using Install 
Anywhere</A>
  -  which is a signed Java applet that works pretty well on Windows.
  -By default Install Anywhere will put jBoss in <code><a href="file:///c:/Program 
Files/jboss2">c:\Program Files\jboss2</a></code>. 
  -(This may not be a good place if you're using Windows 95 because of the
  -space in the path name. Try <CODE><a href="file:///c:/jboss">c:\jboss</a></CODE> 
instead.)<br>
  -
  -  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; On a Windows NT system, you will not need 
Administrator 
  -  priviledges. Although Install Anywhere may malfunction (you'll need to use "Other 
Java-enabled Platforms" 
  -  instead) jBoss will work perfectly well if installed in a user directory and run 
as an 
  -  ordinary user. 
  -  I will assume in this tutorial that you are installing in <code>c:\Program 
Files\jboss2</code>. 
  -  If you haven't, change the paths as appropriate. <P>
  -
  -You could try running the server now. You can 
  -either run the program from the menu like <CODE>Start | Programs | jboss2 | 
Server_jboss2</CODE> or change 
  -to the <code>bin</code> directory (note the quotation marks) and run 
  -<pre>
  -cd "c:\Program Files\jboss2\bin"
  -java -jar run.jar
  -</pre>
  -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The server should 
  -start without any error messages or exceptions being thrown. It will produce about 
  -three pages of output on startup. 
  -<br>
  -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The jBoss distribution is supplied with one 
  -test Bean, packaged as <code>bank.jar</code> in the `deploy' 
  -subdirectory, which is where Beans are placed to deploy them. The effect of this 
  -is to deploy the `bank' bean when the server starts up. This is fine the first 
  -time, as it tests that the SQL server is working, but you can usefully move 
<code>bank.jar</code> 
  -out of the <code>deploy</code> directory when you are sure that everything's OK, 
  -and the server will start up more quickly.<BR>
  -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; On Windows networks it can be useful to 
  -share this 'deploy' directory 
  -so that others may simply drag and drop the .jar files containing beans into the 
  -container for deployment.</p>
  -
  -<TABLE BORDER=1 CELLSPACING=0 CELLPADDING=5 BGCOLOR="#FFFF80">
  -  <TR VALIGN="TOP">
  -    <TH>Error Message</TH>
  -    <TH>Corrective Action</TH>
  -  </TR>
  -
  -  <TR VALIGN="TOP">
  -    <TD>Bad command or file name</TD>
  -    <TD>The JDK binaries aren't in the PATH. Check your PATH environment variable. 
On Windows 95 and 98, you may need to edit <CODE>C:\AUTOEXEC.BAT</CODE> and restart 
your computer.</TD>
  -  </TR>
  -
  -  <TR VALIGN="TOP">
  -    <TD>[AutoDeploy] 
  -...NoClassDefFound: java/lang/reflect/InvocationHandler...</TD>
  -    <TD>You are using a version of JDK that is too old. The class 
<CODE>java.lang.reflect.InvocationHandler</CODE> 
  -was new in version 1.3. On Windows 95 and 98, if you've just installed JDK 1.3, you 
may need to edit the PATH environment variable in <CODE>C:\AUTOEXEC.BAT</CODE> and 
restart your computer.</TD>
  -  </TR>
  -
  -  <TR VALIGN="TOP">
  -    <TD>[hypersonic] System.run/init: database is in use by a different process</TD>
  -    <TD>The JDK binaries aren't in the PATH. If you get this message, the SQL 
server hasn't started, and there will be a whole heap of other errors later. Check 
your PATH environment variable. On Windows 95 and 98, you may need to edit 
<CODE>C:\AUTOEXEC.BAT</CODE> and restart your computer.</TD>
  -  </TR>
  -
  -  <TR VALIGN="TOP">
  -    <TD>Failed to load Main-Class manifest attribute from<BR>
  -      run.jar</TD>
  -    <TD>You're not in the right directory and Java can't find file run.jar. Try 
this:<PRE>
  -cd "c:\Program Files\jboss2\bin"
  -java -jar run.jar
  -</PRE></TD>
  -  </TR>
  -
  -  <TR VALIGN="TOP">
  -    <TD>[Webserver] java.net.UnknownHostException:...</TD>
  -    <TD>The jBoss server tries to establish its host's IP number when it starts up. 
If it can't do this, you will see this error message. This problem is quite common on 
systems that get their network configuration parameters dynamically. For example, if 
your computer connects to the Internet by a dial-up connection, and you cancel the 
dial-up process, you may end up with a hostname that doesn't make sense. Re-establish 
your Internet connection.</TD>
  -  </TR>
  -
  -  <TR VALIGN="TOP">
  -    <TD>[Webserver] java.net.BindException: Address already in use</TD>
  -    <TD>This probably means you already have jBoss running and you're trying to 
start it a second time. CTL-ALT-DEL and use End Task to stop any current instances of 
jBoss, then restart jBoss.</TD>
  -  </TR>
  -
  -  <TR VALIGN="TOP">
  -    <TD>[Container factory] No configuration chosen. Using default 
configuration</TD>
  -    <TD>No corrective action necessary. This means that a particular EJB did not 
have a jboss.xml file in its META-INF directory (which is inside the EJB's .jar file 
in the deploy/ directory). This isn't a real problem; jBoss will just use its default 
configuration. <!--If you want to change the configuration, see <A 
HREF="#somewhere_else">the section on jboss.xml.--></A></TD>
  -  </TR>
  -
  -</TABLE>
  -
  -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; When you're happy that the server is running 
  -correctly, go on to the next step. 
  -<p>&nbsp;</p>
  -
  -<TABLE ALIGN="CENTER" BORDER=1 CELLSPACING=0 CELLPADDING=4>
  -  <tr> 
  -    <td>
  -      <p align=center><a href=jboss_linux_win32_index.html> contents </a></p>
  -    </td>
  -    <td>
  -      <p align=center><a href=jboss_win32_2.html> 
  -        FORWARD: Step 2: creating the Bean </a></p>
  -    </td>
  -  </tr>
  -</table>
  -
  +     <head>
  +             <meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
  +             <meta name="generator" content="Adobe GoLive 4">
  +             <title>Step 1: installing jBoss</title>
  +     </head>
  +
  +     <font face="arial,helvetica" size="6" color="#ffcc00">Step 1: installing jBoss 
</font>
  +     <p>&nbsp;<font face="arial,helvetica" size="5">Beginning EJB programming using 
jBoss</font></p>
  +     <p>
  +     <table align="CENTER" border="1" cellspacing="0" cellpadding="4">
  +             <tr>
  +                     <td>
  +                             <center>
  +                                     <a 
href="jboss_win32_trail_index.html">contents </a></center>
  +                     </td>
  +                     <td>
  +                             <center>
  +                                     <a href="jboss_win32_2.html">FORWARD: Step 2: 
creating the Bean </a></center>
  +                     </td>
  +             </tr>
  +     </table>
  +     <p>Before installing and running the server, you should check that your <a 
href="http://java.sun.com/">JDK installation</a> is working. It is important that you 
use JDK1.3 for your Java installation as many functions of jBoss 2.0 depend on 
functionality that is only present in JDK1.3. You won't need to specify a CLASSPATH 
environment variable if you don't normally have to.<br>
  +     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; You will <i>need</i> the JDK binaries 
directory in your PATH (this is essential: see below) not just for the user account 
which is doing the installation, but also for the user account that will run the 
server.<br>
  +     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If you are running the server on Windows 
NT as Administrator, you should check that the JDK binaries are in the PATH even for 
Administrator. (Administrator and ordinary users normally have different PATH 
settings. <code>Start | Settings | Control Panel | System | Environment tab | Path 
variable</code>. In the Value field, put <code>c:\jdk1.3\bin;</code> in front. Click 
Set. Click OK.)</p>
  +     <p>Now you can download, install and test the jBoss server. At the time of 
writing the most recent version of jBoss is 2.0. You can get jBoss from <a 
href="http://www.jboss.org/">www.jboss.org</a>.<br>
  +     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; jBoss is <a 
href="http://jboss.org/jBoss2/install.htm">distributed using Install Anywhere</a> 
which is a signed Java applet that works pretty well on Windows. By default Install 
Anywhere will put jBoss in <a href="file:///c:/Program Files/jboss2"><code>c:\Program 
Files\jboss2</code></a>. (This may not be a good place if you're using Windows 95 
because of the space in the path name. Try <a 
href="file:///c:/jboss"><code>c:\jboss</code></a> instead.)<br>
  +     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; On a Windows NT system, you will not need 
Administrator priviledges. Although Install Anywhere may malfunction (you'll need to 
use &quot;Other Java-enabled Platforms&quot; instead) jBoss will work perfectly well 
if installed in a user directory and run as an ordinary user. I will assume in this 
tutorial that you are installing in <code>c:\Program Files\jboss2</code>. If you 
haven't, change the paths as appropriate.</p>
  +     <p>You could try running the server now. You can either run the program from 
the menu like <code>Start | Programs | jboss2 | Server_jboss2</code> or change to the 
<code>bin</code> directory (note the quotation marks) and run</p>
  +     <pre>cd &quot;c:\Program Files\jboss2\bin&quot;
  +java -jar run.jar</pre>
  +     <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The server should start without any 
error messages or exceptions being thrown. It will produce about three pages of output 
on startup.<br>
  +     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The jBoss distribution is supplied with 
one test Bean, packaged as <code>bank.jar</code> in the `deploy' subdirectory, which 
is where Beans are placed to deploy them. The effect of this is to deploy the `bank' 
bean when the server starts up. This is fine the first time, as it tests that the SQL 
server is working, but you can usefully move <code>bank.jar</code> out of the 
<code>deploy</code> directory when you are sure that everything's OK, and the server 
will start up more quickly.<br>
  +     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; On Windows networks it can be useful to 
share this 'deploy' directory so that others may simply drag and drop the .jar files 
containing beans into the container for deployment.
  +     <p>
  +     <table border="1" cellspacing="0" cellpadding="5" bgcolor="#ffff80">
  +             <tr valign="top">
  +                     <th>Error Message</th>
  +                     <th>Corrective Action</th>
  +             </tr>
  +             <tr valign="top">
  +                     <td>Bad command or file name</td>
  +                     <td>The JDK binaries aren't in the PATH. Check your PATH 
environment variable. On Windows 95 and 98, you may need to edit 
<code>C:\AUTOEXEC.BAT</code> and restart your computer.</td>
  +             </tr>
  +             <tr valign="top">
  +                     <td>[AutoDeploy] ...NoClassDefFound: 
java/lang/reflect/InvocationHandler...</td>
  +                     <td>You are using a version of JDK that is too old. The class 
<code>java.lang.reflect.InvocationHandler</code> was new in version 1.3. On Windows 95 
and 98, if you've just installed JDK 1.3, you may need to edit the PATH environment 
variable in <code>C:\AUTOEXEC.BAT</code> and restart your computer.</td>
  +             </tr>
  +             <tr valign="top">
  +                     <td>[hypersonic] System.run/init: database is in use by a 
different process</td>
  +                     <td>The JDK binaries aren't in the PATH. If you get this 
message, the SQL server hasn't started, and there will be a whole heap of other errors 
later. Check your PATH environment variable. On Windows 95 and 98, you may need to 
edit <code>C:\AUTOEXEC.BAT</code> and restart your computer.</td>
  +             </tr>
  +             <tr valign="top">
  +                     <td>Failed to load Main-Class manifest attribute from<br>
  +                             run.jar</td>
  +                     <td>You're not in the right directory and Java can't find file 
run.jar. Try this:
  +                             <pre>cd &quot;c:\Program Files\jboss2\bin&quot;
  +java -jar run.jar</pre>
  +                     </td>
  +             </tr>
  +             <tr valign="top">
  +                     <td>[Webserver] java.net.UnknownHostException:...</td>
  +                     <td>The jBoss server tries to establish its host's IP number 
when it starts up. If it can't do this, you will see this error message. This problem 
is quite common on systems that get their network configuration parameters 
dynamically. For example, if your computer connects to the Internet by a dial-up 
connection, and you cancel the dial-up process, you may end up with a hostname that 
doesn't make sense. Re-establish your Internet connection.</td>
  +             </tr>
  +             <tr valign="top">
  +                     <td>[Webserver] java.net.BindException: Address already in 
use</td>
  +                     <td>This probably means you already have jBoss running and 
you're trying to start it a second time. CTL-ALT-DEL and use End Task to stop any 
current instances of jBoss, then restart jBoss.</td>
  +             </tr>
  +     </table>
  +     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; When you're happy that the server is 
running correctly, go on to the next step.
  +     <p>&nbsp;</p>
  +     <p>
  +     <table align="CENTER" border="1" cellspacing="0" cellpadding="4">
  +             <tr>
  +                     <td>
  +                             <center>
  +                                     <a 
href="jboss_linux_win32_index.html">contents </a></center>
  +                     </td>
  +                     <td>
  +                             <center>
  +                                     <a href="jboss_win32_2.html">FORWARD: Step 2: 
creating the Bean </a></center>
  +                     </td>
  +             </tr>
  +     </table>
   </html>
  
  
  
  1.2       +121 -124  jbossweb/jboss_cmp4.html
  
  Index: jboss_cmp4.html
  ===================================================================
  RCS file: /products/cvs/ejboss/jbossweb/jboss_cmp4.html,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- jboss_cmp4.html   2000/08/29 23:12:04     1.1
  +++ jboss_cmp4.html   2000/09/01 23:53:46     1.2
  @@ -1,55 +1,54 @@
   <html>
  -<head>
  -<title>
  -Step 4: creating a test client
  -</title>
  -</head>
  -
  -<font face=arial,helvetica size=+3 color="#ffcc00"> Step 4: creating a test client 
</font> 
  -<p>
  -<p><font face=arial,helvetica size=+2>Using CMP with jBoss</font> </p>
  -<table align=center>
  -  <tr> 
  -    <td>
  -      <p align=center><a href=jboss_cmp3.html > Step 3: packaging and deploying 
  -        the Beans </a></p>
  -    </td>
  -    <td>
  -      <p align=center><a href=jboss_cmp_trail_index.html > contents </a></p>
  -    </td>
  -  </tr>
  -</table>
  -<p> Client for EJBs may be any Java program or applet; in this simple example 
  -  I will describe a very simple client program that can be run from the command 
  -  line. It simply dumps the attributes of all the CD Beans to standard output. 
  -  The <a href=CDEJB.tar.gz>source code</a> also provides clients for searching 
  -  and uploading to the database, all operating at the command line. <br>
  -  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The client does not interact directly with 
  -  CD instances, it uses the CDCollection bean as a mediator. CDCollection is a 
  -  stateless session bean. In this example, the client calls the `findAll' method 
  -  to get references to all the CD objects currently in the system. To run this 
  -  client, you will first need to get some CD objects created. You can use the 
  -  `Upload' client for this, to create CD instances from a text file. <br>
  -  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; To avoid the necessity to specify the URL 
  -  of the Bean server in the client source code, this client reads the required 
  -  information from a properties file called `cd.properties'. The file should 
contain 
  -  the URL and driver for the naming service, like this: 
  -<p> 
  -<hr>
  -<pre>
  -java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
  -java.naming.provider.url=localhost:1099
  -</pre>
  -<hr>
  -<p> Of course, if your server and client are on different computers, you will 
  -  need to change `localhost' to the real location of the server. <br>
  -  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Here is the full listing of the `List' 
  -  client. 
  -<p> 
  -<hr>
  -<pre>
  -package com.web_tomorrow.cd; 
  -import javax.naming.*;
  +
  +     <head>
  +             <meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
  +             <meta name="generator" content="Adobe GoLive 4">
  +             <title>Step 4: creating a test client</title>
  +     </head>
  +
  +     <font face="arial,helvetica" size="6" color="#ffcc00">Step 4: creating a test 
client </font>
  +     <p><font face="arial,helvetica" size="5">Using CMP with jBoss</font></p>
  +     <p>
  +     <table align="center">
  +             <tr>
  +                     <td>
  +                             <center>
  +                                     <a href="jboss_cmp3.html">Step 3: packaging 
and deploying the Beans </a></center>
  +                     </td>
  +                     <td>
  +                             <center>
  +                                     <a href="jboss_cmp_trail_index.html">contents 
</a></center>
  +                     </td>
  +             </tr>
  +     </table>
  +     <p>Client for EJBs may be any Java program or applet; in this simple example I 
will describe a very simple client program that can be run from the command line. It 
simply dumps the attributes of all the CD Beans to standard output. The <a 
href="CDEJB.tar.gz">source code</a> also provides clients for searching and uploading 
to the database, all operating at the command line.<br>
  +     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The client does not interact directly 
with CD instances, it uses the CDCollection bean as a mediator. CDCollection is a 
stateless session bean. In this example, the client calls the `findAll' method to get 
references to all the CD objects currently in the system. To run this client, you will 
first need to get some CD objects created. You can use the `Upload' client for this, 
to create CD instances from a text file.<br>
  +     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; To avoid the necessity to specify the URL 
of the Bean server in the client source code, this client reads the required 
information from a properties file called `cd.properties'. The file should contain the 
URL and driver for the naming service, like this:</p>
  +     <p>
  +     <hr>
  +     </p>
  +     <p>
  +     <table border="0" bgcolor="#80ff80" cellspacing="4">
  +             <tr>
  +                     
<td>java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
  +                             <pre>java.naming.provider.url=localhost:1099</pre>
  +                     </td>
  +             </tr>
  +     </table>
  +     </p>
  +     <p>
  +     <hr>
  +     <p>Of course, if your server and client are on different computers, you will 
need to change `localhost' to the real location of the server.<br>
  +     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Here is the full listing of the `List' 
client.</p>
  +     <p>
  +     <hr>
  +     </p>
  +     <pre></pre>
  +     <p>
  +     <table border="0" bgcolor="#80ff80" cellspacing="4">
  +             <tr>
  +                     <td>package com.web_tomorrow.cd; 
  +                             <pre>import javax.naming.*;
   import java.util.Hashtable;
   import javax.rmi.PortableRemoteObject; 
   import java.util.Properties;
  @@ -63,78 +62,76 @@
   class List 
   {
   public static void main(String[] args)
  -     {
  -     // Get information about the Bean server from the properties file
  -     Properties props = new Properties();
  -     Properties sysProps = System.getProperties();
  -     try
  -             {
  -             props.load (new FileInputStream ("cd.properties"));
  -             sysProps.putAll(props);
  -             }
  -     catch (Exception e)
  -             {
  -             System.err.println ("Can't read `cd.proprties'");
  -             System.exit (-1);
  -             }
  -     System.setProperties (sysProps);
  -
  -     // Enclosing the whole process in a single `try' block is not an ideal way
  -     // to do exception handling, but I don't want to clutter the program up
  -     // with catch blocks
  -     try
  -             {
  -             // Get a naming context
  -             InitialContext jndiContext = new InitialContext();
  -
  -             // Get a reference to a CD Bean
  -             Object ref  = jndiContext.lookup("cd/CDCollection");
  -
  -             // Get a reference from this to the Bean's Home interface
  -             CDCollectionHome home = (CDCollectionHome) 
  -                     PortableRemoteObject.narrow (ref, CDCollectionHome.class);
  -
  -             CDCollection cdCollection = home.create();      
  -             
  -             CD[] cds = cdCollection.findAll();
  -             for (int i = 0; i < cds.length; i++)
  -                     {
  -                     System.out.println (cds[i].getId() + "\t" + cds[i].getTitle() 
+ "\t" + 
  -                                     cds[i].getArtist() + "\t" + cds[i].getType());
  -                     }
  -             }
  -     catch(Exception e)
  -             {
  -             System.out.println(e.toString());
  -             }
  -     }
  -}
  -</pre>
  -<hr>
  -<p> To run this client you will need to specify in the CLASSPATH the location 
  -  the jBoss client libraries, so the command line will be like this: 
  -<pre>
  -java -classpath 
$CLASSPATH:/usr/lib/jboss/lib/ext/ejb.jar:/usr/lib/jboss/client/jboss-client.jar \
  -com.web_tomorrow.cd.List; 
  -</pre>
  -If all is well, you will get a list of CDs. <br>
  -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; So we've created an entity EJB, and a client 
  -program that uses it. You'll agree, I hope, that it isn't that much more 
complicated 
  -than creating a session EJB. The additional steps required are: 
  -<ul>
  -  <li> The <code>ejb-jar.xml</code> file needs to indicate that the object is 
  -    persistent, and list the persistent fields. It also needs to specify the name 
  -    and class of the primary key field. 
  -  <li> In the <code>jboss.xml</code> file indicate that the configuration for 
  -    the Bean is <code>CMP EntityBean</code> 
  -  <li> If the default column names and types aren't what you need, create a file 
  -    <code>jaws.xml</code> to specify them. 
  -</ul>
  -If you've followed the tutorial, you might like to read the <a 
href=cmp_jboss_discussion.html>discussion</a> 
  -which gives some suggestions about optimization and suitability of 
container-managed 
  -Beans. 
  -<p>&nbsp; </p>
  -<p>
  +{
  +  // Get information about the Bean server from the properties file
  +  Properties props = new Properties();
  +  Properties sysProps = System.getProperties();
  +  try
  +  {
  +    props.load (new FileInputStream (&quot;cd.properties&quot;));
  +    sysProps.putAll(props);
  +  }
  +  catch (Exception e)
  +  {
  +    System.err.println (&quot;Can't read `cd.proprties'&quot;);   
  +    System.exit (-1);
  +  }
  +  System.setProperties (sysProps);
  +
  +  // Enclosing the whole process in a single `try' block is not an ideal way
  +  // to do exception handling, but I don't want to clutter the program up
  +  // with catch blocks
  +  try
  +  {
  +    // Get a naming context
  +    InitialContext jndiContext = new InitialContext();
  +
  +    // Get a reference to a CD Bean
  +    Object ref  = jndiContext.lookup(&quot;cd/CDCollection&quot;);
  +
  +    // Get a reference from this to the Bean's Home interface
  +    CDCollectionHome home = (CDCollectionHome) 
  +       PortableRemoteObject.narrow (ref, CDCollectionHome.class);
  +
  +    CDCollection cdCollection = home.create();
  +
  +    CD[] cds = cdCollection.findAll();
  +    for (int i = 0; i &lt; cds.length; i++)
  +    {
  +      System.out.println (cds[i].getId() + &quot;\t&quot; + cds[i].getTitle() + 
&quot;\t&quot; + 
  +        cds[i].getArtist() + &quot;\t&quot; + cds[i].getType());
  +    }
  +  } 
  +  catch(Exception e)
  +  {
  +    System.out.println(e.toString());
  +  }
  + }
  +}</pre>
  +                     </td>
  +             </tr>
  +     </table>
  +     </p>
  +     <p>
  +     <hr>
  +     <p>To run this client you will need to specify in the CLASSPATH the location 
the jBoss client libraries, so the command line will be like this:</p>
  +     <pre></pre>
  +     <p>
  +     <table border="0" bgcolor="#ffff80" cellspacing="4">
  +             <tr>
  +                     <td>java -classpath 
$CLASSPATH:/usr/lib/jboss/lib/ext/ejb.jar:/usr/lib/jboss/client/jboss-client.jar \
  +                             <pre>com.web_tomorrow.cd.List;</pre>
  +                     </td>
  +             </tr>
  +     </table>
  +      </p>
  +     <p>If all is well, you will get a list of CDs.<br>
  +     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; So we've created an entity EJB, and a 
client program that uses it. You'll agree, I hope, that it isn't that much more 
complicated than creating a session EJB. The additional steps required are:
  +     <ul>
  +             <li>The <code>ejb-jar.xml</code> file needs to indicate that the 
object is persistent, and list the persistent fields. It also needs to specify the 
name and class of the primary key field.
  +             <li>If the default column names and types aren't what you need, create 
a file <code>jaws.xml</code> to specify them.
  +     </ul>
  +     <p>&nbsp;</p>
  +     <p></body>
   
  -</body>
   </html>
  
  
  
  1.2       +103 -106  jbossweb/jboss_cmp3.html
  
  Index: jboss_cmp3.html
  ===================================================================
  RCS file: /products/cvs/ejboss/jbossweb/jboss_cmp3.html,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- jboss_cmp3.html   2000/08/29 23:12:04     1.1
  +++ jboss_cmp3.html   2000/09/01 23:53:46     1.2
  @@ -1,36 +1,39 @@
   <html>
  -<head>
  -<title>
  -Step 3: packaging and deploying the Beans
  -</title>
  -</head>
  -
  -<font face=arial,helvetica size=+3 color="#ffcc00"> Step 3: packaging and deploying 
  -the Beans </font> 
  -<p>
  -<p><font face=arial,helvetica size=+2>Using CMP with jBoss</font> </p>
  -<table align=center>
  -  <tr> 
  -    <td>
  -      <p align=center><a href=jboss_cmp2.html> Step 2: creating the Beans </a></p>
  -    </td>
  -    <td>
  -      <p align=center><a href=jboss_cmp_trail_index.html> contents </a></p>
  -    </td>
  -    <td>
  -      <p align=center><a href=jboss_cmp4.html > Step 4: creating a test client 
  -        </a></p>
  -    </td>
  -  </tr>
  -</table>
  -<p> Deploying an entity bean requires providing some extra information, in addition 
  -  to that required for a session bean. This information is provided in the 
deployment 
  -  descriptor <code>ejb-jar.xml</code> 
  -<p> 
  -<hr>
  -<pre>
  -&lt;enterprise-beans&gt;
  -  &lt;entity&gt;
  +
  +     <head>
  +             <meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
  +             <meta name="generator" content="Adobe GoLive 4">
  +             <title>Step 3: packaging and deploying the Beans</title>
  +     </head>
  +
  +     <font face="arial,helvetica" size="6" color="#ffcc00">Step 3: packaging and 
deploying the Beans </font>
  +     <p><font face="arial,helvetica" size="5">Using CMP with jBoss</font></p>
  +     <p>
  +     <table align="center">
  +             <tr>
  +                     <td>
  +                             <center>
  +                                     <a href="jboss_cmp2.html">Step 2: creating the 
Beans </a></center>
  +                     </td>
  +                     <td>
  +                             <center>
  +                                     <a href="jboss_cmp_trail_index.html">contents 
</a></center>
  +                     </td>
  +                     <td>
  +                             <center>
  +                                     <a href="jboss_cmp4.html">Step 4: creating a 
test client </a></center>
  +                     </td>
  +             </tr>
  +     </table>
  +     <p>Deploying an entity bean requires providing some extra information, in 
addition to that required for a session bean. This information is provided in the 
deployment descriptor <code>ejb-jar.xml</code></p>
  +     <p>
  +     <hr>
  +     </p>
  +     <p>
  +     <table border="0" bgcolor="#80ff80" cellspacing="4">
  +             <tr>
  +                     <td>&lt;enterprise-beans&gt;
  +                             <pre>  &lt;entity&gt;
       &lt;description&gt;Models a music CD&lt;/description&gt;
       &lt;ejb-name&gt;CDBean&lt;/ejb-name&gt;
       &lt;home&gt;com.web_tomorrow.cd.CDHome&lt;/home&gt;
  @@ -49,30 +52,32 @@
   
   &lt;!-- more beans here --&gt;
   
  -&lt;/entity-beans&gt;
  -</pre>
  -<hr>
  -<p> The listing above shows the section of <code>ejb-jar.xml</code> that is 
relevant 
  -  to the CD Bean. It has the usual information about the classes that consitute 
  -  the Bean, but it also specifies the type and name of the primary key, and the 
  -  fields that are persistent. Note that in this case the `id' field gets listed 
  -  twice: once as a persistent field and then again as the primary key field. It 
  -  might be thought that specifying a field as a primary key would automatically 
  -  make it persistent, but it doesn't. Leaving out the <ccode>cmp-field definition 
  -  for the primary key results in this error message at deployment time: 
  -<pre>
  -[JAWS] Initializing JAWS plugin for CDBean
  -[Container factory] java.lang.NoSuchFieldException: CASE_INSENSITIVE_ORDER
  -</pre>
  -The deployment descriptor for the CDCollection class does not require any 
persistence 
  -information, but it does require an <code>ejb-ref</code> section; this indicates 
  -that the CDCollection Bean refers to CD Bean instances. The <code>ejb-ref</code> 
  -section lists the type of the CD Bean, and all its classes. 
  -<p> 
  -<hr>
  -<pre>
  -  &lt;session&gt;
  -  &lt;description&gt;Models a music CD collection&lt;/description&gt;
  +&lt;/entity-beans&gt;</pre>
  +                     </td>
  +             </tr>
  +     </table>
  +     </p>
  +     <p>
  +     <hr>
  +     <p>The listing above shows the section of <code>ejb-jar.xml</code> that is 
relevant to the CD Bean. It has the usual information about the classes that consitute 
the Bean, but it also specifies the type and name of the primary key, and the fields 
that are persistent. Note that in this case the `id' field gets listed twice: once as 
a persistent field and then again as the primary key field. It might be thought that 
specifying a field as a primary key would automatically make it persistent, but it 
doesn't. Leaving out the<ccode>cmp-field definition for the primary key results in 
this error message at deployment time:</p>
  +     <p>
  +     <table border="0" bgcolor="#ffff80" cellspacing="4">
  +             <tr>
  +                     <td>[JAWS] Initializing JAWS plugin for CDBean
  +                             <pre>[Container factory] 
java.lang.NoSuchFieldException: CASE_INSENSITIVE_ORDER</pre>
  +                     </td>
  +             </tr>
  +     </table>
  +     </p>
  +     <p>The deployment descriptor for the CDCollection class does not require any 
persistence information, but it does require an <code>ejb-ref</code> section; this 
indicates that the CDCollection Bean refers to CD Bean instances. The 
<code>ejb-ref</code> section lists the type of the CD Bean, and all its classes.
  +     <p>
  +     <hr>
  +     </p>
  +     <p>
  +     <table border="0" bgcolor="#80ff80" cellspacing="4">
  +             <tr>
  +                     <td>&lt;session&gt;
  +                             <pre>  &lt;description&gt;Models a music CD 
collection&lt;/description&gt;
     &lt;ejb-name&gt;CDCollectionBean&lt;/ejb-name&gt;
     &lt;home&gt;com.web_tomorrow.cd.CDCollectionHome&lt;/home&gt;
     &lt;remote&gt;com.web_tomorrow.cd.CDCollection&lt;/remote&gt;
  @@ -86,16 +91,23 @@
       &lt;remote&gt;com.web_tomorrow.cd.CD&lt;/remote&gt;
       &lt;ejb-link&gt;com.web_tomorrow.cd.CDBean&lt;/ejb-link&gt;
     &lt;/ejb-ref&gt;
  -&lt;/session&gt;
  -</pre>
  -<hr>
  -<p> In the jBoss run-time configuration file `jboss.xml' we should specify the 
  -  type of configuration to be used by Beans, and their JNDI names, like this: 
  -<p> 
  -<hr>
  -<pre>
  -&lt;entity&gt;
  -  &lt;ejb-name&gt;CDBean&lt;/ejb-name&gt;
  +&lt;/session&gt;</pre>
  +                     </td>
  +             </tr>
  +     </table>
  +     </p>
  +     <p>
  +     <hr>
  +     <p>In the jBoss run-time configuration file `jboss.xml' we should specify the 
type of configuration to be used by Beans, and their JNDI names, like this:</p>
  +     <p>
  +     <hr>
  +     </p>
  +     <pre></pre>
  +     <p>
  +     <table border="0" bgcolor="#80ff80" cellspacing="4">
  +             <tr>
  +                     <td>&lt;entity&gt;
  +                             <pre>  &lt;ejb-name&gt;CDBean&lt;/ejb-name&gt;
     &lt;jndi-name&gt;cd/CD&lt;/jndi-name&gt;
     &lt;configuration-name&gt;CMP EntityBean&lt;/configuration-name&gt;
   &lt;/entity&gt;
  @@ -104,22 +116,21 @@
     &lt;ejb-name&gt;CDCollectionBean&lt;/ejb-name&gt;
     &lt;jndi-name&gt;cd/CDCollection&lt;/jndi-name&gt;
     &lt;configuration-name&gt;Default Stateless SessionBean&lt;/configuration-name&gt;
  -&lt;/session&gt;
  -</pre>
  -<hr>
  -<p> This says the `CDBean' uses the configuration `CMP EntityBean' and has the 
  -  JNDI name `cd/CD'. `CDCollectionBean' uses the configuration `Default Stateless 
  -  SessionBean' and has the JNDI name `cd/CDCollection'. Note that the method of 
  -  specifying these configurations depends on the server. <br>
  -  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; When packaging these Beans, don't forget 
  -  to include the files <code>ejb-jar.xml</code> and <code>jboss.jar</code> in 
  -  the directory <code>META-INF</code>. <br>
  -  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; During deployment (simply copy the packaged 
  -  beans to the `deploy' subdirectory of the jBoss directory) you should see a 
  -  message like the following: 
  -<pre>
  -[Container factory] Deploying:file:/usr/lib/jboss/deploy/cd.jar
  -[Container factory] Deploying CDBean
  +&lt;/session&gt;</pre>
  +                     </td>
  +             </tr>
  +     </table>
  +     </p>
  +     <p>
  +     <hr>
  +     <p>This says the `CDBean' uses the configuration `CMP EntityBean' and has the 
JNDI name `cd/CD'. `CDCollectionBean' uses the configuration `Default Stateless 
SessionBean' and has the JNDI name `cd/CDCollection'. Note that the method of 
specifying these configurations depends on the server.<br>
  +     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; When packaging these Beans, don't forget 
to include the files <code>ejb-jar.xml</code> and <code>jboss.jar</code> in the 
directory <code>META-INF</code>.<br>
  +     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; During deployment (simply copy the 
packaged beans to the `deploy' subdirectory of the jBoss directory) you should see a 
message like the following:</p>
  +     <p>
  +     <table border="0" bgcolor="#ffff80" cellspacing="4">
  +             <tr>
  +                     <td>[Container factory] 
Deploying:file:/usr/lib/jboss/deploy/cd.jar
  +                             <pre>[Container factory] Deploying CDBean
   [Container factory] Deploying CDCollectionBean
   [JAWS] Initializing JAWS plugin for CDBean
   [JAWS] Remove:DELETE FROM CDBean WHERE id=?
  @@ -135,29 +146,15 @@
   [Container factory] Started: CDCollectionBean
   [Container factory] Bound CDBean to cd/CD
   [Container factory] Bound CDCollectionBean to cd/CDCollection
  -[Container factory] Deployed application: file:/usr/lib/jboss/deploy/cd.jar
  -</pre>
  -`JAWS' is the jBoss interface to the database engine. During deployment JAWS has 
  -deleted any existing table called `CDBean', then created a new CDBean table with 
  -the specified column layout. How does it know to use <code>VARCHAR(256)</code> 
  -for each field? It doesn't: it's guessing because we haven't provided any other 
  -information. During deployment, JAWS looks for a file called `jaws.xml'; if this 
  -file exists it is read to configure the names and geometry of the database tables. 
  -<code>VARCHAR(256)</code> is the default for String attributes. The default table 
  -name is the same as that of the Bean class, which is why we have ended up with 
  -a table called `CDBean'. This also can be over-ridden in jaws.xml. In practice, 
  -the JAWS defaults are adequate for most applications. However, there may be speed 
  -advantages to using fixed-length fields (e.g., <code>CHAR(XX)</code> rather than 
  -variable-length ones if at all possible. <br>
  -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Note that it can be very difficult to change 
  -the number or names of columns in the table once there is data in it. jBoss gets 
  -very confused by this, as you would expect. When a CMP Bean is re-deployed, JAWS 
  -tries to write into its table all the data it had in its last deployment. If the 
  -table has different columns it probably won't be able to do that. This means that 
  -it is important to get the persistent fields thoroughly correct before starting 
  -to put real data into the application. 
  -<p>&nbsp; </p>
  -<p>
  +[Container factory] Deployed application: file:/usr/lib/jboss/deploy/cd.jar</pre>
  +                     </td>
  +             </tr>
  +     </table>
  +     </p>
  +     <p></p>
  +     <p>`JAWS' is the jBoss interface to the database engine. During deployment 
JAWS has deleted any existing table called `CDBean', then created a new CDBean table 
with the specified column layout. How does it know to use <code>VARCHAR(256)</code> 
for each field? It doesn't: it's guessing because we haven't provided any other 
information. During deployment, JAWS looks for a file called `jaws.xml'; if this file 
exists it is read to configure the names and geometry of the database tables. 
<code>VARCHAR(256)</code> is the default for String attributes. The default table name 
is the same as that of the Bean class, which is why we have ended up with a table 
called `CDBean'. This also can be over-ridden in jaws.xml. In practice, the JAWS 
defaults are adequate for most applications. However, there may be speed advantages to 
using fixed-length fields (e.g., <code>CHAR(XX)</code> rather than variable-length 
ones if at all possible.<br>
  +     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Note that it can be very difficult to 
change the number or names of columns in the table once there is data in it. jBoss 
gets very confused by this, as you would expect. When a CMP Bean is re-deployed, JAWS 
tries to write into its table all the data it had in its last deployment. If the table 
has different columns it probably won't be able to do that. This means that it is 
important to get the persistent fields thoroughly correct before starting to put real 
data into the application.
  +     <p>&nbsp;</p>
  +     <p></body>
   
  -</body>
   </html>
  
  
  
  1.2       +86 -91    jbossweb/jboss_cmp2.html
  
  Index: jboss_cmp2.html
  ===================================================================
  RCS file: /products/cvs/ejboss/jbossweb/jboss_cmp2.html,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- jboss_cmp2.html   2000/08/29 23:12:03     1.1
  +++ jboss_cmp2.html   2000/09/01 23:53:46     1.2
  @@ -1,40 +1,39 @@
   <html>
  -<head>
  -<title>
  -Step 2: creating the Beans
  -</title>
  -</head>
  -
  -<font face=arial,helvetica size=+3 color="#ffcc00"> Step 2: creating the Beans 
</font> 
  -<p>
  -<p><font face=arial,helvetica size=+2>Using CMP with jBoss</font> </p>
  -<table align=center>
  -  <tr> 
  -    <td>
  -      <p align=center><a href=jboss_cmp1.html > Step 1: determine the persistent 
  -        classes </a></p>
  -    </td>
  -    <td>
  -      <p align=center><a href=jboss_cmp_trail_index.html> contents </a></p>
  -    </td>
  -    <td>
  -      <p align=center><a href=jboss_cmp3.html > Step 3: packaging and deploying 
  -        the Beans </a></p>
  -    </td>
  -  </tr>
  -</table>
  -<p> 
  -<p> The entity bean representing the CD is very easy to code, as it doesn't have 
  -  to do a great deal. All the issues of persistence will be taken care of by the 
  -  server. I will present the full code for this Bean below; the code for the 
CDCollection 
  -  Bean will not be discussed further because it is not interesting in the context 
  -  of container-managed persistence. Remember that the full source code is available 
  -  to download: <a href=/CDEJB.tar.gz>click here</a>. 
  -<p> <b>CD.java: remote interface for the `CD' Bean</b><br>
  -<hr>
  -<pre>
  -package com.web_tomorrow.cd;
   
  +     <head>
  +             <meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
  +             <meta name="generator" content="Adobe GoLive 4">
  +             <title>Step 2: creating the Beans</title>
  +     </head>
  +
  +     <font face="arial,helvetica" size="6" color="#ffcc00">Step 2: creating the 
Beans </font>
  +     <p><font face="arial,helvetica" size="5">Using CMP with jBoss</font></p>
  +     <p>
  +     <table align="center">
  +             <tr>
  +                     <td>
  +                             <center>
  +                                     <a href="jboss_cmp1.html">Step 1: determine 
the persistent classes </a></center>
  +                     </td>
  +                     <td>
  +                             <center>
  +                                     <a href="jboss_cmp_trail_index.html">contents 
</a></center>
  +                     </td>
  +                     <td>
  +                             <center>
  +                                     <a href="jboss_cmp3.html">Step 3: packaging 
and deploying the Beans </a></center>
  +                     </td>
  +             </tr>
  +     </table>
  +     <p>The entity bean representing the CD is very easy to code, as it doesn't 
have to do a great deal. All the issues of persistence will be taken care of by the 
server. I will present the full code for this Bean below; the code for the 
CDCollection Bean will not be discussed further because it is not interesting in the 
context of container-managed persistence. Remember that the full source code is 
available to download: <a href="/CDEJB.tar.gz">click here</a>.</p>
  +     <p><b>CD.java: remote interface for the `CD' Bean</b><br>
  +     <hr>
  +     </p>
  +     <p>
  +     <table border="0" bgcolor="#80ff80" cellspacing="4">
  +             <tr>
  +                     <td>package com.web_tomorrow.cd;
  +                             <pre>
   import java.rmi.RemoteException;
   import javax.ejb.*;
   
  @@ -92,33 +91,31 @@
   Set notes
   */
   public abstract void setNotes(String type) throws RemoteException;
  -}
  -</pre>
  -<hr>
  -The remote interface specifies methods to get and set the attributes of the object. 
  -That's all it needs to do in this example. Note that, as with any Java Bean, the 
  -names of these methods must follow the standard convention; that is, if an 
attribute 
  -is called `String X' then the `get' and `set' methods must be defined as follows: 
  -<pre>
  -string getX();
  -void setX(String);
  -</pre>
  -<p> Note also that jBoss <i>requires</i> that these methods are declared as 
`abstract' 
  -  when using CMP. It does not matter for session Beans, and some EJB server aren't 
  -  fussy (e.g., Sun J2EE), but with CMP in jBoss you need to say `abstract'. Failure 
  -  to do so will result in the following error message during deployment: 
  -<pre>
  -[Container factory] org.jboss.ejb.DeploymentException: Could not find matching
  +}</pre>
  +                     </td>
  +             </tr>
  +     </table>
  +     </p>
  +     <p>
  +     <hr>
  +     The remote interface specifies methods to get and set the attributes of the 
object. That's all it needs to do in this example. Note that, as with any Java Bean, 
the names of these methods must follow the standard convention; that is, if an 
attribute is called `String X' then the `get' and `set' methods must be defined as 
follows:
  +     <pre>string getX();
  +void setX(String);</pre>
  +     <p>Note also that jBoss <i>requires</i> that these methods are declared as 
`abstract' when using CMP. It does not matter for session Beans, and some EJB server 
aren't fussy (e.g., Sun J2EE), but with CMP in jBoss you need to say `abstract'. 
Failure to do so will result in the following error message during deployment:</p>
  +     <pre>[Container factory] org.jboss.ejb.DeploymentException: Could not find 
matching
   method for public abstract java.lang.String somepackage.getSomeField()
   throws java.rmi.RemoteException, Cause:java.lang.NoSuchMethodException:
   getSomeField()
  -</pre>
  -<p> <b>CDHome.java: home interface for the `CD' Bean</b><br>
  -<hr>
  -<pre>
  -package com.web_tomorrow.cd;
   
  -import java.rmi.RemoteException;
  +//MF&nbsp;FIXME:&nbsp;is this still true??? does the new JAWS&nbsp;allow this?</pre>
  +     <p><b>CDHome.java: home interface for the `CD' Bean</b><br>
  +     <hr>
  +     </p>
  +     <p>
  +     <table border="0" bgcolor="#80ff80" cellspacing="4">
  +             <tr>
  +                     <td>package com.web_tomorrow.cd;
  +                             <pre>import java.rmi.RemoteException;
   import javax.ejb.*;
   import java.util.Collection;
   
  @@ -151,23 +148,23 @@
   public Collection findAll() throws RemoteException, FinderException;
   }
   </pre>
  -<hr>
  -<p> The important thing to note about this interface is that it specifies methods 
  -  that don't need to be implemented. In this case, <code>findByPrimaryKey()</code>, 
  -  <code>findByType()</code> and <code>findAll()</code> are all examples of `finder' 
  -  methods. The EJB specification requires that the server be able to provide finder 
  -  methods for all the persistent attributes in the object. So, for example, if 
  -  your class has an attribute `X', then the server will provide a `findByX' method 
  -  to search on that field. Note that with jBoss the search is `exact'; that is, 
  -  it won't accept wild-card characters or an incorrect mixture of upper- and 
lower-case 
  -  letters. The <code>findByPrimaryKey()</code> searches on the primary key field; 
  -  we will discuss how the primary key is specified later. 
  -<p> <b>CDBean.java: implementation of the `CD' Bean</b><br>
  -<hr>
  -<pre>
  -package com.web_tomorrow.cd;
  -
  -import java.rmi.RemoteException;
  +                     </td>
  +             </tr>
  +     </table>
  +     </p>
  +     <pre>
  +</pre>
  +     <p>
  +     <hr>
  +     <p>The important thing to note about this interface is that it specifies 
methods that don't need to be implemented. In this case, 
<code>findByPrimaryKey()</code>, <code>findByType()</code> and <code>findAll()</code> 
are all examples of `finder' methods. The EJB specification requires that the server 
be able to provide finder methods for all the persistent attributes in the object. So, 
for example, if your class has an attribute `X', then the server will provide a 
`findByX' method to search on that field. Note that with jBoss the search is `exact'; 
that is, it won't accept wild-card characters or an incorrect mixture of upper- and 
lower-case letters. The <code>findByPrimaryKey()</code> searches on the primary key 
field; we will discuss how the primary key is specified later.</p>
  +     <p><b>CDBean.java: implementation of the `CD' Bean</b><br>
  +     <hr>
  +     </p>
  +     <p>
  +     <table border="0" bgcolor="#80ff80" cellspacing="4">
  +             <tr>
  +                     <td>package com.web_tomorrow.cd;
  +                             <pre>import java.rmi.RemoteException;
   import javax.ejb.*;
   
   /**
  @@ -189,10 +186,10 @@
   creation is managed by the EJB container.
   */
   public String ejbCreate (String _id)
  -     {
  -     id = _id;
  -     return null;
  -     }
  +{
  + id = _id;
  + return null;
  +}
   
   /**
   Called when the object has been instantiated; does nothing in this example
  @@ -225,17 +222,15 @@
   public void ejbRemove() { } 
   }
   </pre>
  -<hr>
  -The CDBean class provides implementations of the methods that aren't provided 
  -automatically by the EJB container. Note that the <code>ejbCreate</code> method 
  -returns `null', meaning that the container should take care of initializing the 
  -instance in the server's process space. Because the CD Bean is essentially passive 
  --- a data repository -- it only has a few methods. 
  -<p> These classes (and the CDCollection classes) can be compiled in the usual 
  -  way; don't forget to include the path to the jBoss EJB class library in your 
  -  classpath, e.g., 
  -<p>javac -classpath /usr/lib/jboss/lib/ext/ejb.jar:. .... </p>
  -<p>
  +                     </td>
  +             </tr>
  +     </table>
  +     </p>
  +     <p>
  +     <hr>
  +     The CDBean class provides implementations of the methods that aren't provided 
automatically by the EJB container. Note that the <code>ejbCreate</code> method 
returns `null', meaning that the container should take care of initializing the 
instance in the server's process space. Because the CD Bean is essentially passive -- 
a data repository -- it only has a few methods.
  +     <p>These classes (and the CDCollection classes) can be compiled in the usual 
way; don't forget to include the path to the jBoss EJB class library in your 
classpath, e.g.,</p>
  +     <p>javac -classpath /usr/lib/jboss/lib/ext/ejb.jar:. ....</p>
  +     <p></body>
   
  -</body>
   </html>
  
  
  
  1.2       +28 -75    jbossweb/jboss_cmp.html
  
  Index: jboss_cmp.html
  ===================================================================
  RCS file: /products/cvs/ejboss/jbossweb/jboss_cmp.html,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- jboss_cmp.html    2000/08/29 23:12:02     1.1
  +++ jboss_cmp.html    2000/09/01 23:53:46     1.2
  @@ -1,78 +1,31 @@
   <html>
  -<head>
  -<title>
  -Using container-managed persistence with jBoss
  -</title>
  -</head>
   
  -<font face=arial,helvetica size=+3 color="#ffcc00"> Using container-managed 
persistence 
  -with jBoss </font> 
  -<p> <a href=jboss_linux.html >EJBs on jBoss</a> 
  -<p>By Kevin Boone (<a 
href=mailto:[EMAIL PROTECTED]>[EMAIL PROTECTED]</a>) 
  -<p> <font face=arial,helvetica size=+2>What this article is about</font> 
  -<p> This article presensts a step-by-step example of creating, deploying and 
testing 
  -  an Entity JavaBean that uses `container-managed persistence' with the jBoss 
  -  EJB server. This example is very simple, and is a variation of the old favourite 
  -  `music CD' case study. I have chosen this example because the application is 
  -  likely to be familiar to most people without much explanation. In short, the 
  -  `CD' EJB models a music CD. Applications will want to add and delete CDs to 
  -  a collection, and search the collection for specific CDs. There is also a 
`CDCollection' 
  -  EJB that lists and searches collections of CDs. <br>
  -  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The full source code to accompany this 
  -  article can be found here (in gzipped tar format). This archive contains the 
  -  Java source code, JavaDoc documentation, and a text file of test data (CDs.txt) 
  -  to initialize the database. <br>
  -  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Although I will occasionally make reference 
  -  to Linux, this is only because that's what I use for EJB development; most of 
  -  the material in this article will work with any Unix version, and even with 
  -  Windows NT if the directory structure is adjusted accordingly. 
  -<p> <font face=arial,helvetica size=+2>Pre-requisites</font> 
  -<p> You will need a fully-functioning jBoss installation to follow this tutorial, 
  -  which must have a working database connection. I will assume that you are 
basically 
  -  familiar with EJBs and know how to structure and compile JavaBeans as Java 
packages. 
  -  Also I will assume you know the basic structure of a <i>deployment 
descriptor</i>, 
  -  and the run-time descriptor that jBoss uses (jboss.xml). I will assume that 
  -  you know how to package and deploy EJBs using jBoss. If you don't know about 
  -  these things, you might want to look at my <a href=jboss_linux.html>introductory 
  -  article</a> on jBoss first. 
  -<p> <font face=arial,helvetica size=+2>jBoss hints</font> 
  -<p> jBoss is written entirely in Java, as is the `Hypersonic' database with which 
  -  it is supplied. Searching a database requires lots of repetitive operations, 
  -  and an interpreting Java system will be extremely slow if the database is large. 
  -  If you are using the Sun JDK, you will need to ensure that it is configured 
  -  to use the `Hotspot' virtual machine, to achieve anything close to acceptable 
  -  performance. For the purposes of study, you could get along by ensuring that 
  -  the database size is kept small, but with even a hundred objects you will find 
  -  it too slow to use. Some Linux systems are reluctant to use the `Hotspot' JVM, 
  -  but they can normally be coerced to. 
  -<p> <font face=arial,helvetica size=+2>Persistence: review</font> 
  -<p> There are, in essence, two kinds of Enterprise JavaBean: <i>session</i> and 
  -  <i>entity</i>. Entity EJBs contain information that is persistent across 
different 
  -  client-Bean interactions, while session EJBs don't. For example, a class called 
  -  `Customer' that represents the customers of a particular service will contain 
  -  persistent information (about the customer). A class called `CustomerFinder', 
  -  say, that finds Customer instances that match certain criteria is likely to 
  -  be a session EJB, because it does not require information that is maintained 
  -  between different client-server interactions. <br>
  -  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Session EJBs can be further divided into 
  -  `stateless' and `stateful'. A stateful session EJB has a state that is persistent 
  -  between invocations of its methods. A stateless EJB does not even have to retain 
  -  its state between method invocations. The stateless session EJB is therefore 
  -  the type of EJB that exhibits the least persistence. <br>
  -  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The entity EJBs contain information that 
  -  persists even when no clients are using any of the Bean's services; the 
information 
  -  should persist even if the server is restarted. There is a high degree of 
correspondence 
  -  between instances of an entity EJB and rows of a database table. In practice, 
  -  all EJB servers implement entity instances as table rows. This correspondence 
  -  is so strong that the notion of a `primary key' is relevant to an entity EJB. 
  -  Of course, a primary key is a database concept, not an object-orientation concept 
  -  at all. <br>
  -  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The persistence of an entity EJB may be 
  -  managed by the Bean itself, or by the server (technically by the `container'). 
  -  The latter technique is called `Container-managed persistence', and is the 
subject 
  -  of the rest of this article. 
  -<p> <a href=jboss_cmp1.html>Begin tutorial...</a> 
  -<p> After the tutorial, you might like to read the <a 
href=cmp_jboss_discussion.html>discussion</a> 
  -<p> 
  -</body>
  +     <head>
  +             <meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
  +             <meta name="generator" content="Adobe GoLive 4">
  +             <title>Using container-managed persistence with jBoss</title>
  +     </head>
  +
  +     <font face="arial,helvetica" size="6" color="#ffcc00">Using container-managed 
persistence with jBoss </font>
  +     <p><a href="jboss_linux.html">EJBs on jBoss</a></p>
  +     <p>By Kevin Boone (<a 
href="mailto:[EMAIL PROTECTED]">[EMAIL PROTECTED]</a>)</p>
  +     <p><font face="arial,helvetica" size="5">What this article is about</font></p>
  +     <p>This article presensts a step-by-step example of creating, deploying and 
testing an Entity JavaBean that uses `container-managed persistence' with the jBoss 
EJB server. This example is very simple, and is a variation of the old favourite 
`music CD' case study. I have chosen this example because the application is likely to 
be familiar to most people without much explanation. In short, the `CD' EJB models a 
music CD. Applications will want to add and delete CDs to a collection, and search the 
collection for specific CDs. There is also a `CDCollection' EJB that lists and 
searches collections of CDs.<br>
  +     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The full source code to accompany this 
article can be found here (in gzipped tar format). This archive contains the Java 
source code, JavaDoc documentation, and a text file of test data (CDs.txt) to 
initialize the database.<br>
  +     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Although I will occasionally make 
reference to Linux, this is only because that's what I use for EJB development; most 
of the material in this article will work with any Unix version, and even with Windows 
NT if the directory structure is adjusted accordingly.</p>
  +     <p><font face="arial,helvetica" size="5">Pre-requisites</font></p>
  +     <p>You will need a fully-functioning jBoss installation to follow this 
tutorial, which must have a working database connection. I will assume that you are 
basically familiar with EJBs and know how to structure and compile JavaBeans as Java 
packages. Also I will assume you know the basic structure of a <i>deployment 
descriptor</i>, and the run-time descriptor that jBoss uses (jboss.xml). I will assume 
that you know how to package and deploy EJBs using jBoss. If you don't know about 
these things, you might want to look at my <a href="jboss_linux.html">introductory 
article</a> on jBoss first.</p>
  +     <p><font face="arial,helvetica" size="5">jBoss hints</font></p>
  +     <p>jBoss is written entirely in Java, as is the `Hypersonic' database with 
which it is supplied. Searching a database requires lots of repetitive operations, and 
an interpreting Java system will be extremely slow if the database is large. If you 
are using the Sun JDK, you will need to ensure that it is configured to use the 
`Hotspot' virtual machine, to achieve anything close to acceptable performance. For 
the purposes of study, you could get along by ensuring that the database size is kept 
small, but with even a hundred objects you will find it too slow to use. Some Linux 
systems are reluctant to use the `Hotspot' JVM, but they can normally be coerced 
to.</p>
  +     <p><font face="arial,helvetica" size="5">Persistence: review</font></p>
  +     <p>There are, in essence, two kinds of Enterprise JavaBean: <i>session</i> and 
<i>entity</i>. Entity EJBs contain information that is persistent across different 
client-Bean interactions, while session EJBs don't. For example, a class called 
`Customer' that represents the customers of a particular service will contain 
persistent information (about the customer). A class called `CustomerFinder', say, 
that finds Customer instances that match certain criteria is likely to be a session 
EJB, because it does not require information that is maintained between different 
client-server interactions.<br>
  +     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Session EJBs can be further divided into 
`stateless' and `stateful'. A stateful session EJB has a state that is persistent 
between invocations of its methods. A stateless EJB does not even have to retain its 
state between method invocations. The stateless session EJB is therefore the type of 
EJB that exhibits the least persistence.<br>
  +     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The entity EJBs contain information that 
persists even when no clients are using any of the Bean's services; the information 
should persist even if the server is restarted. There is a high degree of 
correspondence between instances of an entity EJB and rows of a database table. In 
practice, all EJB servers implement entity instances as table rows. This 
correspondence is so strong that the notion of a `primary key' is relevant to an 
entity EJB. Of course, a primary key is a database concept, not an object-orientation 
concept at all.<br>
  +     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The persistence of an entity EJB may be 
managed by the Bean itself, or by the server (technically by the `container'). The 
latter technique is called `Container-managed persistence', and is the subject of the 
rest of this article.</p>
  +     <p><b>When to Use CMP&nbsp;or BMP?</b></p>
  +     <p>Unlike what many folks believe, the choice of going BMP&nbsp;or CMP&nbsp;is 
not really one of &quot;trade-off&quot;. &nbsp;If you have already schemas deployed 
you may find that the complexity of the schemas requires you to go with BMP or use a 
BMP&nbsp;generating tool such as &quot;cocobase&quot;. &nbsp;These techniques are what 
we call &quot;fake CMP&quot; where the work of accessing the database is left to the 
generated classes. </p>
  +     <p>The breed of CMP&nbsp;that has most value is the &quot;real CMP&quot; or a 
CMP&nbsp;where you let the container manage the persistent representation of your 
beans entirerly. &nbsp;This might not work right now for you if your object are 
complex but should work in most simple cases.  EJB2.0 also goes the extra length to 
make the persistent engines powerful and fast with management of dependencies and 
relationships. &nbsp;We believe that one day you will rely on the engines to manage 
the schemas, just like you rely on a compiler to optimize assembly code.</p>
  +     <p><a href="jboss_cmp1.html">Begin tutorial...</a></p>
  +     <p></body>
  +
   </html>
  
  
  
  1.2       +70 -91    jbossweb/jboss6.html
  
  Index: jboss6.html
  ===================================================================
  RCS file: /products/cvs/ejboss/jbossweb/jboss6.html,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- jboss6.html       2000/08/29 23:12:02     1.1
  +++ jboss6.html       2000/09/01 23:53:46     1.2
  @@ -1,99 +1,78 @@
   <html>
  -<head>
  -<title>
  -Step 6: compiling and running the test client
  -</title>
   
  -</head>
  +     <head>
  +             <meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
  +             <meta name="generator" content="Adobe GoLive 4">
  +             <title>Step 6: compiling and running the test client</title>
  +     </head>
   
  -<p><font face=arial,helvetica size=+3 color="#ffcc00"> Step 6: compiling and 
running the 
  -test client </font> </p>
  -<p>&nbsp;<font face=arial,helvetica size=+2>Beginning EJB programming using 
jBoss</font> </p>
  -<TABLE ALIGN="CENTER" BORDER=1 CELLSPACING=0 CELLPADDING=4>
  -  <tr> 
  -    <td>
  -      <p align=center><a href=jboss5.html > 
  -       BACK: Step 5: coding the test client </a></p>
  -    </td>
  -    <td>
  -      <p align=center><a href=jboss_linux_trail_index.html > contents </a></p>
  -    </td>
  -    <td> <a href=jboss7.html > 
  -      FORWARD: Step 7: compiling the test client as a servlet </a> </td>
  -  </tr>
  -</table>
  -<p> We're now ready to run the test client, but first a word of explanation. <br>
  -  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; In reality the client and the server are 
  -  likely to be on different computers. When you <i>compile</i> the client, the 
  -  compiler needs to know about the organization and methods of classes in the 
  -  Bean so it can do type checking. When you <i>run</i> the client, the run-time 
  -  engine needs to know about the Bean classes, because type-casting is done at 
  -  run-time. So when the client attempts to cast the remote reference to a reference 
  -  to an object of class <code>InterestHome</code> for example, it needs to know 
  -  about this class. This means that <i>you will need the Bean class files on both 
  -  the client and the server</i> even though they execute on the server. This is 
  -  fairly obvious if you think about the logic, but it causes all sorts of problems 
  -  for people who are new to RMI programming. If the client can't find the Bean 
  -  classes, you will get error messages like this: 
  -<pre>
  -javax.naming.CommunicationException [Root exception is
  -java.lang.ClassNotFoundException: com.web_tomorrow.interest.InterestHome]
  -</pre>
  -  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; A 'communication exception' is the exception 
that represents any error that can't 
  -readily be ascribed to a definite cause. If you get this message you need to pay 
  -attention to the CLASSPATH on the client. <br>
  -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If the client program is at the top of the 
  -directory hierarchy, with the Bean classes below it, then we can run it like this: 
  -<pre>
  -java -classpath $$CLASSPATH:\
  +     <font face="arial,helvetica" size="6" color="#ffcc00">Step 6: compiling and 
running the test client </font>
  +     <p>&nbsp;<font face="arial,helvetica" size="5">Beginning EJB programming using 
jBoss</font></p>
  +     <p>
  +     <table align="CENTER" border="1" cellspacing="0" cellpadding="4">
  +             <tr>
  +                     <td>
  +                             <center>
  +                                     <a href="jboss5.html">BACK: Step 5: coding the 
test client </a></center>
  +                     </td>
  +                     <td>
  +                             <center>
  +                                     <a 
href="jboss_linux_trail_index.html">contents </a></center>
  +                     </td>
  +                     <td><a href="jboss7.html">FORWARD: Step 7: compiling the test 
client as a servlet </a></td>
  +             </tr>
  +     </table>
  +     <p>We're now ready to run the test client, but first a word of explanation.<br>
  +     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; In reality the client and the server are 
likely to be on different computers. When you <i>compile</i> the client, the compiler 
needs to know about the organization and methods of classes in the Bean so it can do 
type checking. When you <i>run</i> the client, the run-time engine needs to know about 
the Bean classes, because type-casting is done at run-time. So when the client 
attempts to cast the remote reference to a reference to an object of class 
<code>InterestHome</code> for example, it needs to know about this class. This means 
that <i>you will need the Bean class files on both the client and the server</i> even 
though they execute on the server. This is fairly obvious if you think about the 
logic, but it causes all sorts of problems for people who are new to RMI programming. 
If the client can't find the Bean classes, you will get error messages like this:</p>
  +     <pre>javax.naming.CommunicationException [Root exception is
  +java.lang.ClassNotFoundException: com.web_tomorrow.interest.InterestHome]</pre>
  +     <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; A 'communication exception' is the 
exception that represents any error that can't readily be ascribed to a definite 
cause. If you get this message you need to pay attention to the CLASSPATH on the 
client.  NOTE&nbsp;that the server doesn't need to have the classpath set, you just 
need to put it in the deploy directory and the server will generate a ClassLoader for 
it.<br>
  +     <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If the client program is at the top of 
the directory hierarchy, with the Bean classes below it, then we can run it like 
this:</p>
  +     <pre>java -classpath $$CLASSPATH:\
   /usr/local/jboss/lib/ext/ejb.jar:/usr/local/jboss/client/jboss-client.jar \ 
  -InterestClient 
  -</pre>
  -  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Once again, this needs to go in a shell 
script or a Makefile; you won't want to 
  -type it more than once. <br>
  -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Note the long CLASSPATH; it needs to include 
  -the jBoss client classes and the EJB classes as well as the standard classpath 
  -(if any). <br>
  -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If all is well, the test client produces 
  -the following output: 
  -<TABLE BORDER=0 BGCOLOR="#FFFF80" CELLSPACING=4><TR><TD><pre>
  -Got context
  +InterestClient </pre>
  +     <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Once again, this needs to go in a 
shell script or a Makefile; you won't want to type it more than once.<br>
  +     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Note the long CLASSPATH; it needs to 
include the jBoss client classes and the EJB classes as well as the standard classpath 
(if any).<br>
  +     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If all is well, the test client produces 
the following output:
  +     <table border="0" bgcolor="#ffff80" cellspacing="4">
  +             <tr>
  +                     <td>
  +                             <pre>Got context
   Got reference
   Interest on 1000 units, at 10% per period, compounded over 2 periods is:
  -210.00000000000023
  -</pre></TD></TR></TABLE>
  -  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If it doesn't produce this output but you 
see a "MalformedURLException" try installing jboss in another directory that doesn't 
contain space in it's path (typically some installations on windows don't like 
C:\Program Files (the space).
  -<br>
  -  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Another common problem you can see here is a 
"class not found exception" make sure you include all the jars.
  -<br>
  -  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The Bean should produce an output on the 
server as well; this is to show that 
  -the Bean has executed on the server, not the client. Look for something like this 
  -in the server log: 
  -<TABLE BORDER=0 BGCOLOR="#FFFF80" CELLSPACING=4><TR><TD><pre>
  -[Interest] Someone called `calculateCompoundInterest!'
  -</pre></pre></TD></TR></TABLE>
  -  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Well, that's it. We covered coding, 
compiling and deploying the Bean, and coding 
  -and running a simple test client. If you found this article useful, drop me a 
  -line at <a
  -href=mailto:[EMAIL PROTECTED]>[EMAIL PROTECTED]</a>; if there's 
  -enough response I may be persuaded to produce some more sophisticated tutorials. 
  -<p> Kevin Boone, June 2000 
  -<p>
  -<TABLE ALIGN="CENTER" BORDER=1 CELLSPACING=0 CELLPADDING=4>
  -  <tr> 
  -    <td>
  -      <p align=center><a href=jboss5.html > 
  -       BACK: Step 5: coding the test client </a></p>
  -    </td>
  -    <td>
  -      <p align=center><a href=jboss_linux_trail_index.html > contents </a></p>
  -    </td>
  -    <td>
  -      <p align=center><a href=jboss7.html > 
  -        FORWARD: Step 7: compiling the test client as a servlet</a></p>
  -    </td>
  -  </tr>
  -</table>
  +210.00000000000023</pre>
  +                     </td>
  +             </tr>
  +     </table>
  +     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If it doesn't produce this output but you 
see a &quot;MalformedURLException&quot; try installing jboss in another directory that 
doesn't contain space in it's path (typically some installations on windows don't like 
C:\Program Files (the space).<br>
  +     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Another common problem you can see here 
is a &quot;class not found exception&quot; make sure you include all the jars.<br>
  +     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The Bean should produce an output on the 
server as well; this is to show that the Bean has executed on the server, not the 
client. Look for something like this in the server log:
  +     <table border="0" bgcolor="#ffff80" cellspacing="4">
  +             <tr>
  +                     <td>
  +                             <pre>[Interest] Someone called 
`calculateCompoundInterest!'</pre>
  +                             <p></pre></td>
  +             </tr>
  +     </table>
  +     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Well, that's it. We covered coding, 
compiling and deploying the Bean, and coding and running a simple test client. If you 
found this article useful, drop me a line at <a 
href="mailto:[EMAIL PROTECTED]">[EMAIL PROTECTED]</a>; if there's enough 
response I may be persuaded to produce some more sophisticated tutorials.
  +     <p>Kevin Boone, June 2000</p>
  +     <p>
  +     <table align="CENTER" border="1" cellspacing="0" cellpadding="4">
  +             <tr>
  +                     <td>
  +                             <center>
  +                                     <a href="jboss5.html">BACK: Step 5: coding the 
test client </a></center>
  +                     </td>
  +                     <td>
  +                             <center>
  +                                     <a 
href="jboss_linux_trail_index.html">contents </a></center>
  +                     </td>
  +                     <td>
  +                             <center>
  +                                     <a href="jboss7.html">FORWARD: Step 7: 
compiling the test client as a servlet</a></center>
  +                     </td>
  +             </tr>
  +     </table>
  +     </body>
   
  -</body>
   </html>
  
  
  
  1.2       +107 -112  jbossweb/jboss5.html
  
  Index: jboss5.html
  ===================================================================
  RCS file: /products/cvs/ejboss/jbossweb/jboss5.html,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- jboss5.html       2000/08/29 23:12:02     1.1
  +++ jboss5.html       2000/09/01 23:53:46     1.2
  @@ -1,47 +1,40 @@
   <html>
  -<head>
  -<title>
  -Step 5: coding the test client
  -</title>
  -
  -
  -</head>
  -
  -<p><font face=arial,helvetica size=+3 color="#ffcc00"> Step 5: coding the test 
client </font> </p>
  -<p>&nbsp;<font face=arial,helvetica size=+2>Beginning EJB programming using 
jBoss</font> </p>
  -<TABLE ALIGN="CENTER" BORDER=1 CELLSPACING=0 CELLPADDING=4>
  -  <tr> 
  -    <td>
  -      <p align=center><a href=jboss4.html > 
  -        BACK: Step 4: packaging and deploying the Bean </a></p>
  -    </td>
  -    <td>
  -      <p align=center><a href=jboss_linux_trail_index.html> contents </a></p>
  -    </td>
  -    <td>
  -      <p align=center><a href=jboss6.html > 
  -        FORWARD: Step 6: compiling and running the test client </a></p>
  -    </td>
  -  </tr>
  -</table>
  -<p> An EJB on its own is no use; we will need at least a simple client to use 
  -  its services. A user of EJBs may be another EJB, and ordinary JavaBean, a JSP 
  -  page, an applet, or a stand-alone application. In this example, for simplicity, 
  -  we will code a simple application. This application will create an object of 
  -  class Interest, and execute its one method. <br>
  -  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; I should point out straight away that the 
  -  test client I will present below does not illustrate how you should code this 
  -  sort of thing in practice; I've done it this way to show exactly what's going 
  -  on. In reality, you will probably want to separate out the RMI-specific stuff 
  -  into a separate class to divide the important functionality from the technical 
  -  details. This class is sometimes called a `stub'. Some EJB products will generate 
  -  stubs automatically. jBoss doesn't do this, so you'll have to code the stubs 
  -  yourself (it isn't difficult). <br>
  -  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Here is the test client: 
  -<p> <b>Test client: InterestClient.java</b> <br>
  -<hr>
  -<TABLE BORDER=0 BGCOLOR="#80FF80" CELLSPACING=4><TR><TD><PRE>
  -import javax.naming.*;
  +
  +     <head>
  +             <meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
  +             <meta name="generator" content="Adobe GoLive 4">
  +             <title>Step 5: coding the test client</title>
  +     </head>
  +
  +     <font face="arial,helvetica" size="6" color="#ffcc00">Step 5: coding the test 
client </font>
  +     <p>&nbsp;<font face="arial,helvetica" size="5">Beginning EJB programming using 
jBoss</font></p>
  +     <p>
  +     <table align="CENTER" border="1" cellspacing="0" cellpadding="4">
  +             <tr>
  +                     <td>
  +                             <center>
  +                                     <a href="jboss4.html">BACK: Step 4: packaging 
and deploying the Bean </a></center>
  +                     </td>
  +                     <td>
  +                             <center>
  +                                     <a 
href="jboss_linux_trail_index.html">contents </a></center>
  +                     </td>
  +                     <td>
  +                             <center>
  +                                     <a href="jboss6.html">FORWARD: Step 6: 
compiling and running the test client </a></center>
  +                     </td>
  +             </tr>
  +     </table>
  +     <p>An EJB on its own is no use; we will need at least a simple client to use 
its services. A user of EJBs may be another EJB, and ordinary JavaBean, a JSP page, an 
applet, or a stand-alone application. In this example, for simplicity, we will code a 
simple application. This application will create an object of class Interest, and 
execute its one method.<br>
  +     </p>
  +     <p>Upon &quot;deployment&quot; of the bean as we have seen in the previous 
step, the server has generated all the stubs and skeletons needed for the distributed 
calls. &nbsp;What we are going to cover here is the way you lookup a reference in 
JNDI&nbsp;from a client and invoke it. &nbsp;It is pretty straightforward.</p>
  +     <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Here is the test client:</p>
  +     <p><b>Test client: InterestClient.java</b><br>
  +     <hr>
  +     <table border="0" bgcolor="#80ff80" cellspacing="4">
  +             <tr>
  +                     <td>
  +                             <pre>import javax.naming.*;
   import com.web_tomorrow.interest.*;
   import java.util.Hashtable;
   import javax.rmi.PortableRemoteObject; 
  @@ -52,6 +45,8 @@
   implemented in the package `com.web_tomorrow.interest'. For this to work, the
   Bean must be deployed on an EJB server.
   <p>
  +</p>
  +
   <b>IMPORTANT</b> If you want to test this in a real client-server
   configuration, this class goes on the client; the URL of the naming provider
   specifed in the class must be changed from `localhost:1099' to the URL of the
  @@ -67,10 +62,10 @@
     public static void main(String[] args) {
       // Set up the naming provider; this may not always be necessary, depending
       // on how your Java system is configured.
  -    System.setProperty("java.naming.factory.initial", 
  -      "org.jnp.interfaces.NamingContextFactory");
  -    System.setProperty("java.naming.provider.url", 
  -      "localhost:1099");
  +    System.setProperty(&quot;java.naming.factory.initial&quot;, 
  +      &quot;org.jnp.interfaces.NamingContextFactory&quot;);
  +    System.setProperty(&quot;java.naming.provider.url&quot;, 
  +      &quot;localhost:1099&quot;);
   
       // Enclosing the whole process in a single `try' block is not an ideal way
       // to do exception handling, but I don't want to clutter the program up
  @@ -78,11 +73,15 @@
       try {
         // Get a naming context
         InitialContext jndiContext = new InitialContext();
  -      System.out.println("Got context");
  +      System.out.println(&quot;Got context&quot;);
   
         // Get a reference to the Interest Bean
  -      Object ref  = jndiContext.lookup("interest/Interest");
  -      System.out.println("Got reference");
  +      // This is in the case you use the jboss.xml to override the JNDI&nbsp;name
  +      Object ref  = jndiContext.lookup(&quot;interest/Interest&quot;);
  +      // If you didn't use the jboss.xml the following will work
  +      // Object ref = jndiContext.lookup(&quot;Interest&quot;);
  +
  +      System.out.println(&quot;Got reference&quot;);
   
         // Get a reference from this to the Bean's Home interface
         InterestHome home = (InterestHome) 
  @@ -93,72 +92,68 @@
   
         // call the calculateCompoundInterest() method to do the calculation
         System.out.println 
  -        ("Interest on 1000 units, at 10% per period, compounded over 2 periods 
is:");
  +        (&quot;Interest on 1000 units, at 10% per period, compounded over 2 periods 
is:&quot;);
         System.out.println (interest.calculateCompoundInterest (1000, 0.10, 2));
       } catch(Exception e) {
         System.out.println(e.toString());
       }
     }
  -}
  -</PRE></TD></TR></TABLE>
  -<hr>
  -<p> It's important to understand that in reality this client will be running on 
  -  a different computer to the Bean server. For testing you will probably run them 
  -  on the same computer, but it will still be using a network connection. So the 
  -  first part of the program indicates how to find the server. 
  -<TABLE BORDER=0 BGCOLOR="#80FF80" CELLSPACING=4><TR><TD><PRE>
  -  System.setProperty("java.naming.factory.initial", 
  -    "org.jnp.interfaces.NamingContextFactory");
  -  System.setProperty("java.naming.provider.url", 
  -    "localhost:1099");
  -</PRE></TD></TR></TABLE>
  -There are several other ways to do this, which you may see described in other 
  -articles. In this case, the server is on the same machine as the client 
(`localhost') 
  -and the default naming port is `1099' for jBoss (other servers may use different 
  -port numbers). If you run the client and the server on different machines, you 
  -will need to change these settings. <br>
  -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The comments in the program should describe 
  -how it works; one point that requires mention is that the recommended way to get 
  -a reference to the home interface on the server is like this: 
  -<TABLE BORDER=0 BGCOLOR="#80FF80" CELLSPACING=4><TR><TD><PRE>
  -InterestHome home = (InterestHome) 
  -     PortableRemoteObject.narrow (ref, InterestHome.class);
  -</PRE></TD></TR></TABLE>
  -which ensures compatibility with different RMI servers (e.g., CORBA). `narrow' 
  -ensures that the object returned in `ref' really can be converted to an object 
  -of class `InterestHome'. <br>
  -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The test client doesn't need to be in the 
  -same package as the EJB classes, and in practice it probably won't be. So it needs 
  -to import the EJB classes using their fully-qualified class name, like this: 
  -<TABLE BORDER=0 BGCOLOR="#80FF80" CELLSPACING=4><TR><TD><PRE>
  -import com.web_tomorrow.interest.*;
  -</PRE></TD></TR></TABLE>
  -You will also need to pay attention to the CLASSPATH when compiling. Even though 
  -the EJB classes will <i>run</i> on the server, they need to be identified to the 
  -client so that the compiler can do the appropriate type checking. In the example 
  -program I have put the client at the top level of the directory hierachy, so if 
  -the CLASSPATH includes the current directory it will correctly find the EJB classes 
  -which are in the directories beneath it. 
  -<pre>
  -javac -classpath usr/lib/jboss/lib/ext/ejb.jar:. InterestClient.java
  -</pre>
  -This generates InterestClient.class in the current directory. 
  -<p>
  -<TABLE ALIGN="CENTER" BORDER=1 CELLSPACING=0 CELLPADDING=4>
  -  <tr> 
  -    <td>
  -      <p align=center><a href=jboss4.html > 
  -        BACK: Step 4: packaging and deploying the Bean </a></p>
  -    </td>
  -    <td>
  -      <p align=center><a href=jboss_linux_trail_index.html> contents </a></p>
  -    </td>
  -    <td>
  -      <p align=center><a href=jboss6.html > 
  -        FORWARD: Step 6: compiling and running the test client </a></p>
  -    </td>
  -  </tr>
  -</table>
  +}</pre>
  +                     </td>
  +             </tr>
  +     </table>
  +     <hr>
  +     </p>
  +     <p>It's important to understand that in reality this client will be running on 
a different computer to the Bean server. For testing you will probably run them on the 
same computer, but it will still be using a network connection. So the first part of 
the program indicates how to find the server.
  +     <table border="0" bgcolor="#80ff80" cellspacing="4">
  +             <tr>
  +                     <td>
  +                             <pre>  
System.setProperty(&quot;java.naming.factory.initial&quot;, 
  +    &quot;org.jnp.interfaces.NamingContextFactory&quot;);
  +  System.setProperty(&quot;java.naming.provider.url&quot;, 
  +    &quot;localhost:1099&quot;);</pre>
  +                     </td>
  +             </tr>
  +     </table>
  +     There are several other ways to do this, which you may see described in other 
articles. In this case, the server is on the same machine as the client (`localhost') 
and the default naming port is `1099' for jBoss (other servers may use different port 
numbers). If you run the client and the server on different machines, you will need to 
change these settings.<br>
  +     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The comments in the program should 
describe how it works; one point that requires mention is that the recommended way to 
get a reference to the home interface on the server is like this:
  +     <table border="0" bgcolor="#80ff80" cellspacing="4">
  +             <tr>
  +                     <td>
  +                             <pre>InterestHome home = (InterestHome) 
  +     PortableRemoteObject.narrow (ref, InterestHome.class);</pre>
  +                     </td>
  +             </tr>
  +     </table>
  +     which ensures compatibility with different RMI servers (e.g., CORBA). `narrow' 
ensures that the object returned in `ref' really can be converted to an object of 
class `InterestHome'.<br>
  +     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The test client doesn't need to be in the 
same package as the EJB classes, and in practice it probably won't be. So it needs to 
import the EJB classes using their fully-qualified class name, like this:
  +     <table border="0" bgcolor="#80ff80" cellspacing="4">
  +             <tr>
  +                     <td>
  +                             <pre>import com.web_tomorrow.interest.*;</pre>
  +                     </td>
  +             </tr>
  +     </table>
  +     You will also need to pay attention to the CLASSPATH when compiling. Even 
though the EJB classes will <i>run</i> on the server, they need to be identified to 
the client so that the compiler can do the appropriate type checking. In the example 
program I have put the client at the top level of the directory hierachy, so if the 
CLASSPATH includes the current directory it will correctly find the EJB classes which 
are in the directories beneath it.</p>
  +     <pre>javac -classpath usr/lib/jboss/lib/ext/ejb.jar:. InterestClient.java</pre>
  +     <p>This generates InterestClient.class in the current directory.
  +     <p>
  +     <table align="CENTER" border="1" cellspacing="0" cellpadding="4">
  +             <tr>
  +                     <td>
  +                             <center>
  +                                     <a href="jboss4.html">BACK: Step 4: packaging 
and deploying the Bean </a></center>
  +                     </td>
  +                     <td>
  +                             <center>
  +                                     <a 
href="jboss_linux_trail_index.html">contents </a></center>
  +                     </td>
  +                     <td>
  +                             <center>
  +                                     <a href="jboss6.html">FORWARD: Step 6: 
compiling and running the test client </a></center>
  +                     </td>
  +             </tr>
  +     </table>
  +     </body>
   
  -</body>
   </html>
  
  
  
  1.2       +73 -88    jbossweb/jboss4.html
  
  Index: jboss4.html
  ===================================================================
  RCS file: /products/cvs/ejboss/jbossweb/jboss4.html,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- jboss4.html       2000/08/29 23:12:01     1.1
  +++ jboss4.html       2000/09/01 23:53:46     1.2
  @@ -1,106 +1,91 @@
   <html>
  -<head>
  -<title>
  -Step 4: packaging and deploying the Bean
  -</title>
   
  -</head>
  +     <head>
  +             <meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
  +             <meta name="generator" content="Adobe GoLive 4">
  +             <title>Step 4: packaging and deploying the Bean</title>
  +     </head>
   
  -<p><font face=arial,helvetica size=+3 color="#ffcc00"> Step 4: packaging and 
deploying 
  -the Bean </font> </p>
  -<p>&nbsp;<font face=arial,helvetica size=+2>Beginning EJB programming using 
jBoss</font> </p>
  -
  -<TABLE ALIGN="CENTER" BORDER=1 CELLSPACING=0 CELLPADDING=4>
  -  <tr> 
  -    <td>
  -      <p align=center><a href=jboss3.html >
  -        BACK: Step 3: the deployment descriptor </a></p>
  -    </td>
  -    <td>
  -      <p align=center><a href=jboss_linux_trail_index.html > contents </a></p>
  -    </td>
  -    <td>
  -      <p align=center><a href=jboss5.html>
  -        FORWARD: Step 5: coding the test client </a></p>
  -    </td>
  -  </tr>
  -</table>
  -<p> 
  -<p> Creation of the Bean package involves building a JAR archive containing the 
  -  classes and the XML files. For the example Bean we have been discussing, this 
  -  is straightforward; at the top of the directory hierarchy run <code>jar</code> 
  -  like this: 
  -<PRE>
  -jar cvf interest.jar com/web_tomorrow/interest/Interest.class \
  +     <font face="arial,helvetica" size="6" color="#ffcc00">Step 4: packaging and 
deploying the Bean </font>
  +     <p>&nbsp;<font face="arial,helvetica" size="5">Beginning EJB programming using 
jBoss</font></p>
  +     <p>
  +     <table align="CENTER" border="1" cellspacing="0" cellpadding="4">
  +             <tr>
  +                     <td>
  +                             <center>
  +                                     <a href="jboss3.html">BACK: Step 3: the 
deployment descriptor </a></center>
  +                     </td>
  +                     <td>
  +                             <center>
  +                                     <a 
href="jboss_linux_trail_index.html">contents </a></center>
  +                     </td>
  +                     <td>
  +                             <center>
  +                                     <a href="jboss5.html">FORWARD: Step 5: coding 
the test client </a></center>
  +                     </td>
  +             </tr>
  +     </table>
  +     <p>Creation of the Bean package involves building a JAR archive containing the 
classes and the XML files. For the example Bean we have been discussing, this is 
straightforward; at the top of the directory hierarchy run <code>jar</code> like 
this:</p>
  +     <pre>jar cvf interest.jar com/web_tomorrow/interest/Interest.class \
   com/web_tomorrow/interest/InterestHome.class \
   com/web_tomorrow/interest/InterestBean.class \
  -META-INF
  -</PRE>
  -If you have `make' on your system, and you have unpacked the source code arhive, 
  -you can get the same effect simply by executing `make package'. I strongly 
recommend 
  -using Makefiles or shell scripts to do these operations because in practice you 
  -will be repeating them many times during development <br>
  -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <code>jar</code> builds an archive containing 
  -the three classes, and the XML files in the META-INF directory. If you list the 
  -contents of the archive you should see something like this: 
  -<pre>
  -      0  06-16-00  11:34   META-INF/
  +META-INF</pre>
  +     <p>If you have `make' on your system, and you have unpacked the source code 
arhive, you can get the same effect simply by executing `make package'. I strongly 
recommend using Makefiles or shell scripts to do these operations because in practice 
you will be repeating them many times during development<br>
  +     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <code>jar</code> builds an archive 
containing the three classes, and the XML files in the META-INF directory. If you list 
the contents of the archive you should see something like this:
  +     <pre>      0  06-16-00  11:34   META-INF/
        72  06-16-00  11:35   META-INF/MANIFEST.MF
       248  06-16-00  10:12   com/web_tomorrow/interest/Interest.class
       300  06-16-00  10:12   com/web_tomorrow/interest/InterestHome.class
       877  06-16-00  10:12   com/web_tomorrow/interest/InterestBean.class
       549  06-15-00  18:15   META-INF/ejb-jar.xml
  -   3597  06-15-00  17:20   META-INF/jboss.xml
  -</pre>
  -Note that the directory structure must be <i>exactly</i> like this, or it won't 
  -work. <br>
  -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; To deploy the Bean on the server, all that's 
  -necessary is to copy the .jar file to the `deploy' directory on the server, e.g., 
  -<pre>
  -cp interest.jar /usr/local/jboss/deploy
  -</pre>
  -You can do this as often as you like; the server will detect that the file has 
  -changed and automatically re-deploy it. During deployment you should see the 
following 
  -messages from the server: 
  -<TABLE BORDER=0 BGCOLOR="#FFFF80" CELLSPACING=4><TR><TD><PRE>
  -[Auto deploy] Auto deploy of file:/usr/local/jboss/deploy/interest.jar
  +   3597  06-15-00  17:20   META-INF/jboss.xml</pre>
  +     <p>Note that the directory structure must be <i>exactly</i> like this, or it 
won't work.  Again a common mistake is to do a META_INF (underscore) instead of 
META-INF, be careful with this one<br>
  +     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; To deploy the Bean on the server, all 
that's necessary is to copy the .jar file to the `deploy' directory on the server, 
e.g.,
  +     <pre>cp interest.jar /usr/local/jboss/deploy</pre>
  +     <p>You can do this as often as you like; the server will detect that the file 
has changed and automatically re-deploy it. During deployment you should see the 
following messages from the server:
  +     <table border="0" bgcolor="#ffff80" cellspacing="4">
  +             <tr>
  +                     <td>
  +                             <pre>[Auto deploy] Auto deploy of 
file:/usr/local/jboss/deploy/interest.jar
   [Container factory] Deploying:file:/usr/local/jboss/deploy/interest.jar
   [Container factory] Deploying Interest
   [Container factory] Started: Interest
   [Container factory] Bound Interest to interest/Interest
   [Container factory] Deployed application:
  -file:/usr/local/jboss/deploy/interest.jar
  -</PRE></TD></TR></TABLE>
  -If you see a message like this: 
  -<TABLE BORDER=0 BGCOLOR="#FFFF80" CELLSPACING=4><TR><TD><PRE>
  -[Container factory] Deploying:file:/usr/local/jboss/deploy/interest.jar
  +file:/usr/local/jboss/deploy/interest.jar</pre>
  +                     </td>
  +             </tr>
  +     </table>
  +     If you see a message like this:
  +     <table border="0" bgcolor="#ffff80" cellspacing="4">
  +             <tr>
  +                     <td>
  +                             <pre>[Container factory] 
Deploying:file:/usr/local/jboss/deploy/interest.jar
   [Container factory] Deployed application:
  -file:/usr/local/jboss/deploy/interest.jar
  -</PRE></TD></TR></TABLE>
  -then no Beans have been deployed -- the server always reports the Beans that it 
  -detects. This usually means that the deployment descriptor <code>ejb-jar.xml</code> 
  -is badly structured, or missing, or in the wrong directory. Note that you 
<i>can</i> 
  -deploy without a <code>jboss.xml</code> file; the server will use defaults for 
  -all its settings. In simple cases you may get away with this. <br>
  -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If everything has gone according to plan, 
  -you should now have a Bean deployed on the server. We will now create a simple 
  -test client that runs one of its methods, just to prove that it's working. 
  -<p>&nbsp;</p>
  -<TABLE ALIGN="CENTER" BORDER=1 CELLSPACING=0 CELLPADDING=4>
  -  <tr> 
  -    <td>
  -      <p align=center><a href=jboss3.html >
  -        BACK: Step 3: the deployment descriptor </a></p>
  -    </td>
  -    <td>
  -      <p align=center><a href=jboss_linux_trail_index.html > contents </a></p>
  -    </td>
  -    <td>
  -      <p align=center><a href=jboss5.html>
  -        FORWARD: Step 5: coding the test client </a></p>
  -    </td>
  -  </tr>
  -</table>
  +file:/usr/local/jboss/deploy/interest.jar</pre>
  +                     </td>
  +             </tr>
  +     </table>
  +     then no Beans have been deployed -- the server always reports the Beans that 
it detects. This usually means that the deployment descriptor <code>ejb-jar.xml</code> 
is badly structured, or missing, or in the wrong directory. Note that the server 
doesn't need to have the CLASSPATH&nbsp;set with your classes it is done automatically 
from the deploy directory.<br>
  +     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If everything has gone according to plan, 
you should now have a Bean deployed on the server. We will now create a simple test 
client that runs one of its methods, just to prove that it's working.
  +     <p>&nbsp;</p>
  +     <p>
  +     <table align="CENTER" border="1" cellspacing="0" cellpadding="4">
  +             <tr>
  +                     <td>
  +                             <center>
  +                                     <a href="jboss3.html">BACK: Step 3: the 
deployment descriptor </a></center>
  +                     </td>
  +                     <td>
  +                             <center>
  +                                     <a 
href="jboss_linux_trail_index.html">contents </a></center>
  +                     </td>
  +                     <td>
  +                             <center>
  +                                     <a href="jboss5.html">FORWARD: Step 5: coding 
the test client </a></center>
  +                     </td>
  +             </tr>
  +     </table>
  +     </body>
   
  -</body>
   </html>
  
  
  
  1.2       +91 -174   jbossweb/jboss3.html
  
  Index: jboss3.html
  ===================================================================
  RCS file: /products/cvs/ejboss/jbossweb/jboss3.html,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- jboss3.html       2000/08/29 23:12:01     1.1
  +++ jboss3.html       2000/09/01 23:53:46     1.2
  @@ -1,46 +1,38 @@
   <html>
  -<head>
  -<title>
  -Step 3: the deployment descriptor
  -</title>
   
  +     <head>
  +             <meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
  +             <meta name="generator" content="Adobe GoLive 4">
  +             <title>Step 3: the deployment descriptor</title>
  +     </head>
   
  -</head>
  -
  -<p><font face=arial,helvetica size=+3 color="#ffcc00"> Step 3: the deployment 
descriptor 
  -  </font> </p>
  -<p>&nbsp; <font face=arial,helvetica size=+2>Beginning EJB programming using 
jBoss</font> 
  -</p>
  -<TABLE ALIGN="CENTER" BORDER=1 CELLSPACING=0 CELLPADDING=4>
  -  <tr> 
  -    <td>
  -      <p align=center><a href=jboss2.html> 
  -        BACK: Step 2: creating the Bean </a></p>
  -    </td>
  -    <td>
  -      <p align=center><a href=jboss_linux_trail_index.html> contents </a></p>
  -    </td>
  -    <td>
  -      <p align=center><a href=jboss4.html> 
  -        FORWARD: Step 4: packaging and deploying the Bean </a></p>
  -    </td>
  -  </tr>
  -</table>
  -<p> 
  -<p> Now it's time to create
  -the deployment descriptor. As a reminder, this file 
  -  tells the EJB server which classes form the Bean, the home interface and the 
  -  remote interface. If there is more than one Bean in the package, it indicates 
  -  also how the Beans interact with one another. In this simple example, there 
  -  is only one Bean so we won't need to worry about that part. <br>
  -  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Most commercial EJB servers are supplied 
  -  with graphical tools for constructing the deployment descriptor. jBoss does 
  -  have an XML editor, but it's just as easy to construct the deployment descriptor 
  -  manually. Here it is: 
  -<p> <b>ejb-jar.xml: deployment descriptor for the Interest Bean</b><br>
  -<hr>
  -<TABLE BORDER=0 BGCOLOR="#80FF80" CELLSPACING=4><TR><TD><PRE>
  -&lt;?xml version="1.0" encoding="Cp1252"?&gt;
  +     <font face="arial,helvetica" size="6" color="#ffcc00">Step 3: the deployment 
descriptor </font>
  +     <p>&nbsp; <font face="arial,helvetica" size="5">Beginning EJB programming 
using jBoss</font></p>
  +     <p>
  +     <table align="CENTER" border="1" cellspacing="0" cellpadding="4">
  +             <tr>
  +                     <td>
  +                             <center>
  +                                     <a href="jboss2.html">BACK: Step 2: creating 
the Bean </a></center>
  +                     </td>
  +                     <td>
  +                             <center>
  +                                     <a 
href="jboss_linux_trail_index.html">contents </a></center>
  +                     </td>
  +                     <td>
  +                             <center>
  +                                     <a href="jboss4.html">FORWARD: Step 4: 
packaging and deploying the Bean </a></center>
  +                     </td>
  +             </tr>
  +     </table>
  +     <p>Now it's time to create the deployment descriptor. As a reminder, this file 
tells the EJB server which classes form the Bean, the home interface and the remote 
interface. If there is more than one Bean in the package, it indicates also how the 
Beans interact with one another. In this simple example, there is only one Bean so we 
won't need to worry about that part.<br>
  +     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Most commercial EJB servers are supplied 
with graphical tools for constructing the deployment descriptor. jBoss does have an 
XML editor, but it's just as easy to construct the deployment descriptor manually. 
Here it is:</p>
  +     <p><b>ejb-jar.xml: deployment descriptor for the Interest Bean</b><br>
  +     <hr>
  +     <table border="0" bgcolor="#80ff80" cellspacing="4">
  +             <tr>
  +                     <td>
  +                             <pre>&lt;?xml version=&quot;1.0&quot; 
encoding=&quot;Cp1252&quot;?&gt;
     &lt;ejb-jar&gt;
        &lt;description&gt;jBoss test application&lt;/description&gt;
        &lt;display-name&gt;Test&lt;/display-name&gt;
  @@ -54,145 +46,70 @@
         &lt;transaction-type&gt;Bean&lt;/transaction-type&gt;
          &lt;/session&gt;
        &lt;/enterprise-beans&gt;
  -   &lt;/ejb-jar&gt;
  -</PRE></TD></TR></TABLE>
  -<hr>
  -The deployment descriptor must be called <code>ejb-jar.xml</code> and it must 
  -be in the directory <code>./META-INF</code>. A common mistake is to name this 
  -directory `META_INF' (with an underscore, rather than a dash), which won't work. 
  -<br>
  -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; In principle what we deploy on the server 
  -is an application, not a Bean. In this example our application consists of exactly 
  -one Bean, so it comes to the same thing. In the deployment descriptor, the section 
  -<pre>
  -&lt;ejb-name&gt;Interest&lt;/ejb-name&gt;
  -</pre>
  -assigns a name to the Bean; in practice client applications won't use this name, 
  -they will use the Bean's JNDI name, which is assigned in a different file. The 
  -JNDI name will often be in the form `[application name]/[bean name]', which is 
  -what we shall use later. <br>
  -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Although the deployment
  -descriptor format
  - 
  -is common to all EJB servers, it doesn't provide all the information that the 
  -server needs to deploy the bean. Specifically it does not know how to map package 
  -names to JNDI names. The server may also need to be told how to manage persistence 
  -and state. There is, as yet, no standard way of specifying these things, and every 
  -server implementation does it differently. There isn't even a standard <i>name</i> 
  -for this procedure. The approach taken by jBoss is that the Bean package should 
  -provide an additional XML file, called <code>jboss.xml</code> in the same directory 
  -as the deployment descriptor. The format of <code>jboss.xml</code> is largely 
  -undocumented, but it's straightforward. The first part of the file lists the Beans 
  -and their JNDI names, and refers to configuration sections in the second part 
  -of the file. It should only be necessary to edit the first part. In the listings 
  -below I have divided the <code>jboss.xml</code> file into two parts to make the 
  -distinction clear; of course you need both these parts in the same file in 
practice. 
  -<p> <b>jboss.xml: first part (this bit provided by the Bean developer)</b><br>
  -<hr>
  -<TABLE BORDER=0 BGCOLOR="#80FF80" CELLSPACING=4><TR><TD><PRE>
  -&lt;jboss&gt;
  +   &lt;/ejb-jar&gt;</pre>
  +                     </td>
  +             </tr>
  +     </table>
  +     <hr>
  +     The deployment descriptor must be called <code>ejb-jar.xml</code> and it must 
be in the directory <code>./META-INF</code>. A common mistake is to name this 
directory `META_INF' (with an underscore, rather than a dash), which won't work.<br>
  +     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; In principle what we deploy on the server 
is an application, not a Bean. In this example our application consists of exactly one 
Bean, so it comes to the same thing. In the deployment descriptor, the section</p>
  +     <pre>&lt;ejb-name&gt;Interest&lt;/ejb-name&gt;</pre>
  +     <p>assigns a name to the Bean.  jboss in its standard configuration will put 
the bean's home interface under the ejb-name moniker if you don't specify anything 
else.  In other words, when your applications want to access the bean through it's 
home jboss will put it in JNDI&nbsp;under the ejb-name.  
  +     <p>In practice client applications are not forced to use this name.  Typically 
a developer will not bother with specifying a different name for the 
JNDI&nbsp;namespace.   However a production installation of a complete application 
comprising many beans, will usually use a different name than the one specified by the 
developer.   Typically it could use `[application name]/[bean name]', which is what we 
shall use later.<br>
  +     </p>
  +     <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Although the deployment descriptor 
format of the ejb-jar.xml file is common to all EJB servers, and precisely defined in 
a DTD you can get from SUN, it doesn't specify some advanced stuff. Specifically it 
does not know how to map ejb-name to a deployment JNDI&nbsp;such as the one we just 
talked about.  It also doesn't know how to map resources. The server may also need to 
be told how to manage persistence and state. There is, as yet, no standard way of 
specifying these things, and every server implementation does it differently. </p>
  +     <p>The approach taken by jBoss is it provides a standard behaviour that works 
mostly from the ejb-jar.xml file.  There is no need for additional information in most 
cases.  In case of advanced configurations we define the jboss.xml file that gives all 
the relevant information to the container, such as JNDI mapping names, persistence 
information, database mapping and advanced container configuration (interceptors and 
plugins), please refer to the chapter on jboss.xml for detailed information of what it 
can do, we will cover simple things here. <br>
  +     </p>
  +     <p>The standard behaviour of jboss is capable of working from ejb-jar.xml in 
95% of cases and needs jboss.xml only if you need to specify specific deployment 
information.  </p>
  +     <p>An additional feature of the new metadata is that it works 
&quot;differentially&quot;.  In clear what this means is that if you wish to override 
the name of a bean you need to only specify that part of xml tags in the jboss.xml 
file.</p>
  +     <p></p>
  +     <p><b>Using the ejb-name from ejb-jar.xml</b></p>
  +     <p>for most development purposes, as soon as you provide a ejb-jar.xml with 
the beans the container will get the ejb-name as the JNDI&nbsp;name as standard 
behaviour. &nbsp;This makes your development life easier.</p>
  +     <p>If you don't provide a jboss.xml file you will find your bean under the 
name &quot;Interest&quot;.</p>
  +     <p><b>Overriding ejb-name with a real JNDI name in jboss.xml</b></p>
  +     <p>If in deployment you would rather use the &quot;myApp/myBean&quot; naming 
pattern you need to provide the following text in jboss.xml.  </p>
  +     <p><b>jboss.xml:  (Optional, this bit provided by the Bean deployer)</b><br>
  +     <hr>
  +     <table border="0" bgcolor="#80ff80" cellspacing="4">
  +             <tr>
  +                     <td>
  +                             <pre>&lt;jboss&gt;
     &lt;enterprise-beans&gt;
       &lt;session&gt;
         &lt;ejb-name&gt;Interest&lt;/ejb-name&gt;
         &lt;jndi-name&gt;interest/Interest&lt;/jndi-name&gt;
  -      &lt;configuration-name&gt;Default Stateless 
SessionBean&lt;/configuration-name&gt;
       &lt;/session&gt;
       &lt;secure&gt;false&lt;/secure&gt;
  -  &lt;/enterprise-beans&gt;
  -</PRE></TD></TR></TABLE>
  -<hr>
  -<p> All this file says is that the Bean called <code>Interest</code> is assigned 
  -  the JNDI name of <code>interest/Interest</code> and has the server configuration 
  -  <code>Default Stateless SessionBean</code>. This configuration refers to a 
section 
  -  in the second part of the file. I don't know in detail what this section does, 
  -  and I don't particularly want to! Here it is, anyway: 
  -<p> <b>jboss.xml: second part (this bit should not need to be edited)</b><br>
  -<hr>
  -<TABLE BORDER=0 BGCOLOR="#80FF80" CELLSPACING=4><TR><TD><PRE>
  -  &lt;resource-managers /&gt;
  -  &lt;container-configurations&gt;
  -    &lt;container-configuration 
configuration-class="org.jboss.ejb.deployment.EntityContainerConfiguration"&gt;
  -      &lt;container-name&gt;BMP EntityBean&lt;/container-name&gt;
  -      
&lt;container-invoker&gt;org.jboss.ejb.plugins.jrmp13.server.JRMPContainerInvoker&lt;/container-invoker&gt;
  -      
&lt;instance-pool&gt;org.jboss.ejb.plugins.EntityInstancePool&lt;/instance-pool&gt;
  -      
&lt;instance-cache&gt;org.jboss.ejb.plugins.NoPassivationEntityInstanceCache&lt;/instance-cache&gt;
  -      
&lt;persistence-manager&gt;org.jboss.ejb.plugins.BMPPersistenceManager&lt;/persistence-manager&gt;
  -      &lt;transaction-manager&gt;org.jboss.tm.TxManager&lt;/transaction-manager&gt;
  -      &lt;container-invoker-conf&gt;
  -        &lt;Optimized&gt;False&lt;/Optimized&gt;
  -      &lt;/container-invoker-conf&gt;
  -      &lt;container-cache-conf /&gt;
  -      &lt;container-pool-conf&gt;
  -        &lt;MaximumSize&gt;100&lt;/MaximumSize&gt;
  -        &lt;MinimumSize&gt;10&lt;/MinimumSize&gt;
  -      &lt;/container-pool-conf&gt;
  -       &lt;/container-configuration&gt;
  -       &lt;container-configuration 
configuration-class="org.jboss.ejb.deployment.StatelessSessionContainerConfiguration"&gt;
  -      &lt;container-name&gt;Singleton Stateless SessionBean&lt;/container-name&gt;
  -      
&lt;container-invoker&gt;org.jboss.ejb.plugins.jrmp13.server.JRMPContainerInvoker&lt;/container-invoker&gt;
  -      
&lt;instance-pool&gt;org.jboss.ejb.plugins.SingletonStatelessSessionInstancePool&lt;/instance-pool&gt;
  -      &lt;instance-cache&gt;&lt;/instance-cache&gt;
  -      &lt;persistence-manager&gt;&lt;/persistence-manager&gt;
  -      &lt;transaction-manager&gt;org.jboss.tm.TxManager&lt;/transaction-manager&gt;
  -      &lt;container-invoker-conf&gt;
  -        &lt;Optimized&gt;False&lt;/Optimized&gt;
  -      &lt;/container-invoker-conf&gt;
  -       &lt;/container-configuration&gt;
  -       &lt;container-configuration 
configuration-class="org.jboss.ejb.deployment.EntityContainerConfiguration"&gt;
  -      &lt;container-name&gt;CMP EntityBean&lt;/container-name&gt;
  -      
&lt;container-invoker&gt;org.jboss.ejb.plugins.jrmp13.server.JRMPContainerInvoker&lt;/container-invoker&gt;
  -      
&lt;instance-pool&gt;org.jboss.ejb.plugins.EntityInstancePool&lt;/instance-pool&gt;
  -      
&lt;instance-cache&gt;org.jboss.ejb.plugins.NoPassivationEntityInstanceCache&lt;/instance-cache&gt;
  -      
&lt;persistence-manager&gt;org.jboss.ejb.plugins.jaws.JAWSPersistenceManager&lt;/persistence-manager&gt;
  -      &lt;transaction-manager&gt;org.jboss.tm.TxManager&lt;/transaction-manager&gt;
  -      &lt;container-invoker-conf&gt;
  -        &lt;Optimized&gt;False&lt;/Optimized&gt;
  -      &lt;/container-invoker-conf&gt;
  -      &lt;container-cache-conf /&gt;
  -      &lt;container-pool-conf&gt;
  -        &lt;MaximumSize&gt;100&lt;/MaximumSize&gt;
  -        &lt;MinimumSize&gt;10&lt;/MinimumSize&gt;
  -      &lt;/container-pool-conf&gt;
  -       &lt;/container-configuration&gt;
  -       &lt;container-configuration 
configuration-class="org.jboss.ejb.deployment.StatelessSessionContainerConfiguration"&gt;
  -      &lt;container-name&gt;Default Stateless SessionBean&lt;/container-name&gt;
  -      
&lt;container-invoker&gt;org.jboss.ejb.plugins.jrmp13.server.JRMPContainerInvoker&lt;/container-invoker&gt;
  -      
&lt;instance-pool&gt;org.jboss.ejb.plugins.StatelessSessionInstancePool&lt;/instance-pool&gt;
  -      &lt;instance-cache&gt;&lt;/instance-cache&gt;
  -      &lt;persistence-manager&gt;&lt;/persistence-manager&gt;
  -      &lt;transaction-manager&gt;org.jboss.tm.TxManager&lt;/transaction-manager&gt;
  -      &lt;container-invoker-conf&gt;
  -        &lt;Optimized&gt;False&lt;/Optimized&gt;
  -      &lt;/container-invoker-conf&gt;
  -      &lt;container-pool-conf&gt;
  -        &lt;MaximumSize&gt;100&lt;/MaximumSize&gt;
  -        &lt;MinimumSize&gt;10&lt;/MinimumSize&gt;
  -      &lt;/container-pool-conf&gt;
  -       &lt;/container-configuration&gt;
  -     &lt;/container-configurations&gt;
  -   &lt;/jboss&gt;
  -</PRE></TD></TR></TABLE>
  -<hr>
  -<p> <br>
  -  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; So now we've got the deployment descriptor 
  -  <code>ejb-jar.xml</code>, the run-time configuration file <code>jboss.xml</code> 
  -  and the classes. It's time to package them together. 
  -<p>&nbsp; </p>
  -<TABLE ALIGN="CENTER" BORDER=1 CELLSPACING=0 CELLPADDING=4>
  -  <tr> 
  -    <td>
  -      <p align=center><a href=jboss2.html> 
  -        BACK: Step 2: creating the Bean </a></p>
  -    </td>
  -    <td>
  -      <p align=center><a href=jboss_linux_trail_index.html> contents </a></p>
  -    </td>
  -    <td>
  -      <p align=center><a href=jboss4.html> 
  -        FORWARD: Step 4: packaging and deploying the Bean </a></p>
  -    </td>
  -  </tr>
  -</table>
  +  &lt;/enterprise-beans&gt;</pre>
  +                     </td>
  +             </tr>
  +     </table>
  +     <hr>
  +     </p>
  +     <p>All this file says is that the Bean called <code>Interest</code> is 
assigned the JNDI name of <code>interest/Interest</code>.</p>
  +     <p>The indentation is just there for formatting and readability, it is non 
important.
  +     <hr>
  +     </p>
  +     <p><br>
  +     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; So now we've got the deployment 
descriptor <code>ejb-jar.xml</code>.  Again jboss will happily run just from that file 
and bind the object under &quot;Interest&quot; as standard JNDI&nbsp;name.  We also 
have the optional jboss.xml to provide another name &quot;interest/Interest&quot; to 
overwrite the standard behaviour with JNDI.  We also have the classes. It's time to 
package them together.</p>
  +     <p>&nbsp;</p>
  +     <p>
  +     <table align="CENTER" border="1" cellspacing="0" cellpadding="4">
  +             <tr>
  +                     <td>
  +                             <center>
  +                                     <a href="jboss2.html">BACK: Step 2: creating 
the Bean </a></center>
  +                     </td>
  +                     <td>
  +                             <center>
  +                                     <a 
href="jboss_linux_trail_index.html">contents </a></center>
  +                     </td>
  +                     <td>
  +                             <center>
  +                                     <a href="jboss4.html">FORWARD: Step 4: 
packaging and deploying the Bean </a></center>
  +                     </td>
  +             </tr>
  +     </table>
  +     </body>
   
  -</body>
   </html>
  
  
  
  1.2       +113 -156  jbossweb/jboss2.html
  
  Index: jboss2.html
  ===================================================================
  RCS file: /products/cvs/ejboss/jbossweb/jboss2.html,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- jboss2.html       2000/08/29 23:12:00     1.1
  +++ jboss2.html       2000/09/01 23:53:46     1.2
  @@ -1,91 +1,57 @@
   <html>
  -<head>
  -<title>
  -Step 2: creating the Bean
  -</title>
  -</head>
  -
  -<p><font face=arial,helvetica size=+3 color="#ffcc00"> Step 2: creating the Bean 
  -  </font> </p>
  -<p>&nbsp; <font face=arial,helvetica size=+2>Beginning EJB programming using 
jBoss</font> 
  -</p>
  -<TABLE ALIGN="CENTER" BORDER=1 CELLSPACING=0 CELLPADDING=4>
  -  <tr> 
  -    <td>
  -      <p align=center><a href=jboss1.html> 
  -        BACK: Step 1: installing jBoss </a></p>
  -    </td>
  -    <td>
  -      <p align=center><a href=jboss_linux_trail_index.html> contents </a></p>
  -    </td>
  -    <td>
  -      <p align=center><a href=jboss3.html> 
  -        FORWARD: Step 3: the deployment descriptor </a></p>
  -    </td>
  -  </tr>
  -</table>
  -<p> 
  -<p> In this step we will write and compile a simple Enterprise JavaBean. You can 
  -  <a href=/interestEJB.tar.gz>download the source code</a> 
<code>interestEJB.tar.gz</code> 
  -  for this example; you will need to unpack it into an empty directory.   
  -<pre>
  -cd /usr/local/jboss
  +
  +     <head>
  +             <meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
  +             <meta name="generator" content="Adobe GoLive 4">
  +             <title>Step 2: creating the Bean</title>
  +     </head>
  +
  +     <font face="arial,helvetica" size="6" color="#ffcc00">Step 2: creating the 
Bean </font>
  +     <p>&nbsp; <font face="arial,helvetica" size="5">Beginning EJB programming 
using jBoss</font></p>
  +     <p>
  +     <table align="CENTER" border="1" cellspacing="0" cellpadding="4">
  +             <tr>
  +                     <td>
  +                             <center>
  +                                     <a href="jboss1.html">BACK: Step 1: installing 
jBoss </a></center>
  +                     </td>
  +                     <td>
  +                             <center>
  +                                     <a 
href="jboss_linux_trail_index.html">contents </a></center>
  +                     </td>
  +                     <td>
  +                             <center>
  +                                     <a href="jboss3.html">FORWARD: Step 3: the 
deployment descriptor </a></center>
  +                     </td>
  +             </tr>
  +     </table>
  +     <p>In this step we will write and compile a simple Enterprise JavaBean. You 
can <a href="/interestEJB.tar.gz">download the source code</a> 
<code>interestEJB.tar.gz</code> for this example; you will need to unpack it into an 
empty directory.</p>
  +     <pre>cd /usr/local/jboss
   mkdir examples
   cd examples
  -lynx -source http://jboss.org/interestEJB.tar.gz > interestEJB.tar.gz
  +lynx -source http://jboss.org/interestEJB.tar.gz &gt; interestEJB.tar.gz
   gunzip interestEJB.tar.gz
   tar xf interestEJB.tar
  -rm -rf interestEJB.tar
  -</pre>
  -  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The example 
  -  -- which is called `Interest' -- is about as simple as an EJB can get: it is 
  -  a `stateless session bean'. Its job is to calculate the amount of compound 
interest 
  -  payable on a sum of money borrowed over a specified term with a specified 
interest 
  -  rate. In fact, there is only one functional line of code in the whole package. 
  -  <br>
  -  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If you want to compile the classes yourself, 
  -  you'll need to create a directory hierarchy that reflects the structure of the 
  -  pacakage. The package in this example is <code>com.web_tomorrow.interest</code> 
  -  so you'll need to create the directory structure: 
  -<pre>
  -com
  +rm -rf interestEJB.tar</pre>
  +     <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The example -- which is called 
`Interest' -- is about as simple as an EJB can get: it is a `stateless session bean'. 
Its job is to calculate the amount of compound interest payable on a sum of money 
borrowed over a specified term with a specified interest rate. In fact, there is only 
one functional line of code in the whole package.<br>
  +     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If you want to compile the classes 
yourself, you'll need to create a directory hierarchy that reflects the structure of 
the pacakage. The package in this example is <code>com.web_tomorrow.interest</code> so 
you'll need to create the directory structure:
  +     <pre>com
       web_tomorrow
           interest
  -            {java source and class files here}
  -</pre>
  -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If you unpack the archive 
<code>interestEJB.tar.gz</code> it will create this 
  -structure automatically. 
  -<p> <font face=helvetica,arial size=+2>EJBs: review</font> 
  -<p> As a reminder, and Enterprise JavaBean has a minimum of three classes. 
  -<ul>
  -  <li>The remote interface. This is the class that exposes the methods of the 
  -    Bean to the outside world. In the example, the remote interface is the class 
  -    <code>com.web_tomorrow.interest.Interest</code> 
  -  <li>The Bean class. This implements the methods specified by the remote 
interface. 
  -    In this example, the Bean class is 
<code>com.web_tomorrow.interest.InterestBean</code> 
  -  <li>The home interface. This specifies how a new Bean is created, managed and 
  -    deleted. As a minimum it should specify at least one <code>create()</code> 
  -    method. There should be an <code>ejbCreate()</code> method in the Bean class 
  -    for each <code>create()</code> method in the home interface. In this example, 
  -    the home interface is <code>com.web_tomorrow.InterestHome</code> 
  -</ul>
  -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Of course, a Bean can include other classes, 
or even other packages, but the classes 
  -listed above are the minimum. The classes must be packaged into a JAR archive 
  -with a directory structure that reflects the hierarchy of packages. In the example, 
  -the classes are in the package <code>com.web_tomorrow.interest</code>, so they 
  -need to be in the directory 
  -<pre>
  -./com/web_tomorrow/interest/
  -</pre>
  -where the `.' represents the current working directory, wherever that is. You 
  -will also need a directory called <code>META-INF</code> to store the deployment 
  -descriptor (always called <code>ejb-jar.xml</code>) and -- optionally -- another 
  -XML file to tell the server about name mappings. With jBoss, this file must be 
  -called <code>jboss.xml</code>. <br>
  -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; So before writing the classes, we need a 
  -directory structure like this: 
  -<pre>
  -
  +            {java source and class files here}</pre>
  +     <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If you unpack the archive 
<code>interestEJB.tar.gz</code> it will create this structure automatically.
  +     <p><font face="helvetica,arial" size="5">EJBs: review</font></p>
  +     <p>As a reminder, and Enterprise JavaBean has a minimum of three classes.</p>
  +     <ul>
  +             <li>The remote interface. This is the class that exposes the methods 
of the Bean to the outside world. In the example, the remote interface is the class 
<code>com.web_tomorrow.interest.Interest</code>
  +             <li>The Bean class. This implements the methods specified by the 
remote interface. In this example, the Bean class is 
<code>com.web_tomorrow.interest.InterestBean</code>
  +             <li>The home interface. This specifies how a new Bean is created, 
managed and deleted. As a minimum it should specify at least one <code>create()</code> 
method. There should be an <code>ejbCreate()</code> method in the Bean class for each 
<code>create()</code> method in the home interface. In this example, the home 
interface is <code>com.web_tomorrow.InterestHome</code>
  +     </ul>
  +     <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Of course, a Bean can include other 
classes, or even other packages, but the classes listed above are the minimum. The 
classes must be packaged into a JAR archive with a directory structure that reflects 
the hierarchy of packages. In the example, the classes are in the package 
<code>com.web_tomorrow.interest</code>, so they need to be in the directory
  +     <pre>./com/web_tomorrow/interest/</pre>
  +     <p>where the `.' represents the current working directory, wherever that is. 
You will also need a directory called <code>META-INF</code> to store the deployment 
descriptor (always called <code>ejb-jar.xml</code>) and -- optionally -- another XML 
file to tell the server about name mappings. With jBoss, this file must be called 
<code>jboss.xml</code>.<br>
  +     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; So before writing the classes, we need a 
directory structure like this:
  +     <pre>
   com
       web_tomorrow
           interest
  @@ -93,25 +59,19 @@
   
   META-INF
        ejb-jar.xml
  -     jboss.xml
  -
  +     jboss.xml (optional)
   </pre>
  -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If the <code>jar</code> utility is run at the 
top level of this directory structure, 
  -it will put the files in the right ordering in the archive. We will discuss the 
  -creation of the XML files later. <br>
  -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Of course, in your own work you will create 
  -a directory hierarchy that reflect the package hierarchy you need, rather than 
  -`com.web_tomorrow.XXXX' 
  -<p> <font face=helvetica,arial size=+2>Coding the classes</font> 
  -<p> We need three classes: the remote interface, the Bean, and the home interface. 
  -  All the .java files will go in the subdirectory 
<code>./com/web_tomorrow/interest</code> 
  -  <br>
  -  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The remote interface in this example is 
  -  very simple. 
  -<p> <b>Interest.java: remote interface for the `interest' EJB</b> <br>
  -<hr>
  -<TABLE BORDER=0 BGCOLOR="#80FF80" CELLSPACING=4><TR><TD><PRE>
  -package com.web_tomorrow.interest;
  +     <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If the <code>jar</code> utility is run 
at the top level of this directory structure, it will put the files in the right 
ordering in the archive. We will discuss the creation of the XML files later.<br>
  +     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Of course, in your own work you will 
create a directory hierarchy that reflect the package hierarchy you need, rather than 
`com.web_tomorrow.XXXX'
  +     <p><font face="helvetica,arial" size="5">Coding the classes</font></p>
  +     <p>We need three classes: the remote interface, the Bean, and the home 
interface. All the .java files will go in the subdirectory 
<code>./com/web_tomorrow/interest</code><br>
  +     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The remote interface in this example is 
very simple.</p>
  +     <p><b>Interest.java: remote interface for the `interest' EJB</b><br>
  +     <hr>
  +     <table border="0" bgcolor="#80ff80" cellspacing="4">
  +             <tr>
  +                     <td>
  +                             <pre>package com.web_tomorrow.interest;
   import javax.ejb.EJBObject;
   import java.rmi.RemoteException;
   
  @@ -132,16 +92,19 @@
   */
   public double calculateCompoundInterest(double principle, 
     double rate, double periods) throws RemoteException;
  -}
  -</PRE></TD></TR></TABLE>
  -<hr>
  -The remote interface specifies only one `business method' 
<code>calculateCompoundInterest</code>. 
  -<br>
  -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The home interface is even simpler. 
  -<p> <b>Interest.java: remote interface for the `interest' EJB</b> <br>
  -<hr>
  -<TABLE BORDER=0 BGCOLOR="#80FF80" CELLSPACING=4><TR><TD><PRE>
  -package com.web_tomorrow.interest;
  +}</pre>
  +                     </td>
  +             </tr>
  +     </table>
  +     <hr>
  +     The remote interface specifies only one `business method' 
<code>calculateCompoundInterest</code>.<br>
  +     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The home interface is even simpler.</p>
  +     <p><b>Interest.java: remote interface for the `interest' EJB</b><br>
  +     <hr>
  +     <table border="0" bgcolor="#80ff80" cellspacing="4">
  +             <tr>
  +                     <td>
  +                             <pre>package com.web_tomorrow.interest;
   import java.io.Serializable;
   import java.rmi.RemoteException;
   import javax.ejb.CreateException;
  @@ -159,15 +122,18 @@
     Interest create()
       throws RemoteException, CreateException;
   }
  -
  -</PRE></TD></TR></TABLE>
  -<hr>
  -Finally, here is the Bean class. This is the only one that does any real work 
  -in this simple example. 
  -<p> <b>Interest.java: remote interface for the `interest' EJB</b> <br>
  -<hr>
  -<TABLE BORDER=0 BGCOLOR="#80FF80" CELLSPACING=4><TR><TD><PRE>
  -package com.web_tomorrow.interest;
  +</pre>
  +                     </td>
  +             </tr>
  +     </table>
  +     <hr>
  +     Finally, here is the Bean class. This is the only one that does any real work 
in this simple example.</p>
  +     <p><b>Interest.java: remote interface for the `interest' EJB</b><br>
  +     <hr>
  +     <table border="0" bgcolor="#80ff80" cellspacing="4">
  +             <tr>
  +                     <td>
  +                             <pre>package com.web_tomorrow.interest;
   import java.rmi.RemoteException; 
   import javax.ejb.SessionBean;
   import javax.ejb.SessionContext;
  @@ -189,7 +155,7 @@
     */
     public double calculateCompoundInterest(double principle, 
       double rate, double periods) {
  -    System.out.println ("Someone called `calculateCompoundInterest!'");
  +    System.out.println (&quot;Someone called `calculateCompoundInterest!'&quot;);
       return principle * Math.pow(1+rate, periods) - principle;
     }
   
  @@ -217,42 +183,33 @@
     Empty method body
     */
     public void setSessionContext(SessionContext sc) {}
  -} 
  -</PRE></TD></TR></TABLE>
  -<hr>
  -Notice that most of the methods are empty; they have to exist because they're 
  -specified by the SessionBean interface, but they don't need to do anything in 
  -this case. <br>
  -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If you haven't already done so, you should 
  -create these .java files in the directory <code>./com/web_tomorrow/interest</code> 
  -(or unpack the archive with them in). Then you can compile them using the command 
  -<pre>
  -javac -classpath /usr/local/jboss/lib/ext/ejb.jar com/web_tomorrow/interest/*.java
  -</pre>
  -substituting the correct path to the jBoss class EJB library if you haven't 
installed 
  -jBoss in <code>/usr/local/jboss</code>. This should create three class files: 
<code>InterestBean.class</code>, 
  -<code>Interest.class</code>, and <code>InterestHome.class</code>. If you have 
  -`make' on your system, and you have unpacked the archive, you can build all the 
  -classes just be running <code>make</code> in the same directory as the Makefile. 
  -<br>
  -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; With the classes compiled, it's time to create 
  -the deployment descriptor. 
  -<p> 
  -<TABLE ALIGN="CENTER" BORDER=1 CELLSPACING=0 CELLPADDING=4>
  -  <tr> 
  -    <td>
  -      <p align=center><a href=jboss1.html> 
  -        BACK: Step 1: installing jBoss </a></p>
  -    </td>
  -    <td>
  -      <p align=center><a href=jboss_linux_trail_index.html> contents </a></p>
  -    </td>
  -    <td>
  -      <p align=center><a href=jboss3.html> 
  -        FORWARD: Step 3: the deployment descriptor </a></p>
  -    </td>
  -  </tr>
  -</table>
  +} </pre>
  +                     </td>
  +             </tr>
  +     </table>
  +     <hr>
  +     Notice that most of the methods are empty; they have to exist because they're 
specified by the SessionBean interface, but they don't need to do anything in this 
case.<br>
  +     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If you haven't already done so, you 
should create these .java files in the directory 
<code>./com/web_tomorrow/interest</code> (or unpack the archive with them in). Then 
you can compile them using the command</p>
  +     <pre>javac -classpath /usr/local/jboss/lib/ext/ejb.jar 
com/web_tomorrow/interest/*.java</pre>
  +     <p>substituting the correct path to the jBoss class EJB library if you haven't 
installed jBoss in <code>/usr/local/jboss</code>. This should create three class 
files: <code>InterestBean.class</code>, <code>Interest.class</code>, and 
<code>InterestHome.class</code>. If you have `make' on your system, and you have 
unpacked the archive, you can build all the classes just be running <code>make</code> 
in the same directory as the Makefile.<br>
  +     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; With the classes compiled, it's time to 
create the deployment descriptor.
  +     <p>
  +     <table align="CENTER" border="1" cellspacing="0" cellpadding="4">
  +             <tr>
  +                     <td>
  +                             <center>
  +                                     <a href="jboss1.html">BACK: Step 1: installing 
jBoss </a></center>
  +                     </td>
  +                     <td>
  +                             <center>
  +                                     <a 
href="jboss_linux_trail_index.html">contents </a></center>
  +                     </td>
  +                     <td>
  +                             <center>
  +                                     <a href="jboss3.html">FORWARD: Step 3: the 
deployment descriptor </a></center>
  +                     </td>
  +             </tr>
  +     </table>
  +     </body>
   
  -</body>
   </html>
  
  
  
  1.2       +95 -132   jbossweb/jboss1.html
  
  Index: jboss1.html
  ===================================================================
  RCS file: /products/cvs/ejboss/jbossweb/jboss1.html,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- jboss1.html       2000/08/29 23:11:59     1.1
  +++ jboss1.html       2000/09/01 23:53:46     1.2
  @@ -1,146 +1,109 @@
   <html>
  -<head>
  -<title>
  -Step 1: installing jBoss
  -</title>
   
  -</head>
  -
  -<p><font face=arial,helvetica size=+3 color="#ffcc00"> Step 1: installing jBoss 
</font> </p>
  -<p>&nbsp;<font face=arial,helvetica size=+2>Beginning EJB programming using 
jBoss</font> </p>
  -
  -<TABLE ALIGN="CENTER" BORDER=1 CELLSPACING=0 CELLPADDING=4>
  -  <tr> 
  -    <td>
  -      <p align=center><a href=jboss_linux_trail_index.html> contents </a></p>
  -    </td>
  -    <td>
  -      <p align=center><a href=jboss2.html> 
  -        FORWARD: Step 2: creating the Bean </a></p>
  -    </td>
  -  </tr>
  -</table>
  -<p>
  -<p> Before installing and running the server, 
  -  you should check that your JDK installation is working. 
  -  <A HREF="jboss1a.html">(Step-by-step instructions are available.)</A> 
  -  You will <i>need</i> 
  -  the JDK binaries directory in your PATH (this is essential: see below) not just 
  -  for the user account which is doing the installation, but also for the user 
  -  account that will run the server. If you are running the server as root, you 
  -  should check that the JDK binaries are in the PATH even for root (root and 
ordinary 
  -  users normally have different PATH settings). You won't need to specify a 
CLASSPATH 
  -  environment variable if you don't normally have to. <br>
  -  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The next step will be to download, install 
and 
  -  test the jBoss server. At the time of writing the most recent version of jBoss is 
2.0. 
  -  You can get jBoss from <a href=http://www.jboss.org>www.jboss.org</a> <br>
  -  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; It doesn't matter very much where you 
install 
  -  jBoss; my preference is to use <code>/usr/local/jboss</code>. If you don't have 
  -  root access, or would rather not run untested software as root, jboss will work 
  -  perfectly well if installed in a user directory and run as an ordinary user. 
  -  I will assume in this tutorial that you are installing in 
<code>/usr/local/jboss</code>. 
  -  If you haven't, change the paths as appropriate. <br>
  -  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; jBoss is 
  -  <A HREF="http://jboss.org/jBoss2/install.htm">distributed using Install 
Anywhere</A>
  -  which isn't a natural format for Linux users. If you're running the X Window 
System
  -  on your Linux machine and you have Netscape installed with Java enabled, this 
might
  -  work for you. Otherwise, your best bet right now is to 
  -  <A HREF="cvs.htm">download from CVS</A> or to install from the Zip file like this:
  -<pre>
  -su
  +     <head>
  +             <meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
  +             <meta name="generator" content="Adobe GoLive 4">
  +             <title>Step 1: installing jBoss</title>
  +     </head>
  +
  +     <font face="arial,helvetica" size="6" color="#ffcc00">Step 1: installing jBoss 
</font>
  +     <p>&nbsp;<font face="arial,helvetica" size="5">Beginning EJB programming using 
jBoss</font></p>
  +     <p>
  +     <table align="CENTER" border="1" cellspacing="0" cellpadding="4">
  +             <tr>
  +                     <td>
  +                             <center>
  +                                     <a 
href="jboss_linux_trail_index.html">contents </a></center>
  +                     </td>
  +                     <td>
  +                             <center>
  +                                     <a href="jboss2.html">FORWARD: Step 2: 
creating the Bean </a></center>
  +                     </td>
  +             </tr>
  +     </table>
  +     <p>Before installing and running the server, you should check that your JDK 
installation is working. <a href="jboss1a.html">(Step-by-step instructions are 
available.)</a> You will <i>need</i> the JDK binaries directory in your PATH (this is 
essential: see below) not just for the user account which is doing the installation, 
but also for the user account that will run the server. If you are running the server 
as root, you should check that the JDK binaries are in the PATH even for root (root 
and ordinary users normally have different PATH settings). You won't need to specify a 
CLASSPATH environment variable if you don't normally have to.<br>
  +     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The next step will be to download, 
install and test the jBoss server. At the time of writing the most recent version of 
jBoss is 2.0. You can get jBoss from <a 
href="http://www.jboss.org">www.jboss.org</a><br>
  +     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; It doesn't matter very much where you 
install jBoss; my preference is to use <code>/usr/local/jboss</code>. If you don't 
have root access, or would rather not run untested software as root, jboss will work 
perfectly well if installed in a user directory and run as an ordinary user. I will 
assume in this tutorial that you are installing in <code>/usr/local/jboss</code>. If 
you haven't, change the paths as appropriate.<br>
  +     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; jBoss is <a 
href="http://jboss.org/jBoss2/install.htm">distributed using Install Anywhere</a> 
which isn't a natural format for Linux users. If you're running the X Window System on 
your Linux machine and you have Netscape installed with Java enabled, this might work 
for you. Otherwise, your best bet right now is to <a href="cvs.htm">download from 
CVS</a> or to install from the Zip file like this:</p>
  +     <pre>su
   mkdir /usr/local/jboss
   cd /usr/local/jboss
   lynx -source \
     http://jboss.org/jBoss2/InstData/Other/install.zip \
  -  > install.zip
  +  &gt; install.zip
   mkdir installer
   cd installer
   unzip ../install.zip
   mv c:/jboss2/* ..
   cd ..
   rm -rf installer
  -rm -f install.zip
  -</pre>
  -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; You could try running the server now. Change 
  -to the <code>bin</code> directory, and run the program like this:
  -<pre>
  -cd bin
  -java -jar run.jar
  -</pre>
  -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; In a proper installation, the server should 
start without any error messages or 
  -exceptions being thrown. It will produce about three pages of output on startup. 
  -<br>
  -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The jBoss distribution is supplied with one 
  -test Bean, packaged as <code>bank.jar</code>. This is supplied in the `deploy' 
  -subdirectory, which is where Beans are placed to deploy them. The effect of this 
  -is to deploy the `bank' bean when the server starts up. This is fine the first 
  -time, as it tests that the SQL server is working, but you can usefully move 
<code>bank.jar</code> 
  -out of the <code>deploy</code> directory when you are sure that everything's OK, 
  -and the server will start up more quickly. 
  -
  -<TABLE BORDER=1 CELLSPACING=0 CELLPADDING=5 BGCOLOR="#FFFF80">
  -  <TR VALIGN="TOP">
  -    <TH>Error Message</TH>
  -    <TH>Corrective Action</TH>
  -  </TR>
  -
  -  <TR VALIGN="TOP">
  -    <TD>bash: java: command not found</TD>
  -    <TD>The JDK binaries aren't in the PATH. Check your PATH environment variable 
and try the command<PRE># which java</PRE>See <A HREF="jboss1a.html">the section on 
downloading and installing the JDK.</A></TD>
  -  </TR>
  -
  -  <TR VALIGN="TOP">
  -    <TD>[hypersonic] System.run/init: database is in use by a different process</TD>
  -    <TD>The JDK binaries aren't in the PATH. If you get this message, the SQL 
server hasn't started, and there will be a whole heap of other errors later. Check 
your PATH environment variable and try the command<PRE># which java</PRE>See <A 
HREF="jboss1a.html">the section on downloading and installing the JDK.</A></TD>
  -  </TR>
  -
  -  <TR VALIGN="TOP">
  -    <TD>Failed to load Main-Class manifest attribute from<BR>
  -      run.jar</TD>
  -    <TD>You're not in the right directory and Java can't find file run.jar. Try 
this:<PRE># cd /usr/local/jboss/bin</PRE></TD>
  -  </TR>
  -
  -  <TR VALIGN="TOP">
  -    <TD>[Webserver] java.net.UnknownHostException:...</TD>
  -    <TD>The jBoss server tries to establish its host's IP number when it starts up. 
If it can't do this, you will see this error message. This problem is quite common on 
systems that get their network configuration parameters dynamically. For example, if 
your computer connects to the Internet by a dial-up connection, and you cancel the 
dial-up process, you may end up with a hostname that doesn't make sense. You can 
re-establish your connection or you can temporarily reset your hostname to `localhost' 
like this: <PRE># hostname localhost</PRE></TD>
  -  </TR>
  -
  -  <TR VALIGN="TOP">
  -    <TD>[Webserver] java.net.BindException: Address already in use</TD>
  -    <TD>This probably means you already have jBoss running and you're trying to 
start it a second time. Use this command:<PRE># ps ax | grep run.jar</PRE>to determine 
the process ID of the previous attempt to invoke jBoss then use kill -9 (pid) to kill 
that PID. Restart jBoss.</TD>
  -  </TR>
  -
  -  <TR VALIGN="TOP">
  -    <TD>[Container factory] No configuration chosen. Using default 
configuration</TD>
  -    <TD>No corrective action necessary. This means that a particular EJB did not 
have a jboss.xml file in its META-INF directory (which is inside the EJB's .jar file 
in the deploy/ directory). This isn't a real problem; jBoss will just use its default 
configuration. If you want to change the configuration, see <A 
HREF="#somewhere_else">the section on jboss.xml.</A></TD>
  -  </TR>
  -
  -  <TR VALIGN="TOP">
  -    <TD>[Container factory] javax.management.InstanceNotFoundException: 
DefaultDomain: service=Webserver</TD>
  -    <TD>TBD</TD>
  -  </TR>
  -
  -  <TR VALIGN="TOP">
  -    <TD>[JMX RMI Adaptor] Started<BR>
  -      java.net.BindException: Address already in use</TD>
  -    <TD>TBD</TD>
  -  </TR>
  -
  -</TABLE>
  +rm -f install.zip</pre>
  +     <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; You could try running the server now. 
Change to the <code>bin</code> directory, and run the program like this:
  +     <pre>cd bin
  +java -jar run.jar</pre>
  +     <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; In a proper installation, the server 
should start without any error messages or exceptions being thrown. It will produce 
about three pages of output on startup.<br>
  +     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The jBoss distribution is supplied with 
one test Bean, packaged as <code>bank.jar</code>. This is supplied in the `deploy' 
subdirectory, which is where Beans are placed to deploy them. The effect of this is to 
deploy the `bank' bean when the server starts up. This is fine the first time, as it 
tests that the SQL server is working, but you can usefully move <code>bank.jar</code> 
out of the <code>deploy</code> directory when you are sure that everything's OK, and 
the server will start up more quickly.
  +     <table border="1" cellspacing="0" cellpadding="5" bgcolor="#ffff80">
  +             <tr valign="top">
  +                     <th>Error Message</th>
  +                     <th>Corrective Action</th>
  +             </tr>
  +             <tr valign="top">
  +                     <td>bash: java: command not found</td>
  +                     <td>The JDK binaries aren't in the PATH. Check your PATH 
environment variable and try the command
  +                             <pre># which java</pre>
  +                             <p>See <a href="jboss1a.html">the section on 
downloading and installing the JDK.</a></td>
  +             </tr>
  +             <tr valign="top">
  +                     <td>[hypersonic] System.run/init: database is in use by a 
different process</td>
  +                     <td>The JDK binaries aren't in the PATH. If you get this 
message, the SQL server hasn't started, and there will be a whole heap of other errors 
later. Check your PATH environment variable and try the command
  +                             <pre># which java</pre>
  +                             <p>See <a href="jboss1a.html">the section on 
downloading and installing the JDK.</a></td>
  +             </tr>
  +             <tr valign="top">
  +                     <td>Failed to load Main-Class manifest attribute from<br>
  +                             run.jar</td>
  +                     <td>You're not in the right directory and Java can't find file 
run.jar. Try this:
  +                             <pre># cd /usr/local/jboss/bin</pre>
  +                     </td>
  +             </tr>
  +             <tr valign="top">
  +                     <td>[Webserver] java.net.UnknownHostException:...</td>
  +                     <td>The jBoss server tries to establish its host's IP number 
when it starts up. If it can't do this, you will see this error message. This problem 
is quite common on systems that get their network configuration parameters 
dynamically. For example, if your computer connects to the Internet by a dial-up 
connection, and you cancel the dial-up process, you may end up with a hostname that 
doesn't make sense. You can re-establish your connection or you can temporarily reset 
your hostname to `localhost' like this:
  +                             <pre># hostname localhost</pre>
  +                     </td>
  +             </tr>
  +             <tr valign="top">
  +                     <td>[Webserver] java.net.BindException: Address already in 
use</td>
  +                     <td>This probably means you already have jBoss running and 
you're trying to start it a second time. Use this command:
  +                             <pre># ps ax | grep run.jar</pre>
  +                             <p>to determine the process ID of the previous attempt 
to invoke jBoss then use kill -9 (pid) to kill that PID. Restart jBoss.</td>
  +             </tr>
  +             <tr valign="top">
  +                     <td>[Container factory] 
javax.management.InstanceNotFoundException: DefaultDomain: service=Webserver</td>
  +                     <td>TBD</td>
  +             </tr>
  +             <tr valign="top">
  +                     <td>[JMX RMI Adaptor] Started<br>
  +                             java.net.BindException: Address already in use</td>
  +                     <td>TBD</td>
  +             </tr>
  +     </table>
  +     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; When you're happy that the server is 
running correctly, go on to the next step.
  +     <p>&nbsp;</p>
  +     <p>
  +     <table align="CENTER" border="1" cellspacing="0" cellpadding="4">
  +             <tr>
  +                     <td>
  +                             <center>
  +                                     <a 
href="jboss_linux_trail_index.html">contents </a></center>
  +                     </td>
  +                     <td>
  +                             <center>
  +                                     <a href="jboss2.html">FORWARD: Step 2: 
creating the Bean </a></center>
  +                     </td>
  +             </tr>
  +     </table>
  +     </body>
   
  -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; When you're happy that the server is running 
  -correctly, go on to the next step. 
  -<p>&nbsp;</p>
  -<TABLE ALIGN="CENTER" BORDER=1 CELLSPACING=0 CELLPADDING=4>
  -  <tr> 
  -    <td>
  -      <p align=center><a href=jboss_linux_trail_index.html> contents </a></p>
  -    </td>
  -    <td>
  -      <p align=center><a href=jboss2.html> 
  -        FORWARD: Step 2: creating the Bean </a></p>
  -    </td>
  -  </tr>
  -</table>
  -</body>
   </html>
  
  
  
  1.2       +168 -257  jbossweb/getting_startedJB2.htm
  
  Index: getting_startedJB2.htm
  ===================================================================
  RCS file: /products/cvs/ejboss/jbossweb/getting_startedJB2.htm,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- getting_startedJB2.htm    2000/08/29 23:10:55     1.1
  +++ getting_startedJB2.htm    2000/09/01 23:53:47     1.2
  @@ -7,262 +7,173 @@
        </head>
   
        <body bgcolor="white" leftmargin="0" topmargin="0" marginwidth="0" 
marginheight="0">
  -<table border="0" cellpadding="0" cellspacing="0" width="100%">
  -  <tbody> 
  -  <tr height="1958"> 
  -    <td bgcolor="white" valign="top"> 
  -      <table border="0" cellpadding="0" cellspacing="0" width="100%" height="51">
  -        <tbody> 
  -        <tr height="2"> 
  -          <td height="2"><img src="picture/corner-nw-small.gif" width="11" 
height="11"></td>
  -        </tr>
  -        <tr height="37"> 
  -          <td height="37"><img alt="o" height="1" src="binary.htm" width="1"><font 
color="#ffcc00" face="Arial,Helvetica,sans-serif" size="6"><b>jBoss 
  -            2.0</b></font></td>
  -        </tr>
  -        </tbody> 
  -      </table>
  -      <table border="0" cellpadding="0" cellspacing="0" width="100%">
  -        <tbody> 
  -        <tr height="2"> 
  -          <td bgcolor="white" valign="bottom" width="11"><img 
src="picture/corner-sw-small.gif" width="11" height="11"></td>
  -          <td bgcolor="white" width="100%"></td>
  -          <td bgcolor="white" width="21"></td>
  -          <td width="4"></td>
  -        </tr>
  -        <tr> 
  -          <td bgcolor="#99cc66" width="11"><img alt="o" height="1" src="binary.htm" 
width="1"></td>
  -          <td bgcolor="#99cc66" width="100%"> 
  -            <table border="0" cellpadding="0" cellspacing="0" width="100%">
  -              <tbody> 
  -              <tr bgcolor="#99cc66"> 
  -                <td width="100%"><font face="Myriad Web,Arial" 
color="white"><b>Help 
  -                  on getting started! </b></font></td>
  -              </tr>
  -              </tbody> 
  -            </table>
  -          </td>
  -          <td bgcolor="#FFFFFF" width="21"><img src="picture/corner-e.gif" 
width="22" height="22"></td>
  -          <td width="4"></td>
  -        </tr>
  -        <tr height="99"> 
  -          <td bgcolor="white" valign="top" width="11"><img 
src="picture/corner-nw-small.gif" width="11" height="11"></td>
  -          <td align="right" width="100%"> 
  -            <table border="0" cellpadding="0" cellspacing="0" width="100%" 
height="89">
  -              <tbody> 
  -              <tr> 
  -                <td valign="top" width="648"> 
  -                  <p><a href="jboss_linux_trail_index.html"><font face="Myriad 
Web,Arial">Beginning 
  -                    EJB programming using jBoss (Linux)</font></a></p>
  -                  <p><a href="jboss_win32_trail_index.html"><font face="Myriad 
Web,Arial">Beginning 
  -                    EJB programming using jBoss (Windows)</font></a></p>
  -                  <p><font face="Myriad Web,Arial"><a 
href="jboss_cmp_trail_index.html">Using 
  -                    container-managed persistence with jBoss</a></font></p>
  -                  <p><font face="Myriad Web,Arial" size="2"><a href="jboss.pdf">pdf 
  -                    version </a></font></p>
  -                  </td>
  -                <td valign="top" width="10"></td>
  -                <td align="right" valign="top" width="10">&nbsp;</td>
  -              </tr>
  -              </tbody> 
  -            </table>
  -          </td>
  -          <td width="21"><img alt="o" height="1" src="binary.htm" width="1"></td>
  -          <td width="4"></td>
  -        </tr>
  -        </tbody> 
  -      </table>
  -      <table border="0" cellpadding="0" cellspacing="0" width="100%">
  -        <tbody> 
  -        <tr> 
  -          <td bgcolor="white" valign="bottom" width="11"><img 
src="picture/corner-sw-small.gif" width="11" height="11"></td>
  -          <td bgcolor="white" width="100%"></td>
  -          <td bgcolor="white" width="21"></td>
  -          <td width="4"></td>
  -        </tr>
  -        <tr> 
  -          <td bgcolor="#99cc66" width="11"><img alt="o" height="1" src="binary.htm" 
width="1"></td>
  -          <td bgcolor="#99cc66" width="100%"> 
  -            <table border="0" cellpadding="0" cellspacing="0" width="100%">
  -              <tbody> 
  -              <tr bgcolor="#99cc66"> 
  -                <td width="100%"><font face="Myriad Web,Arial" 
color="white"><b>Documentation</b></font></td>
  -              </tr>
  -              </tbody> 
  -            </table>
  -          </td>
  -          <td bgcolor="#FFFFFF" width="21"><img src="picture/corner-e.gif" 
width="22" height="22"></td>
  -          <td width="4"></td>
  -        </tr>
  -        <tr height="56"> 
  -          <td bgcolor="white" valign="top" width="11"><img 
src="picture/corner-nw-small.gif" width="11" height="11"></td>
  -          <td align="right" width="100%"> 
  -            <table border="0" cellpadding="0" cellspacing="0" width="100%" 
height="89">
  -              <tbody> 
  -              <tr> 
  -                <td valign="top" width="672"> 
  -                  <ol>
  -                    <li><font face="Myriad Web,Arial">Server information can be 
  -                      found <a href="server.html">here</a>.</font></li>
  -                    <li><font face="Myriad Web,Arial">EJB development information 
  -                      can be found <a href="ejb.html">here</a>.</font></li>
  -                    <li><font face="Myriad Web,Arial">EJB container information 
  -                      can be found <a href="container.html">here</a>.</font></li>
  -                  </ol>
  -                  <p><font face="Myriad Web,Arial" size="2"><a 
href="jboss2.0_doc.pdf">pdf 
  -                    version </a></font> </p>
  -                </td>
  -                <td valign="top" width="10"></td>
  -                <td align="right" valign="top" width="11">&nbsp;</td>
  -              </tr>
  -              </tbody> 
  -            </table>
  -          </td>
  -          <td width="21"><img alt="o" height="1" src="binary.htm" width="1"></td>
  -          <td width="4"></td>
  -        </tr>
  -        </tbody> 
  -      </table>
  -      <table border="0" cellpadding="0" cellspacing="0" width="100%">
  -        <tbody> 
  -        <tr> 
  -          <td bgcolor="white" valign="bottom" width="11"><img 
src="picture/corner-sw-small.gif" width="11" height="11"></td>
  -          <td bgcolor="white" width="100%"></td>
  -          <td bgcolor="white" width="21"></td>
  -          <td width="4"></td>
  -        </tr>
  -        <tr> 
  -          <td bgcolor="#99cc66" width="11"><img alt="o" height="1" src="binary.htm" 
width="1"></td>
  -          <td bgcolor="#99cc66" width="100%"> 
  -            <table border="0" cellpadding="0" cellspacing="0" width="100%">
  -              <tbody> 
  -              <tr bgcolor="#99cc66"> 
  -                <td width="100%"><font face="Myriad Web,Arial" 
color="white"><b>License</b></font></td>
  -              </tr>
  -              </tbody> 
  -            </table>
  -          </td>
  -          <td bgcolor="#FFFFFF" width="21"><img src="picture/corner-e.gif" 
width="22" height="22"></td>
  -          <td width="4"></td>
  -        </tr>
  -        <tr height="56"> 
  -          <td bgcolor="white" valign="top" width="11"><img 
src="picture/corner-nw-small.gif" width="11" height="11"></td>
  -          <td align="right" width="100%"> 
  -            <table border="0" cellpadding="0" cellspacing="0" width="100%" 
height="89">
  -              <tbody> 
  -              <tr> 
  -                <td valign="top" width="672"> 
  -                  <p><font face="Myriad Web,Arial">jBoss 2.0 is licensed under 
  -                    the GPL license. See <a 
href="http://www.gnu.org">www.gnu.org</a> 
  -                    for details. </font></p>
  -                </td>
  -                <td valign="top" width="10"></td>
  -                <td align="right" valign="top" width="11">&nbsp;</td>
  -              </tr>
  -              </tbody> 
  -            </table>
  -          </td>
  -          <td width="21"><img alt="o" height="1" src="binary.htm" width="1"></td>
  -          <td width="4"></td>
  -        </tr>
  -        </tbody> 
  -      </table>
  -      <table border="0" cellpadding="0" cellspacing="0" width="100%">
  -        <tbody> 
  -        <tr height="2"> 
  -          <td bgcolor="white" valign="bottom" width="11"><img 
src="picture/corner-sw-small.gif" width="11" height="11"></td>
  -          <td bgcolor="white" width="100%"></td>
  -          <td bgcolor="white" width="21"></td>
  -          <td width="4"></td>
  -        </tr>
  -        <tr> 
  -          <td bgcolor="#99cc66" width="11"><img alt="o" height="1" src="binary.htm" 
width="1"></td>
  -          <td bgcolor="#99cc66" width="100%"> 
  -            <table border="0" cellpadding="0" cellspacing="0" width="100%">
  -              <tbody> 
  -              <tr bgcolor="#99cc66"> 
  -                <td width="100%"><font face="Myriad Web,Arial" 
color="white"></font></td>
  -              </tr>
  -              </tbody> 
  -            </table>
  -          </td>
  -          <td bgcolor="#FFFFFF" width="21"><img src="picture/corner-e.gif" 
width="22" height="22"></td>
  -          <td width="4"></td>
  -        </tr>
  -        <tr height="99"> 
  -          <td bgcolor="white" valign="top" width="11" height="89"><img 
src="picture/corner-nw-small.gif" width="11" height="11"></td>
  -          <td align="right" width="100%" height="89"> 
  -            <table border="0" cellpadding="0" cellspacing="0" width="100%" 
height="89">
  -              <tbody> 
  -              <tr> 
  -                <td valign="top" width="648"> 
  -                  <p>&nbsp; </p>
  -                </td>
  -                <td valign="top" width="10"></td>
  -                <td align="right" valign="top" width="10">&nbsp;</td>
  -              </tr>
  -              </tbody> 
  -            </table>
  -          </td>
  -          <td width="21" height="89"><img alt="o" height="1" src="binary.htm" 
width="1"></td>
  -          <td width="4" height="89"></td>
  -        </tr>
  -        </tbody> 
  -      </table>
  -    </td>
  -    <td bgcolor="white" valign="top" width="170"> 
  -      <table border="0" cellpadding="0" cellspacing="0" width="100%">
  -        <tbody> 
  -        <tr> 
  -          <td>&nbsp;</td>
  -        </tr>
  -        <tr> 
  -          <td><img alt="o" height="1" src="binary.htm" width="1"><font 
color="#424264" face="Myriad Web,Arial" size="1"> 
  -            </font></td>
  -        </tr>
  -        </tbody> 
  -      </table>
  -      <table border="0" cellpadding="0" cellspacing="0" width="100%">
  -        <tbody> 
  -        <tr height="20"> 
  -          <td bgcolor="#FFFFFF"> 
  -            <div align="right"> <img src="picture/corner-w.gif" width="10" 
height="22"></div>
  -          </td>
  -          <td bgcolor="#336600" width="100%" myriad web, arial"><b>Download 
</b><font face="Arial,Helvetica,sans-serif" color="white"><b></b></font></td>
  -          <td bgcolor="#396c06"><img alt="o" height="1" src="picture/blank.gif" 
width="1"></td>
  -        </tr>
  -        <tr height="278"> 
  -          <td></td>
  -          <td bgcolor="#99cc66" width="100%"> 
  -            <table border="0" cellpadding="2" cellspacing="0" width="100%">
  -              <tbody> 
  -              <tr> 
  -                <td> 
  -                  <table border="0" cellpadding="2" cellspacing="0" width="100%">
  -                    <tbody> 
  -                    <tr height="249"> 
  -                      <td height="125">
  -                        <p><font face="Myriad Web,Arial" size="2">Download the 
  -                          Pdf version of </font><font face="Myriad Web,Arial" 
size="2">the 
  -                          <a href="jboss2.0_doc.pdf">technical documentation</a> 
  -                          and of <a href="jboss.pdf">the getting started 
documentation</a></font></p>
  -                        </td>
  -                    </tr>
  -                    </tbody> 
  -                  </table>
  -                </td>
  -              </tr>
  -              </tbody> 
  -            </table>
  -          </td>
  -          <td bgcolor="#99cc66"></td>
  -        </tr>
  -        </tbody> 
  -      </table>
  -    </td>
  -    <td bgcolor="#bfbffe"></td>
  -  </tr>
  -</table>
  -</body>
  +             <table border="0" cellpadding="0" cellspacing="0" width="100%">
  +                     <tbody>
  +                             <tr height="1958">
  +                                     <td bgcolor="white" valign="top" height="1958">
  +                                             <table border="0" cellpadding="0" 
cellspacing="0" width="100%" height="51">
  +                                                     <tbody>
  +                                                             <tr height="2">
  +                                                                     <td 
height="2"><img src="picture/corner-nw-small.gif" width="11" height="11"></td>
  +                                                             </tr>
  +                                                             <tr height="37">
  +                                                                     <td 
height="37"><img alt="o" height="1" src="binary.htm" width="1"><font color="#ffcc00" 
face="Arial,Helvetica,sans-serif" size="6"><b>jBoss 2.0 Doco </b></font></td>
  +                                                             </tr>
  +                                                     </tbody>
  +                                             </table>
  +                                             <table border="0" cellpadding="0" 
cellspacing="0" width="100%">
  +                                                     <tbody>
  +                                                             <tr height="2">
  +                                                                     <td 
bgcolor="white" valign="bottom" width="11" height="2"><img 
src="picture/corner-sw-small.gif" width="11" height="11"></td>
  +                                                                     <td 
bgcolor="white" width="100%" height="2"></td>
  +                                                                     <td 
bgcolor="white" width="21" height="2"></td>
  +                                                                     <td width="4" 
height="2"></td>
  +                                                             </tr>
  +                                                             <tr>
  +                                                                     <td 
bgcolor="#99cc66" width="11"><img alt="o" height="1" src="binary.htm" width="1"></td>
  +                                                                     <td 
bgcolor="#99cc66" width="100%">
  +                                                                             <table 
border="0" cellpadding="0" cellspacing="0" width="100%">
  +                                                                                    
 <tbody>
  +                                                                                    
         <tr bgcolor="#99cc66">
  +                                                                                    
                 <td width="100%"><font face="Myriad Web,Arial" 
color="white"><b>Documentation</b></font></td>
  +                                                                                    
         </tr>
  +                                                                                    
 </tbody>
  +                                                                             
</table>
  +                                                                     </td>
  +                                                                     <td 
bgcolor="white" width="21"><img src="picture/corner-e.gif" width="22" height="22"></td>
  +                                                                     <td 
width="4"></td>
  +                                                             </tr>
  +                                                             <tr height="99">
  +                                                                     <td 
bgcolor="white" valign="top" width="11" height="99"><img 
src="picture/corner-nw-small.gif" width="11" height="11"></td>
  +                                                                     <td 
align="right" width="100%" height="99">
  +                                                                             <table 
border="0" cellpadding="0" cellspacing="0" width="100%" height="89">
  +                                                                                    
 <tbody>
  +                                                                                    
         <tr>
  +                                                                                    
                 <td valign="top" width="648">
  +                                                                                    
                         <p><font face="Myriad Web,Arial"><b>Getting 
Started</b></font></p>
  +                                                                                    
                         <p><a href="jboss_linux_trail_index.html"><font face="Myriad 
Web,Arial">Beginning EJB programming using jBoss (Linux)</font></a></p>
  +                                                                                    
                         <p><a href="jboss_win32_trail_index.html"><font face="Myriad 
Web,Arial">Beginning EJB programming using jBoss (Windows)</font></a></p>
  +                                                                                    
                         <p></p>
  +                                                                                    
                         <p><font face="Myriad Web,Arial"><b>Advanced 
Topics</b></font></p>
  +                                                                                    
                         <p><a href="datasource.htm"><font face="Myriad 
Web,Arial">Adding a DataSource to jBoss</font></a></p>
  +                                                                                    
                         <p><a href="jbossxml_howto.html"><font face="Myriad 
Web,Arial">Using jboss.xml for advanced configurations (JNDI override, ejb-ref, 
Container conf)</font></a></p>
  +                                                                                    
                         <p><a href="jboss_cmp_trail_index.html"><font face="Myriad 
Web,Arial">Using container-managed persistence with jBoss</font></a></p>
  +                                                                                    
                         <p><a href="minerva/minerva.htm"><font face="Myriad 
Web,Arial">Using advanced pool management with Minerva</font></a></p>
  +                                                                                    
                         <p><a href="zoap/zoap.htm"><font face="Myriad 
Web,Arial">Using SOAP&nbsp;for invocation with ZOAP</font></a></p>
  +                                                                                    
                         <p></p>
  +                                                                                    
                         <p><font face="Myriad Web,Arial"><b>How-To</b></font></p>
  +                                                                                    
                         <p><a href="oraclecmp.htm"><font face="Myriad Web,Arial">CMP 
with ORACLE Howto</font></a></p>
  +                                                                                    
                         <p><a href="mssql.htm"><font face="Myriad Web,Arial">MS SQL 
Server (includes JDBC-ODBC) Howto</font></a></p>
  +                                                                                    
                         <p><a href="jbuilder.htm"><font face="Myriad Web,Arial">Run 
jBoss and debug EJBs in JBuilder's Debugger Howto</font></a></p>
  +                                                                                    
                         <p><a href="postgres.htm"><font face="Myriad Web,Arial">CMP 
with PostgreSQL MLET&nbsp;Howto</font></a></p>
  +                                                                                    
                         <p><font face="Myriad Web,Arial"><a 
href="rmh_howto.html">RMH&nbsp;(run the examples) Howto</a></font></p>
  +                                                                                    
                         <p></p>
  +                                                                                    
                         <p><font face="Myriad Web,Arial"><b>Container developer 
documentation</b></font></p>
  +                                                                                    
                         <p><a href="container.html"><font face="Myriad 
Web,Arial">jboss container architecture.</font></a></p>
  +                                                                                    
                         <p></p>
  +                                                                                    
                         <p><font face="Myriad Web,Arial"><b>License</b></font></p>
  +                                                                                    
                         <p><font face="Myriad Web,Arial">jBoss 2.0 is licensed under 
the GPL license. </font></p>
  +                                                                                    
                         <p><font face="Myriad Web,Arial">See <a 
href="http://www.gnu.org">www.gnu.org</a> for details. </font></td>
  +                                                                                    
                 <td valign="top" width="10"></td>
  +                                                                                    
                 <td align="right" valign="top" width="10">&nbsp;</td>
  +                                                                                    
         </tr>
  +                                                                                    
 </tbody>
  +                                                                             
</table>
  +                                                                     </td>
  +                                                                     <td width="21" 
height="99"><img alt="o" height="1" src="binary.htm" width="1"></td>
  +                                                                     <td width="4" 
height="99"></td>
  +                                                             </tr>
  +                                                     </tbody>
  +                                             </table>
  +                                             <table border="0" cellpadding="0" 
cellspacing="0" width="100%">
  +                                                     <tbody>
  +                                                             <tr height="2">
  +                                                                     <td 
bgcolor="white" valign="bottom" width="11" height="2"><img 
src="picture/corner-sw-small.gif" width="11" height="11"></td>
  +                                                                     <td 
bgcolor="white" width="100%" height="2"></td>
  +                                                                     <td 
bgcolor="white" width="21" height="2"></td>
  +                                                                     <td width="4" 
height="2"></td>
  +                                                             </tr>
  +                                                             <tr>
  +                                                                     <td 
bgcolor="#99cc66" width="11"><img alt="o" height="1" src="binary.htm" width="1"></td>
  +                                                                     <td 
bgcolor="#99cc66" width="100%">
  +                                                                             <table 
border="0" cellpadding="0" cellspacing="0" width="100%">
  +                                                                                    
 <tbody>
  +                                                                                    
         <tr bgcolor="#99cc66">
  +                                                                                    
                 <td width="100%"></td>
  +                                                                                    
         </tr>
  +                                                                                    
 </tbody>
  +                                                                             
</table>
  +                                                                     </td>
  +                                                                     <td 
bgcolor="white" width="21"><img src="picture/corner-e.gif" width="22" height="22"></td>
  +                                                                     <td 
width="4"></td>
  +                                                             </tr>
  +                                                             <tr height="99">
  +                                                                     <td 
bgcolor="white" valign="top" width="11" height="99"><img 
src="picture/corner-nw-small.gif" width="11" height="11"></td>
  +                                                                     <td 
align="right" width="100%" height="99">
  +                                                                             <table 
border="0" cellpadding="0" cellspacing="0" width="100%" height="89">
  +                                                                                    
 <tbody>
  +                                                                                    
         <tr>
  +                                                                                    
                 <td valign="top" width="648">&nbsp;</td>
  +                                                                                    
                 <td valign="top" width="10"></td>
  +                                                                                    
                 <td align="right" valign="top" width="10">&nbsp;</td>
  +                                                                                    
         </tr>
  +                                                                                    
 </tbody>
  +                                                                             
</table>
  +                                                                     </td>
  +                                                                     <td width="21" 
height="99"><img alt="o" height="1" src="binary.htm" width="1"></td>
  +                                                                     <td width="4" 
height="99"></td>
  +                                                             </tr>
  +                                                     </tbody>
  +                                             </table>
  +                                     </td>
  +                                     <td bgcolor="white" valign="top" width="170" 
height="1958">
  +                                             <table border="0" cellpadding="0" 
cellspacing="0" width="100%">
  +                                                     <tbody>
  +                                                             <tr>
  +                                                                     <td>&nbsp;</td>
  +                                                             </tr>
  +                                                             <tr>
  +                                                                     <td><img 
alt="o" height="1" src="binary.htm" width="1"><font color="#424264" face="Myriad 
Web,Arial" size="1"> </font></td>
  +                                                             </tr>
  +                                                     </tbody>
  +                                             </table>
  +                                             <table border="0" cellpadding="0" 
cellspacing="0" width="100%">
  +                                                     <tbody>
  +                                                             <tr height="20">
  +                                                                     <td 
bgcolor="white" height="20">
  +                                                                             <div 
align="right">
  +                                                                                    
 <img src="picture/corner-w.gif" width="10" height="22"></div>
  +                                                                     </td>
  +                                                                     <td 
bgcolor="#336600" width="100%" myriad web, arial" height="20"><b>Download </b></td>
  +                                                                     <td 
bgcolor="#396c06" height="20"><img alt="o" height="1" src="picture/blank.gif" 
width="1"></td>
  +                                                             </tr>
  +                                                             <tr height="278">
  +                                                                     <td 
height="278"></td>
  +                                                                     <td 
bgcolor="#99cc66" width="100%" height="278">
  +                                                                             <table 
border="0" cellpadding="2" cellspacing="0" width="100%">
  +                                                                                    
 <tbody>
  +                                                                                    
         <tr>
  +                                                                                    
                 <td>
  +                                                                                    
                         <table border="0" cellpadding="2" cellspacing="0" 
width="100%">
  +                                                                                    
                                 <tbody>
  +                                                                                    
                                         <tr height="249">
  +                                                                                    
                                                 <td height="249"><font face="Myriad 
Web,Arial" size="2">Binaries can be found<a href="binary.htm"> here</a></font></td>
  +                                                                                    
                                         </tr>
  +                                                                                    
                                 </tbody>
  +                                                                                    
                         </table>
  +                                                                                    
                 </td>
  +                                                                                    
         </tr>
  +                                                                                    
 </tbody>
  +                                                                             
</table>
  +                                                                     </td>
  +                                                                     <td 
bgcolor="#99cc66" height="278"></td>
  +                                                             </tr>
  +                                                     </tbody>
  +                                             </table>
  +                                     </td>
  +                                     <td bgcolor="#bfbffe" height="1958"></td>
  +                             </tr>
  +                     </table>
  +             </body>
   
        </html>
  
  
  
  1.1                  jbossweb/rmh_jboss.zip
  
        <<Binary file>>
  
  
  1.1                  jbossweb/rmh_howto.html
  
  Index: rmh_howto.html
  ===================================================================
  <html>
  <head>
  <title>
  Running Richard Monson-Haefel's examples
  </title>
  </head>
  
  <font face=arial,helvetica size=+3 color="#ffcc00"> 
  Running the Examples from Enterprise JavaBeans, by Richard Monson-Haefel (Unix)
  </font> 
  
  <p>This page describes how to run the examples from Richard Monson-Haefel's book <a 
href="http://www.oreilly.com/catalog/entjbeans2/">Enterprise JavaBeans, 2nd 
Edition</a> (Chapter 4) in jBoss.</p>
  
  <p>You can download the <a 
href="http://www.oreilly.com/catalog/entjbeans2/chapter/examples.zip">examples</a> 
(zip file) from O'Reilly's site. I will assume you have unzipped this file and you 
work in the <tt>chapter4/EJB11</tt> directory.</p>
  
  <p>These examples need to be slightly modified to run with jBoss. You can download 
the modified version from <a href="rmh_jboss.zip">here</a>, but I recommend you to 
follow these instructions which tell exactly what has to be modified.</p>
  
  <ul>
  <li><b>Setup your environment</b>.<br> jBoss libraries will be needed to compile and 
run the examples, so you have to set the environment variable <tt>JBOSS_HOME</tt> to 
your jBoss installation. For example:
  
  <ul>
  <li><tt>export JBOSS_HOME=$HOME/jboss_pr4  </tt> if you have the binary version in 
your home directory
  <li><tt>export JBOSS_HOME=$HOME/jboss/dist  </tt> if you have the CVS version.
  </ul><br>
  
  
  <li><b>Compile and deploy the beans</b>.<br> The beans are almost ok for jBoss, the 
only difference is about the reference made by <em>TravelAgentBean</em> to 
<em>CabinBean</em>: a bean must lookup in the <tt>java:comp/env</tt> namespace. Edit 
<em>com/titan/travelagent/TravelAgentBean.java</em>, and replace
  <pre>Object obj = jndiContext.lookup("ejb/CabinHome");</pre>
  with
  <pre>Object obj = jndiContext.lookup("java:comp/env/ejb/CabinHome");</pre>
  <p>This ejb-reference from TravelAgentBean (in travelagent.jar) to CabinBean (in 
cabin.jar) is an external reference (different ejb-jar file). You must then provide 
the full jndi name for CabinBean in a jboss.xml for TravelAgentBean: create and edit 
<em>com/titan/travelagent/jboss.xml</em>
  
  <p><table border=0 bgcolor="#80ff80" cellspacing=4><tr><td><pre>
  &lt;?xml version="1.0"?&gt;                                                 
  &lt;jboss&gt;
    &lt;enterprise-beans&gt;
      &lt;session&gt;
        &lt;ejb-name&gt;TravelAgentBean&lt;/ejb-name&gt;
        &lt;ejb-ref&gt;
          &lt;ejb-ref-name&gt;ejb/CabinHome&lt;/ejb-ref-name&gt;
          &lt;jndi-name&gt;CabinBean&lt;/jndi-name&gt;
        &lt;/ejb-ref&gt;
      &lt;/session&gt;
    &lt;/enterprise-beans&gt;
  &lt;/jboss&gt;</pre></td></tr></table></p>
  
  You don't jave to change anything in <em>ejb-jar.xml</em>.
  You can now use the following script <em>jbossMakeIt.sh</em> to compile and deploy:
  
  <p><table border=0 bgcolor="#80ff80" cellspacing=4><tr><td><pre>
  #!/bin/sh                                                             
  
  # make cabin bean
  
  javac -classpath $JBOSS_HOME/lib/ext/ejb.jar:. \
    com/titan/cabin/Cabin*.java
  
  cp com/titan/cabin/ejb-jar.xml META-INF/ejb-jar.xml
  jar cvf cabin.jar com/titan/cabin/Cabin*.class META-INF/ejb-jar.xml
  
  
  # make travelagent bean
  
  javac -classpath $JBOSS_HOME/lib/ext/ejb.jar:. \
    com/titan/travelagent/TravelAgent*.java
  
  cp com/titan/travelagent/ejb-jar.xml \
     com/titan/travelagent/jboss.xml \
     META-INF/
  
  # jBoss needs the Home, Remote and primary key (PK) classes
  # of the Cabin in travelagent.jar so that TravelAgent*.class
  # can access the Cabin bean
  
  jar cvf travelagent.jar \
    com/titan/cabin/CabinHome.class \
    com/titan/cabin/Cabin.class \
    com/titan/cabin/CabinPK.class \
    com/titan/travelagent/TravelAgent*.class \
    META-INF/ejb-jar.xml META-INF/jboss.xml
  
  rm -f META-INF/ejb-jar.xml
  rm -f META-INF/jboss.xml
  
  # deploy
  cp cabin.jar travelagent.jar $JBOSS_HOME/deploy
  </pre></td></tr></table></p>
  
  <li><b>Compile the clients.</b> <br>The clients from the examples perform a 
<tt>lookup</tt> on the <tt>java:comp/env</tt> namespace, which is not currently 
supported by jBoss for the clients. You have to make the following edits: 
(<tt>CabinBean</tt> is the jndi name under which the Cabin Bean is deployed, see the 
<a href="jndi_howto.html">jndi howto</a>)
  
  <p>In <em>com/titan/cabin/Client_1.java</em> replace 
  <pre>Object obj = jndiContext.lookup("java:comp/env/ejb/CabinHome");</pre>
  by
  <pre>Object obj = jndiContext.lookup("CabinBean");</pre>
  </p>
  
  <p>In <em>com/titan/cabin/Client_2.java</em> replace 
  <pre>Object obj = jndiContext.lookup("ejb/CabinHome");</pre>
  by 
  <pre>Object obj = jndiContext.lookup("CabinBean");</pre>
  </p>
  
  <p>In <em>com/titan/travelagent/Client_1.java</em> replace 
  <pre>Object obj = jndiContext.lookup("ejb/CabinHome");</pre>
  by 
  <pre>Object obj = jndiContext.lookup("CabinBean");</pre>
  </p>
  
  <p>You can now use jBossMakeClients.sh to compile:</p>
  <p><table border=0 bgcolor="#80ff80" cellspacing=4><tr><td><pre>
  #!/bin/sh                                                             
  
  javac -classpath $JBOSS_HOME/lib/ext/ejb.jar:.  \
      com/titan/cabin/Client*.java                \
      com/titan/travelagent/Client*.java
  </pre></td></tr></table></p>
  
  <li><b>Run the clients</b><br>We don't use Sun's RI runclient tool, so RunIt.sh 
won't work. Instead, we provide the following script: <em>jBossRunClient.sh</em>. This 
file includes all the jBoss libraries needed in the classpath.
  <p><table border=0 bgcolor="#80ff80" cellspacing=4><tr><td><pre>
  #!/bin/sh                                                             
  
  CP=$JBOSS_HOME/client/ejb.jar
  CP=$CP:$JBOSS_HOME/client/jndi.jar
  CP=$CP:$JBOSS_HOME/client/jta-spec1_0_1.jar
  CP=$CP:$JBOSS_HOME/client/jboss-client.jar
  CP=$CP:$JBOSS_HOME/client/jnp-client.jar
  
  CP=$CP:.
  
  java -cp $CP $1
  </pre></td></tr></table></p>
  
  <p>You also have to set the jndi properties to connect to the server. This is done 
in the <em>jndi.properties</em> file (this file must be in the same directory as 
<em>jBossRunClient.sh</em>)</p>
  
  <p><table border=0 bgcolor="#80ff80" cellspacing=4><tr><td><pre>
                                                                        
  java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
  java.naming.provider.url=localhost
  java.naming.factory.url.pkgs=org.jboss.naming;
  </pre></td></tr></table></p>
  
  <p>You can now run the clients. The script take the name of the client as an 
argument, try </p>
  <p><tt>./jBossRunClient.sh com.titan.cabin.Client_1<br>
  ./jBossRunClient.sh com.titan.cabin.Client_2<br>
  ./jBossRunClient.sh com.titan.travelagent.Client_1</tt></p>
  
  
  <p><b>NOTES</b>:<ul>
  <li>the clients will only run once, since they use the <tt>EJBHome.create()</tt> 
method: at second run, a <tt>DuplicateKeyException</tt> will occur.
  <li>I recommend you to turn off debug logging for these examples. Edit 
<em>$JBOSS_HOME/conf/jboss.conf</em>, in the ConsoleLogging section, set the first 
<tt>ARG</tt> to <tt>"Error"</tt>.
  </ul>
  
  </ul>
  <hr>
  Author: <a href="mailto:[EMAIL PROTECTED]">S�bastien Alborini</a>
  </body>
  </html>
  
  
  
  1.1                  jbossweb/postgres.htm
  
  Index: postgres.htm
  ===================================================================
  I use the following for PostgreSQL:<br>
  <br>
  In JBOSS_HOME/conf/jboss.conf:<br>
  <br>
  &lt;MLET CODE = &quot;org.jboss.jdbc.DataSourceImpl&quot;<br>
          ARCHIVE=&quot;jboss.jar,jdbc2_0-stdext.jar&quot; 
CODEBASE=&quot;../lib/ext/&quot;&gt;<br>
          &lt;ARG TYPE=&quot;java.lang.String&quot;<br>
                          
VALUE=&quot;jdbc:postgresql://&lt;host&gt;/&lt;database&gt;&quot;&gt;<br>
          &lt;ARG TYPE=&quot;java.lang.String&quot; 
VALUE=&quot;PostgreSQLPool&quot;&gt;<br>
          &lt;ARG TYPE=&quot;java.lang.String&quot; 
VALUE=&quot;postgresql.Driver&quot;&gt;<br>
          &lt;ARG TYPE=&quot;java.lang.String&quot; VALUE=&quot;&lt;user 
name&gt;&quot;&gt;<br>
          &lt;ARG TYPE=&quot;java.lang.String&quot; 
VALUE=&quot;&lt;password&gt;&quot;&gt;<br>
  &lt;/MLET&gt;<br>
  <br>
  <br>
  In jboss.properties:<br>
  <br>
  jdbc.drivers=postgresql.Driver<br>
  <br>
  In the jaws.xml of the deployed bean, the above-mentioned DataSource<br>
  must be specified. The default PostgreSQL mappings, by the way, don't<br>
  seem to work in my setup, so I've added them to the jaws.xml file, too:<br>
  <br>
  &lt;jaws&gt;<br>
          &lt;datasource&gt;PostgreSQLPool&lt;/datasource&gt;<br>
          &lt;type-mapping&gt;PostgreSQL&lt;/type-mapping&gt;<br>
  <br>
          &lt;type-mappings&gt;<br>
                  &lt;type-mapping&gt;<br>
                          &lt;name&gt;PostgreSQL&lt;/name&gt;<br>
                          &lt;mapping&gt;<br>
                                  
&lt;java-type&gt;java.lang.Boolean&lt;/java-type&gt;<br>
                                  &lt;jdbc-type&gt;&lt;/jdbc-type&gt;<br>
                                  &lt;sql-type&gt;BIT&lt;/sql-type&gt;<br>
                          &lt;/mapping&gt;<br>
                          &lt;mapping&gt;<br>
                                  
&lt;java-type&gt;java.lang.Short&lt;/java-type&gt;<br>
                                  &lt;jdbc-type&gt;INTEGER&lt;/jdbc-type&gt;<br>
                                  &lt;sql-type&gt;INTEGER&lt;/sql-type&gt;<br>
                          &lt;/mapping&gt;<br>
                          &lt;mapping&gt;<br>
                                  &lt;java-type&gt;java.util.Date&lt;/java-type&gt;<br>
                                  &lt;jdbc-type&gt;DATE&lt;/jdbc-type&gt;<br>
                                  &lt;sql-type&gt;DATE&lt;/sql-type&gt;<br>
                          &lt;/mapping&gt;<br>
                          &lt;mapping&gt;<br>
                                  
&lt;java-type&gt;java.lang.Double&lt;/java-type&gt;<br>
                                  &lt;jdbc-type&gt;DOUBLE&lt;/jdbc-type&gt;<br>
                                  &lt;sql-type&gt;FLOAT8&lt;/sql-type&gt;<br>
                          &lt;/mapping&gt;<br>
                          &lt;mapping&gt;<br>
                                  
&lt;java-type&gt;java.lang.Character&lt;/java-type&gt;<br>
                                  &lt;jdbc-type&gt;CHAR&lt;/jdbc-type&gt;<br>
                                  &lt;sql-type&gt;CHAR&lt;/sql-type&gt;<br>
                          &lt;/mapping&gt;<br>
                          &lt;mapping&gt;<br>
                                  
&lt;java-type&gt;java.lang.Object&lt;/java-type&gt;<br>
                                  &lt;jdbc-type&gt;BLOB&lt;/jdbc-type&gt;<br>
                                  &lt;sql-type&gt;BLOB&lt;/sql-type&gt;<br>
                          &lt;/mapping&gt;<br>
                          &lt;mapping&gt;<br>
                                  
&lt;java-type&gt;java.sql.TimeStamp&lt;/java-type&gt;<br>
                                  &lt;jdbc-type&gt;TIMESTAMP&lt;/jdbc-type&gt;<br>
                                  &lt;sql-type&gt;TIMESTAMP&lt;/sql-type&gt;<br>
                          &lt;/mapping&gt;<br>
                          &lt;mapping&gt;<br>
                                  
&lt;java-type&gt;java.lang.Integer&lt;/java-type&gt;<br>
                                  &lt;jdbc-type&gt;INTEGER&lt;/jdbc-type&gt;<br>
                                  &lt;sql-type&gt;INTEGER&lt;/sql-type&gt;<br>
                          &lt;/mapping&gt;<br>
                          &lt;mapping&gt;<br>
                                  &lt;java-type&gt;java.lang.Byte&lt;/java-type&gt;<br>
                                  &lt;jdbc-type&gt;TINYINT&lt;/jdbc-type&gt;<br>
                                  &lt;sql-type&gt;TINYINT&lt;/sql-type&gt;<br>
                          &lt;/mapping&gt;<br>
                          &lt;mapping&gt;<br>
                                  
&lt;java-type&gt;java.lang.Float&lt;/java-type&gt;<br>
                                  &lt;jdbc-type&gt;FLOAT&lt;/jdbc-type&gt;<br>
                                  &lt;sql-type&gt;FLOAT4&lt;/sql-type&gt;<br>
                          &lt;/mapping&gt;<br>
                          &lt;mapping&gt;<br>
                                  
&lt;java-type&gt;java.lang.String&lt;/java-type&gt;<br>
                                  &lt;jdbc-type&gt;VARCHAR&lt;/jdbc-type&gt;<br>
                                  &lt;sql-type&gt;TEXT&lt;/sql-type&gt;<br>
                          &lt;/mapping&gt;<br>
                          &lt;mapping&gt;<br>
                                  &lt;java-type&gt;java.lang.Long&lt;/java-type&gt;<br>
                                  &lt;jdbc-type&gt;BIGINT&lt;/jdbc-type&gt;<br>
                                  &lt;sql-type&gt;BIGINT&lt;/sql-type&gt;<br>
                          &lt;/mapping&gt;<br>
                  &lt;/type-mapping&gt;<br>
          &lt;/type-mappings&gt;<br>
  &lt;/jaws&gt;
  <p></p>
  <p>
  
  
  1.1                  jbossweb/oraclecmp.htm
  
  Index: oraclecmp.htm
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
  <html>
  
        <head>
                <meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
                <meta name="generator" content="Adobe GoLive 4">
                <title>JBoss Setup</title>
        </head>
  
        <body>
                <h2>JBoss CMP Quick Start using JBoss 2.0 and Oracle</h2>
                <p>Author: Ewan Branda<br>
                Last revised: July 11, 2000</p>
                <p>This guide should help you to quickly get JBoss 2.0 up and running 
using container-managed persistence and Oracle. With minor modifications you can use 
the same example with any database. It should be used in conjunction with the 
documents <i>Beginning EJB programming using jBoss</i> and <i>Using container-managed 
persistence with jBoss</i> available at the <a href="http://www.jboss.org">JBoss</a> 
web site (click on &quot;Getting Started&quot; under &quot;How To&quot;).</p>
                <p>In order to get JBoss up and running you have to do&nbsp;the 
following&nbsp;basic procedures:&nbsp;</p>
                <ol>
                        <li>Download and install the JBoss server
                        <li>Configure the JBoss server
                        <li>Deploy your EJB's to the JBoss server
                        <li>Build and run your client application
                </ol>
                <p>
                <hr>
                <h3>Download and Installation</h3>
                <ol type="1">
                        <li>If you are not running Java 1.3 then download it from <a 
href="http://java.sun.com">http://java.sun.com</a> and install it. JBoss only works 
with version 1.3 of the java VM.&nbsp;
                        <li>Download the jboss 2.0 distribution from <a 
href="http://www.jboss.org">http://www.jboss.org</a>.
                        <li>Download the minerva.jar archive from <a 
href="http://www.jboss.org">http://www.jboss.org</a>.
                        <li>Run the JBoss installer and point it to the 1.3 VM when 
prompted. The remainder of this document will refer to the JBoss installation 
directory as <em>$JBOSS_ROOT</em> .
                        <li>Copy the minerva.jar archive to the 
<i>$JBOSS_ROOT/lib/ext</i> directory
                </ol>
                <p>
                <hr>
                <h3>&nbsp;JBoss Server Configuration</h3>
                <ol>
                        <li>Edit the <em>$JBOSS_ROOT/conf/jboss.conf</em> file. You 
need to add <code>&lt;MLET&gt;</code> tags for each data source you are using. These 
notes assume that you are using the Minerva connection pooler (installed in the steps 
above). Here is an example entry for an oracle data source:
                        <p><code>&lt;MLET 
CODE=&quot;org.jboss.jdbc.XADataSourceLoader&quot; 
ARCHIVE=&quot;jboss.jar,minerva.jar&quot; CODEBASE=&quot;../lib/ext/&quot;&gt;<br>
                        &nbsp;&nbsp;&nbsp;&lt;ARG TYPE=&quot;java.lang.String&quot; 
VALUE=&quot;MyConnectionPool&quot;&gt;<br>
                        &nbsp;&nbsp;&nbsp;&lt;ARG TYPE=&quot;java.lang.String&quot; 
VALUE=&quot;org.jboss.minerva.xa.XADataSourceImpl&quot;&gt;<br>
                        &nbsp;&nbsp;&nbsp;&lt;ARG TYPE=&quot;java.lang.String&quot; 
VALUE=&quot;jdbc:oracle:thin:@localhost:1521:orcl&quot;&gt;<br>
                        &nbsp;&nbsp;&nbsp;&lt;ARG TYPE=&quot;java.lang.String&quot; 
VALUE=&quot;theUsername&quot;&gt;<br>
                        &nbsp;&nbsp;&nbsp;&lt;ARG TYPE=&quot;java.lang.String&quot; 
VALUE=&quot;thePassword&quot;&gt;<br>
                        &nbsp;&nbsp;&nbsp;&lt;ARG TYPE=&quot;java.lang.String&quot; 
VALUE=&quot;&quot;&gt;<br>
                        &nbsp;&nbsp;&nbsp;&lt;ARG TYPE=&quot;java.lang.Integer&quot; 
VALUE=&quot;2&quot;&gt;<br>
                        &nbsp;&nbsp;&nbsp;&lt;ARG TYPE=&quot;java.lang.Integer&quot; 
VALUE=&quot;5&quot;&gt;</code><code><br>
                        
&nbsp;&nbsp;&nbsp;&lt;ARGTYPE=&quot;java.lang.String&quot;VALUE=&quot;GCEnabled=true;ShrinkingEnabled=true;GCMinIdleTime=30000;GCInterval=10000;ShrinkMinIdleTime=30000&quot;&gt;<br>
                        &lt;/MLET&gt;</code></p>
                        <p>Note that the name specified in the first attribute tag 
above (&quot;MyConnectionPool&quot; in this example) will be the name used to refer to 
the data source in the <i>meta-inf/jboss.xml</i> (discussed later). The third argument 
is the database connection url and should be in the standard JDBC url format for that 
driver. Refer to the <a href="http://www.jboss.org">Minerva documentation</a> (select 
the &quot;Minerva&quot; link at left) for a discussion of JDBC driver types and tag 
formats.</p>
                        <p>An example <i>jboss.conf</i> file can be found <a 
href="#jboss_conf_xml">here</a>.</p>
                        <li>
                        <p>Edit the <em>$JBOSS_ROOT/conf/jboss.properties</em> file. 
You need to add any JDBC drivers you are using to the <i>jdbc.drivers</i> property. 
Here is an example entry:</p>
                        
<p><code>jdbc.drivers=org.hsql.jdbcDriver,oracle.jdbc.driver.OracleDriver</code>. This 
example deployment was tested using Oracle 8i Personal Edition (8.1.5) and the 
Oracle8i 8.1.6.0.1 Thin JDBC driver (downloadable from the <a 
href="http://www.oracle.com">Oracle site</a>).</p>
                        <li>Add the JDBC driver class files or jar file to the 
<em>$JBOSS_ROOT/lib/ext</em> directory.
                </ol>
                <p>
                <hr>
                <h3>EJB Deployment</h3>
                <ol>
                        <li>Create a <i>jaws.xml</i> configuration file. This file 
specifies details about the data source. It &quot;imports&quot; the data source into 
the EJB application context. Immediately below the <code>&lt;jaws&gt;</code> 
tag&nbsp;insert the following code:
                        
<p><code>&lt;datasource&gt;xa.MyConnectionPool&lt;/datasource&gt;<br>
                        &lt;type-mapping&gt;MyOracleTypeMapping&lt;/type-mapping&gt; 
</code></p>
                        <p>Note that the <code>datasource</code> attribute 
(&quot;MyConnectionPool&quot; in this case) corresponds to the name attribute in the 
<code>&lt;MLET&gt;</code> tag you added to the jboss.conf file. The 
&quot;<code>xa.</code>&quot; is required. &quot;MyOracleTypeMapping&quot;&nbsp;is the 
name of the type mapping configuration specified later in the same file. 
See&nbsp;the&nbsp;example code for&nbsp;details.</p>
                        <p>You should include datatype mappings (java to SQL) for the 
datasource you are using (see the example file). In addition, you may optionally 
include object-to-relational mapping information, such as the table name to use for a 
specified entity bean, the entity field name to table column name mappings, etc. If 
you don't provide these JBoss will use the ejb-name property as the table name and the 
entity bean field names for column names. See the example jaws.xml file for 
details.</p>
                        <p>An example <i>jaws.xml </i>file can be found <a 
href="#jaws_xml">here</a>.</p>
                        <li>Create a <i>jboss.xml</i> deployment descriptor. This file 
can be copied from a previous deployment, making&nbsp;some modifications. Immediately 
below the <code>&lt;jboss&gt;</code> tag&nbsp;insert the following code:
                        <p><code>&lt;resource-managers&gt;<br>
                        &nbsp;&nbsp;&lt;resource-manager 
res-class=&quot;org.jboss.ejb.deployment.JDBCResource&quot;&gt;<br>
                        &nbsp;&nbsp;&lt;res-name&gt;MyDB&lt;/res-name&gt;<br>
                        
&nbsp;&nbsp;&lt;res-jndi-name&gt;xa.MyConnectionPool&lt;/res-jndi-name&gt;<br>
                        &nbsp;&nbsp;&lt;/resource-manager&gt;<br>
                        &lt;/resource-managers&gt; </code></p>
                        <p>Note that the <code>res-jndi-name</code> attribute 
(&quot;MyConnectionPool&quot; in this case) corresponds to the name attribute in the 
<code>&lt;MLET&gt;</code> tag you added to the jboss.conf file. The 
&quot;<code>xa.</code>&quot; is required. Note also that the <code>res-name</code> 
attribute (&quot;MyDB&quot;) will be used by the entity specifiers in 
<i>ejb-jar.xml</i> to refer to data source resources, as discussed below.<br>
                        <br>
                        An example <i>jboss.xml </i>file can be found <a 
href="#jboss_xml">here</a> .</p>
                        <li>Create an <i>ejb-jar.xml</i> deployment descriptor. This 
should conform to EJB1.1 standards for this file type. Each entity bean that uses CMP 
should have the following code within the <code>&lt;entity&gt;</code> tag:
                        <p><code>&lt;resource-ref&gt;<br>
                        &nbsp;&nbsp;&lt;description&gt;Data source&lt;/description<br>
                        &nbsp;&nbsp;&lt;res-ref-name&gt;MyDB&lt;/res-ref-name&gt;<br>
                        
&nbsp;&nbsp;&lt;res-type&gt;javax.sql.DataSource&lt;/res-type&gt;<br>
                        &nbsp;&nbsp;&lt;res-auth&gt;Container&lt;/res-auth&gt;<br>
                        &lt;/resource-ref&gt; </code></p>
                        <p>Note that the&nbsp; <code>res-ref-name</code> attribute 
(&quot;MyDB&quot; in this case) corresponds to the <code>res-name </code>attribute in 
the <code>resource-ref</code> section of the <em>jboss.xml</em> file. This code tells 
the ejb container to use <code>MyDB</code> as the data source for persistence 
operations for this entity.</p>
                        <p>An example <i>ejb-jar.xml </i>file can be found <a 
href="#ejb-jar_xml">here</a>. Note that the &lt;ejb-name&gt; attribute of the 
&lt;entity&gt; will be the table name created in the database at deployment time. Also 
note that database table names and column names can be optionally included in the 
entity tags.</p>
                        <li>
                        <p>Package your ejb classes and the three xml files you build 
in the preceding steps into a jar file. The xml files should reside in a meta-inf 
directory. An example script is <code>jar cvf myapp.jar *.class 
META-INF\*.xml</code></p>
                        <li>
                        <p>Deploy the jar file to the JBoss server. To do this, simply 
copy the jar file to the <i>$JBOSS_ROOT/deploy</i> directory. If the JBoss server is 
already running then it will automatically redeploy the application. If the server is 
not yet running then start it by running <i>$JBOSS_ROOT/bin/run.bat</i>. This will 
deploy the application, hopefully without errors. There may be some errors that appear 
that I don't understand and that don't appear to affect the application runtime. These 
include the line <code>[Container factory] java.lang.NullPointerException</code>. You 
need to make sure that the server outputs <code>[Container factory] Bound MyBean to 
MyBeanJNDIName</code> for each of your beans, where&nbsp;&quot;MyBeanJNDIName&quot; is 
the name specified in the <code>&lt;jndi-name&gt;</code> attribute for each bean in 
the <i>jboss.xml</i> file. The server should finally output <code>[Container factory] 
Deployed application: file:/$JBOSS_ROOT/deploy/myApp.jar</code> wh!
ere &quot;myApp.jar&quot; is the name of the jar file you built in the previous 
step.</p>
                </ol>
                <p>
                <hr>
                <h3>Running the Client Application</h3>
                <ol>
                        <li>Run a client application to use the deployed beans. The 
client app can access the beans using the following code:
                        <p><code>Properties props = new Properties();<br>
                        props.put(Context.INITIAL_CONTEXT_FACTORY, 
&quot;org.jnp.interfaces.NamingContextFactory&quot;);<br>
                        props.put(Context.URL_PKG_PREFIXES, 
&quot;org.jnp.interfaces&quot;);<br>
                        props.put(Context.PROVIDER_URL, 
&quot;localhost&quot;);&nbsp;<br>
                        InitialContext jndiContext = new InitialContext(props);<br>
                        Object ref&nbsp; = 
jndiContext.lookup(&quot;MyBeanJNDIName&quot;); </code></p>
                        <p>where &quot;MyBeanJNDIName&quot; is the JNDI name specified 
in the <code>&lt;jndi-name&gt;</code> attribute in the <i>jboss.xml</i> file.
                        <p>The client application must have the following classes in 
the VM classpath in order to run:</p>
                        <ul>
                                <li><i>$JBOSS_ROOT/lib/ext/ejb.jar</i>
                                <li><i>$JBOSS_ROOT/client/jnp-client.jar</i>
                                <li><i>$JBOSS_ROOT/client/jboss-client.jar</i>
                        </ul>
                        <p>An example client execution command would be:<br>
                        <code>java -classpath 
d:\jboss2\lib\ext\ejb.jar;d:\jboss2\client\jnp-client.jar;d:\jboss2\client\jboss-client.jar
 mypackage.MyClientClass</code></p>
                </ol>
                <p>
                <hr>
                <h3>Example Deployment Files</h3>
                <p>
                <hr>
                <a name="jaws_xml"></a>
                <h4>jaws.xml</h4>
                <p><code>&lt;?xml version=&quot;1.0&quot; 
encoding=&quot;UTF-8&quot;?&gt;<br>
                &lt;jaws&gt;</code></p>
                <p><code>&nbsp;&nbsp;&nbsp; 
&lt;datasource&gt;xa.MyConnectionPool&lt;/datasource&gt;<br>
                &nbsp;&nbsp;&nbsp; 
&lt;type-mapping&gt;MyOracleTypeMapping&lt;/type-mapping&gt;</code></p>
                <p><code>&nbsp;&nbsp;&nbsp; &lt;type-mappings&gt;<br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&lt;type-mapping&gt;</code></p>
                
<p><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&lt;name&gt;MyOracleTypeMapping&lt;/name&gt;<br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&lt;mapping&gt;<br>
                
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 &lt;java-type&gt;java.lang.Long&lt;/java-type&gt;<br>
                
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 &lt;jdbc-type&gt;BIGINT&lt;/jdbc-type&gt;<br>
                
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 &lt;sql-type&gt;BIGINT&lt;/sql-type&gt;<br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&lt;/mapping&gt;<br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&lt;mapping&gt;<br>
                
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 &lt;java-type&gt;java.lang.String&lt;/java-type&gt;<br>
                
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 &lt;jdbc-type&gt;VARCHAR&lt;/jdbc-type&gt;<br>
                
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 &lt;sql-type&gt;VARCHAR(256)&lt;/sql-type&gt;<br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&lt;/mapping&gt;<br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&lt;mapping&gt;<br>
                
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 &lt;java-type&gt;java.lang.Character&lt;/java-type&gt;<br>
                
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 &lt;jdbc-type&gt;CHAR&lt;/jdbc-type&gt;<br>
                
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 &lt;sql-type&gt;CHAR&lt;/sql-type&gt;<br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&lt;/mapping&gt;<br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&lt;mapping&gt;<br>
                
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 &lt;java-type&gt;java.lang.Short&lt;/java-type&gt;<br>
                
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 &lt;jdbc-type&gt;INTEGER&lt;/jdbc-type&gt;<br>
                
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 &lt;sql-type&gt;INTEGER&lt;/sql-type&gt;<br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&lt;/mapping&gt;<br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&lt;mapping&gt;<br>
                
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 &lt;java-type&gt;java.sql.TimeStamp&lt;/java-type&gt;<br>
                
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 &lt;jdbc-type&gt;TIMESTAMP&lt;/jdbc-type&gt;<br>
                
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 &lt;sql-type&gt;TIMESTAMP&lt;/sql-type&gt;<br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&lt;/mapping&gt;<br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&lt;mapping&gt;<br>
                
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 &lt;java-type&gt;java.lang.Double&lt;/java-type&gt;<br>
                
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 &lt;jdbc-type&gt;DOUBLE&lt;/jdbc-type&gt;<br>
                
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 &lt;sql-type&gt;DOUBLE&lt;/sql-type&gt;<br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&lt;/mapping&gt;<br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&lt;mapping&gt;<br>
                
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 &lt;java-type&gt;java.lang.Byte&lt;/java-type&gt;<br>
                
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 &lt;jdbc-type&gt;TINYINT&lt;/jdbc-type&gt;<br>
                
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 &lt;sql-type&gt;TINYINT&lt;/sql-type&gt;<br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&lt;/mapping&gt;<br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&lt;mapping&gt;<br>
                
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 &lt;java-type&gt;java.lang.Boolean&lt;/java-type&gt;<br>
                
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 &lt;jdbc-type&gt;&lt;/jdbc-type&gt;<br>
                
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 &lt;sql-type&gt;BIT&lt;/sql-type&gt;<br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&lt;/mapping&gt;<br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&lt;mapping&gt;<br>
                
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 &lt;java-type&gt;java.lang.Float&lt;/java-type&gt;<br>
                
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 &lt;jdbc-type&gt;FLOAT&lt;/jdbc-type&gt;<br>
                
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 &lt;sql-type&gt;FLOAT&lt;/sql-type&gt;<br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&lt;/mapping&gt;<br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&lt;mapping&gt;<br>
                
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 &lt;java-type&gt;java.lang.Object&lt;/java-type&gt;<br>
                
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 &lt;jdbc-type&gt;JAVA_OBJECT&lt;/jdbc-type&gt;<br>
                
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 &lt;sql-type&gt;JAVA_OBJECT&lt;/sql-type&gt;<br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&lt;/mapping&gt;<br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&lt;mapping&gt;<br>
                
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 &lt;java-type&gt;java.util.Date&lt;/java-type&gt;<br>
                
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 &lt;jdbc-type&gt;DATE&lt;/jdbc-type&gt;<br>
                
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 &lt;sql-type&gt;DATE&lt;/sql-type&gt;<br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&lt;/mapping&gt;<br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&lt;mapping&gt;<br>
                
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 &lt;java-type&gt;java.lang.Integer&lt;/java-type&gt;<br>
                
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 &lt;jdbc-type&gt;INTEGER&lt;/jdbc-type&gt;<br>
                
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 &lt;sql-type&gt;INTEGER&lt;/sql-type&gt;<br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&lt;/mapping&gt;<br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&lt;/type-mapping&gt;</code></p>
                <p><code>&nbsp;&nbsp;&nbsp; &lt;/type-mappings&gt;</code></p>
                <p><code>&nbsp;</code></p>
                <p><code>&nbsp;&nbsp;&nbsp; &lt;!-- This section provides optional 
object-to-relational mapping descriptions --&gt;</code></p>
                <p><code>&nbsp;&nbsp;&nbsp;&lt;enterprise-beans&gt;</code></p>
                <p><code>&nbsp;&nbsp;&nbsp; &lt;entity&gt;<br>
                &nbsp;&nbsp;&nbsp; &nbsp;&nbsp; 
&nbsp;&lt;ejb-name&gt;MyMovieBean&lt;/ejb-name&gt;<br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&lt;table-name&gt;MOVIE_TABLE&lt;/table-name&gt;<br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&lt;create-table&gt;true&lt;/create-table&gt;<br>
                
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;remove-table&gt;false&lt;/remove-table&gt;<br>
                
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;tuned-updates&gt;true&lt;/tuned-updates&gt;<br>
                
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;read-only&gt;false&lt;/read-only&gt;<br>
                
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;time-out&gt;300&lt;/time-out&gt;<br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;cmp-field&gt;<br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&lt;field-name&gt;id&lt;/field-name&gt;<br>
                
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;column-name&gt;ID&lt;/column-name&gt;<br>
                &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&lt;sql-type&gt;INTEGER&lt;/sql-type&gt;<br>
                &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&lt;jdbc-type&gt;INTEGER&lt;/jdbc-type&gt;<br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/cmp-field&gt;<br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&lt;cmp-field&gt;<br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&lt;field-name&gt;title&lt;/field-name&gt;<br>
                &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&lt;column-name&gt;MOVIE_TITLE&lt;/column-name&gt;<br>
                &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&lt;sql-type&gt;VARCHAR(256)&lt;/sql-type&gt;<br>
                &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&lt;jdbc-type&gt;VARCHAR&lt;/jdbc-type&gt;<br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/cmp-field&gt;<br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&lt;cmp-field&gt;<br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&lt;field-name&gt;director&lt;/field-name&gt;<br>
                &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&lt;column-name&gt;DIRECTOR&lt;/column-name&gt;<br>
                &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&lt;sql-type&gt;VARCHAR(256)&lt;/sql-type&gt;<br>
                &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&lt;jdbc-type&gt;VARCHAR&lt;/jdbc-type&gt;<br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/cmp-field&gt;<br>
                &nbsp;&nbsp;&nbsp; &nbsp;&lt;/entity&gt;</code></p>
                <p><code>&nbsp;&nbsp;&nbsp;&lt;/enterprise-beans&gt;</code></p>
                <p><code>&nbsp;</code></p>
                <p><code><br>
                &lt;/jaws&gt;<br>
                </code></p>
                <p>
                <hr>
                <a name="jboss_xml"></a>
                <h4>jboss.xml</h4>
                <p><code>&lt;?xml version=&quot;1.0&quot; 
encoding=&quot;Cp1252&quot;?&gt;</code></p>
                <p><code>&lt;jboss&gt;</code></p>
                <p><code>&nbsp;&nbsp;&nbsp;&nbsp; &lt;resource-managers&gt;<br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;resource-manager 
res-class=&quot;org.jboss.ejb.deployment.JDBCResource&quot;&gt;<br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&lt;res-name&gt;MovieDB&lt;/res-name&gt;<br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&lt;res-jndi-name&gt;xa.MyConnectionPool&lt;/res-jndi-name&gt;<br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/resource-manager&gt;<br>
                &nbsp;&nbsp;&nbsp;&nbsp; &lt;/resource-managers&gt;</code></p>
                <p><code>&nbsp;&nbsp;&nbsp;&nbsp; &lt;enterprise-beans&gt;<br>
                &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&lt;entity&gt;<br>
                &nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&lt;ejb-name&gt;MyMovieBean&lt;/ejb-name&gt;<br>
                &nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&lt;jndi-name&gt;MyMovieBeanJNDIName&lt;/jndi-name&gt;<br>
                &nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;configuration-name&gt;CMP 
EntityBean&lt;/configuration-name&gt;<br>
                &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&lt;/entity&gt;<br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;session&gt;<br>
                &nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&lt;ejb-name&gt;MyMovieLibraryBean&lt;/ejb-name&gt;<br>
                &nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&lt;jndi-name&gt;MyMovieLibraryBeanJNDIName&lt;/jndi-name&gt;<br>
                &nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&lt;configuration-name&gt;Default Stateless SessionBean&lt;/configuration-name&gt;<br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/session&gt;<br>
                
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;secure&gt;false&lt;/secure&gt;<br>
                &nbsp;&nbsp;&nbsp;&nbsp; &lt;/enterprise-beans&gt;</code></p>
                <p><code>&lt;/jboss&gt;<br>
                </code></p>
                <p>
                <hr>
                <a name="ejb-jar_xml"></a>
                <h4>ejb-jar.xml</h4>
                <p><code>&lt;?xml version=&quot;1.0&quot;?&gt;</code></p>
                <p><code>&lt;!DOCTYPE ejb-jar PUBLIC &quot;-//Sun Microsystems, 
Inc.//DTD Enterprise JavaBeans 1.1//EN&quot; &quot;<a 
href='http://java.sun.com/j2ee/dtds/ejb-jar_1_1.dtd"' 
??>http://java.sun.com/j2ee/dtds/ejb-jar_1_1.dtd&quot;</a>&gt;</code></p>
                <p><code>&lt;ejb-jar&gt;</code></p>
                <p><code>&nbsp; 
&nbsp;&lt;display-name&gt;MyMovieDatabase&lt;/display-name&gt;<br>
                &nbsp;<br>
                &nbsp; &nbsp;&lt;enterprise-beans&gt;</code></p>
                <p><code>&nbsp; &nbsp;&nbsp;&lt;entity&gt;<br>
                &nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&lt;description&gt;Models 
a movie object&lt;/description&gt;<br>
                &nbsp;&nbsp;&nbsp; &nbsp;&nbsp; 
&nbsp;&nbsp;&lt;ejb-name&gt;MyMovieBean&lt;/ejb-name&gt;<br>
                &nbsp;&nbsp;&nbsp; &nbsp;&nbsp; 
&nbsp;&nbsp;&lt;home&gt;mypackage.MovieHome&lt;/home&gt;<br>
                &nbsp;&nbsp;&nbsp; &nbsp;&nbsp; 
&nbsp;&nbsp;&lt;remote&gt;mypackage.Movie&lt;/remote&gt;<br>
                &nbsp;&nbsp;&nbsp;&nbsp; &nbsp; 
&nbsp;&nbsp;&lt;ejb-class&gt;mypackage.MovieBean&lt;/ejb-class&gt;<br>
                &nbsp;&nbsp;&nbsp;&nbsp; &nbsp; 
&nbsp;&nbsp;&lt;persistence-type&gt;Container&lt;/persistence-type&gt;<br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp;&lt;prim-key-class&gt;mypackage.MoviePK&lt;/prim-key-class&gt;<br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp;&lt;reentrant&gt;False&lt;/reentrant&gt;</code></p>
                <p><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp;&lt;resource-ref&gt;<br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp;&lt;description&gt;Database&lt;/description&gt;<br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp;&lt;res-ref-name&gt;MovieDB&lt;/res-ref-name&gt;<br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp;&lt;res-type&gt;javax.sql.DataSource&lt;/res-type&gt;<br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp;&lt;res-auth&gt;Container&lt;/res-auth&gt;<br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&lt;/resource-ref&gt;<br>
                &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&lt;/entity&gt;</code></p>
                <p><code>&nbsp;&nbsp;&lt;session&gt;<br>
                &nbsp; &nbsp;&nbsp;&nbsp;&lt;description&gt;Models a movie 
library&lt;/description&gt;<br>
                &nbsp; 
&nbsp;&nbsp;&nbsp;&lt;ejb-name&gt;MyMovieLibraryBean&lt;/ejb-name&gt;<br>
                &nbsp; 
&nbsp;&nbsp;&nbsp;&lt;home&gt;mypackage.MovieLibraryHome&lt;/home&gt;<br>
                &nbsp; 
&nbsp;&nbsp;&nbsp;&lt;remote&gt;mypackage.MovieLibrary&lt;/remote&gt;<br>
                &nbsp; 
&nbsp;&nbsp;&nbsp;&lt;ejb-class&gt;mypackage.MovieLibraryBean&lt;/ejb-class&gt;<br>
                &nbsp; &nbsp;&nbsp;&nbsp;&lt;ejb-ref&gt;<br>
                &nbsp; 
&nbsp;&nbsp;&nbsp;&nbsp;&lt;ejb-ref-name&gt;movie/Movie&lt;/ejb-ref-name&gt;<br>
                &nbsp; 
&nbsp;&nbsp;&nbsp;&nbsp;&lt;ejb-ref-type&gt;Entity&lt;/ejb-ref-type&gt;<br>
                &nbsp; 
&nbsp;&nbsp;&nbsp;&nbsp;&lt;home&gt;mypackage.MovieHome&lt;/home&gt;<br>
                &nbsp; 
&nbsp;&nbsp;&nbsp;&nbsp;&lt;remote&gt;mypackage.Movie&lt;/remote&gt;<br>
                &nbsp; 
&nbsp;&nbsp;&nbsp;&nbsp;&lt;ejb-link&gt;mypackage.MovieBean&lt;/ejb-link&gt;<br>
                &nbsp; &nbsp;&nbsp;&nbsp;&lt;/ejb-ref&gt;<br>
                &nbsp;&nbsp;&lt;/session&gt;</code></p>
                <p><code>&nbsp; &nbsp;&lt;/enterprise-beans&gt;</code></p>
                <p><code>&nbsp;&nbsp;&lt;assembly-descriptor&gt;<br>
                &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&lt;container-transaction&gt;<br>
                &nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp;&nbsp;&lt;method&gt;<br>
                &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp;&lt;ejb-name&gt;MyMovieBean&lt;/ejb-name&gt;<br>
                &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp;&lt;method-name&gt;*&lt;/method-name&gt;<br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&lt;/method&gt;<br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp;&lt;trans-attribute&gt;Required&lt;/trans-attribute&gt;<br>
                &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&lt;/container-transaction&gt;<br>
                &nbsp; &nbsp;&lt;/assembly-descriptor&gt;<br>
                &nbsp;<br>
                &lt;/ejb-jar&gt;</code></p>
                <p><code>&nbsp;</code></p>
                <p>
                <hr>
                <a name="jboss_conf_xml"></a>
                <h4>jboss.conf</h4>
                <p><code>&lt;MLET CODE = &quot;org.jboss.logging.Logger&quot; 
ARCHIVE=&quot;jboss.jar&quot; CODEBASE=&quot;../lib/ext/&quot;&gt;<br>
                &lt;/MLET&gt;<br>
                &nbsp;&nbsp;<br>
                &nbsp;&nbsp;<br>
                &lt;MLET CODE = &quot;org.jboss.logging.ConsoleLogging&quot; 
ARCHIVE=&quot;jboss.jar&quot; CODEBASE=&quot;../lib/ext/&quot;&gt;<br>
                &nbsp;&nbsp; &lt;ARG TYPE=&quot;java.lang.String&quot; 
VALUE=&quot;Information,Debug,Warning,Error&quot;&gt;<br>
                &nbsp;&nbsp; &lt;ARG TYPE=&quot;java.lang.String&quot; 
VALUE=&quot;[{2}] {4}&quot;&gt;<br>
                &lt;/MLET&gt;<br>
                &nbsp;&nbsp;<br>
                &lt;MLET CODE = &quot;org.jboss.util.ClassPathExtension&quot; 
ARCHIVE=&quot;jboss.jar&quot; CODEBASE=&quot;../lib/ext/&quot;&gt;<br>
                &nbsp;&nbsp; &lt;ARG TYPE=&quot;java.lang.String&quot; 
VALUE=&quot;../../log/&quot;&gt;<br>
                &lt;/MLET&gt;<br>
                &nbsp;&nbsp;<br>
                &lt;MLET CODE = &quot;org.jboss.util.Info&quot; 
ARCHIVE=&quot;jboss.jar&quot; CODEBASE=&quot;../lib/ext/&quot;&gt;<br>
                &lt;/MLET&gt;</code></p>
                <p><code>&lt;MLET CODE = &quot;org.jboss.util.ClassPathExtension&quot; 
ARCHIVE=&quot;jboss.jar&quot; CODEBASE=&quot;../lib/ext/&quot;&gt;<br>
                &nbsp;&nbsp; &lt;ARG TYPE=&quot;java.lang.String&quot; 
VALUE=&quot;./&quot;&gt;<br>
                &lt;/MLET&gt;<br>
                &nbsp;&nbsp;<br>
                &lt;MLET CODE = &quot;org.jboss.util.ClassPathExtension&quot; 
ARCHIVE=&quot;jboss.jar&quot; CODEBASE=&quot;../lib/ext/&quot;&gt;<br>
                &nbsp;&nbsp; &lt;ARG TYPE=&quot;java.lang.String&quot; 
VALUE=&quot;../../db/&quot;&gt;<br>
                &lt;/MLET&gt;<br>
                &nbsp;&nbsp;<br>
                &lt;MLET CODE = &quot;org.jboss.jdbc.JdbcProvider&quot; 
ARCHIVE=&quot;jboss.jar&quot; CODEBASE=&quot;../lib/ext/&quot;&gt;<br>
                &lt;/MLET&gt;<br>
                &nbsp;&nbsp;<br>
                &lt;MLET CODE = &quot;org.jboss.web.WebProvider&quot; 
ARCHIVE=&quot;jboss.jar,dynaserver.jar&quot; CODEBASE=&quot;../lib/ext/&quot;&gt;<br>
                &lt;/MLET&gt;<br>
                &nbsp;&nbsp;<br>
                &lt;MLET CODE = &quot;org.jboss.naming.NamingProvider&quot; 
ARCHIVE=&quot;jnpserver.jar&quot; CODEBASE=&quot;../lib/ext/&quot;&gt;<br>
                &lt;/MLET&gt;</code></p>
                <p><code>&lt;MLET CODE = 
&quot;org.jboss.tm.TransactionManagerService&quot; ARCHIVE=&quot;jboss.jar&quot; 
CODEBASE=&quot;../lib/ext/&quot;&gt;<br>
                &lt;/MLET&gt;</code></p>
                <p><code><br>
                &lt;MLET CODE = &quot;org.jboss.jdbc.XADataSourceLoader&quot; 
ARCHIVE=&quot;jboss.jar,minerva.jar,classes12_01.jar&quot; 
CODEBASE=&quot;../lib/ext/&quot;&gt;<br>
                &nbsp;&nbsp; &lt;ARG TYPE=&quot;java.lang.String&quot; 
VALUE=&quot;TestPool&quot;&gt;<br>
                &nbsp;&nbsp; &lt;ARG TYPE=&quot;java.lang.String&quot; 
VALUE=&quot;org.jboss.minerva.xa.XADataSourceImpl&quot;&gt;<br>
                &nbsp;&nbsp; &lt;ARG TYPE=&quot;java.lang.String&quot; 
VALUE=&quot;jdbc:oracle:thin:@YOUR_DATABASE_SERVER:1521:orcl&quot;&gt;<br>
                &nbsp;&nbsp; &lt;ARG TYPE=&quot;java.lang.String&quot; 
VALUE=&quot;USERNAME&quot;&gt;<br>
                &nbsp;&nbsp; &lt;ARG TYPE=&quot;java.lang.String&quot; 
VALUE=&quot;PASSWORD&quot;&gt;<br>
                &nbsp;&nbsp; &lt;ARG TYPE=&quot;java.lang.String&quot; 
VALUE=&quot;&quot;&gt;<br>
                &nbsp;&nbsp; &lt;ARG TYPE=&quot;java.lang.Integer&quot; 
VALUE=&quot;2&quot;&gt;<br>
                &nbsp;&nbsp; &lt;ARG TYPE=&quot;java.lang.Integer&quot; 
VALUE=&quot;5&quot;&gt;&lt; 
BR&gt;&nbsp;&nbsp;&lt;ARGTYPE=&quot;java.lang.String&quot;VALUE=&quot;GCEnabled=true;ShrinkingEnabled=true;GCMinIdleTime=30000;GCInterval=10000;ShrinkMinIdleTime=30000&quot;&gt;<br>
                &lt;/MLET&gt;<br>
                &nbsp;&nbsp;<br>
                &lt;MLET CODE = &quot;org.jboss.ejb.ContainerFactory&quot; 
ARCHIVE=&quot;jboss.jar,jnpserver.jar,jxjboss.jar&quot; 
CODEBASE=&quot;../lib/ext/&quot;&gt;<br>
                &lt;/MLET&gt;</code></p>
                <p><code>&lt;MLET CODE = &quot;org.jboss.ejb.AutoDeployer&quot; 
ARCHIVE=&quot;jboss.jar&quot;&gt;<br>
                &nbsp; &lt;ARG TYPE=&quot;java.lang.String&quot; 
VALUE=&quot;../deploy/&quot;&gt;<br>
                &lt;/MLET&gt;<br>
                &nbsp;&nbsp;<br>
                &lt;MLET CODE = &quot;org.jboss.jmx.server.JMXAdaptorService&quot; 
ARCHIVE=&quot;jboss.jar&quot; CODEBASE=&quot;../lib/ext/&quot;&gt;<br>
                &lt;/MLET&gt;</code></p>
                <p><code>&lt;MLET CODE = 
&quot;com.sun.jdmk.comm.HtmlAdaptorServer&quot; ARCHIVE=&quot;jmxtools.jar&quot; 
CODEBASE=&quot;../lib/ext/&quot;NAME=&quot;Adaptor:name=html,port=8082&quot;&gt;<br>
                &lt;/MLET&gt;<br>
                </code>
        </body>
  
  </html>
  
  
  
  1.1                  jbossweb/mssql.htm
  
  Index: mssql.htm
  ===================================================================
  <html>
  
        <head>
                <meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
                <meta name="generator" content="Adobe GoLive 4">
                <title>jboss.xml</title>
        </head>
  
        <font face="arial,helvetica" size="6" color="#ffcc00">MS-SQL&nbsp;Howto (under 
development) </font>
        <p>This Howto is still under development we repost messages sent to the jboss 
lists</p>
        <p>MS-SQL&nbsp;with JDBC</p>
        <p>==============</p>
        <p>1) Copy your JDBC-jar file from inet to jboss /lib/ext directory<br>
        </p>
        <p>2) Start jBoss and check if the JDBC-jar file is loaded (it appears<br>
        at the very beginning a list of jar-files loaded)<br>
        </p>
        <p>3) Add the JDBC driver class name in jboss.properties in the 
jboss.drivers<br>
        list<br>
        </p>
        <p>4) Start jBoss and check if the JDBC-driver is found (it appears at<br>
        right after the list of jar-files loaded)<br>
        </p>
        <p>5) Add a &lt;M-LET&gt; tag to the jboss.conf, add the JDBC-jar in<br>
        after the jboss.jar in this tag (everything within {} is to be replaced by<br>
        your value inclusive the {}):<br>
        </p>
        <p>&lt;MLET CODE = &quot;org.jboss.jdbc.DataSourceImpl&quot; 
ARCHIVE=&quot;jboss.jar,{your<br>
        JDBC-jar file}&quot; CODEBASE=&quot;../lib/ext/&quot;&gt;<br>
          &lt;ARG TYPE=&quot;java.lang.String&quot; VALUE=&quot;{JDBC-url to the 
DB}&quot;&gt;<br>
          &lt;ARG TYPE=&quot;java.lang.String&quot; VALUE=&quot;{datasource name like: 
MsSQL}&quot;&gt;<br>
          &lt;ARG TYPE=&quot;java.lang.String&quot; VALUE=&quot;{JDBC-driver class 
name}&quot;&gt;<br>
          &lt;ARG TYPE=&quot;java.lang.String&quot; VALUE=&quot;{User 
name}&quot;&gt;<br>
          &lt;ARG TYPE=&quot;java.lang.String&quot; 
VALUE=&quot;{Password}&quot;&gt;<br>
        &lt;/MLET&gt;<br>
        </p>
        <p>6) Start jBoss and check if a new DataSource is loaded (count them if 
there<br>
        is no output<br>
        from the JDBC loading)<br>
        </p>
        <p>7) Start EJX (java -jar ejx.jar within the /bin directory)<br>
        </p>
        <p>8) Load your EJB jar file and select the JAWS.xml or create one<br>
        </p>
        <p>9) Insert MsSQL as datasource name ( or the datasource name you specifed<br>
        in step 5)<br>
        </p>
        <p>10) Set the datatype mapping from the list below BUT<br>
        now we have a problem because there is NO datatype mapping for<br>
        MS SQL-Server but I will look this week for one or at least tell you how<br>
        to create one. CAN someone tell me how?<br>
        </p>
        <p>11) Start jBoss and check if the output if the tables are created 
(output<br>
        starts with JAWS).</p>
        <p></p>
        <p>MS-SQL&nbsp;with&nbsp;JDBC-ODBC</p>
        <p>====================</p>
        <p>From: Steve Kwee &lt;[EMAIL PROTECTED]&gt;<br>
        To: &quot;'jBoss'&quot; &lt;[EMAIL PROTECTED]&gt;<br>
        Subject: AW: [jBoss-User] SQL Server<br>
        Date: Tue, 27 Jun 2000 12:19:48 +0200<br>
        Reply-To: &quot;jBoss&quot; &lt;[EMAIL PROTECTED]&gt;<br>
        Sender: &lt;[EMAIL PROTECTED]&gt;<br>
        <br>
        <br>
        At least, there is someone else, using MSSQL...<br>
        Last night I put toghether this kind of readme on the topic.<br>
        Works with a compiled version I took from the cvs a week ago.<br>
        <br>
        <br>
        Using MS SQLServer with the JDBC-ODBC Bridge (included in JDK since 1.2.x)<br>
        --------------------------------------------------------------------------<br>
        Should also work for other ODBC Datasources<br>
        <br>
        <br>
        1. Install ODBC Datasource &lt;my_dsn&gt;<br>
        <br>
        2. Add sun.jdbc.odbc.JdbcOdbcDriver to jboss.properties:<br>
        <br>
        
jdbc.drivers=org.hsql.jdbcDriver,jdbc.idbDriver,sun.jdbc.odbc.JdbcOdbcDriver<br>
        <br>
        <br>
        3. Add MLet for Datasource in jboss.conf<br>
        &lt;MLET CODE = &quot;org.jboss.jdbc.DataSourceImpl&quot; 
ARCHIVE=&quot;rt.jar&quot;<br>
        CODEBASE=&quot;../lib/ext/&quot;&gt;<br>
          &lt;ARG TYPE=&quot;java.lang.String&quot; 
VALUE=&quot;jdbc:odbc:my_dsn&quot;&gt;<br>
          &lt;ARG TYPE=&quot;java.lang.String&quot; VALUE=&quot;my_dsn&quot;&gt;<br>
          &lt;ARG TYPE=&quot;java.lang.String&quot; 
VALUE=&quot;sun.jdbc.odbc.JdbcOdbcDriver&quot;&gt;<br>
          &lt;ARG TYPE=&quot;java.lang.String&quot; VALUE=&quot;sa&quot;&gt;<br>
          &lt;ARG TYPE=&quot;java.lang.String&quot; VALUE=&quot;&quot;&gt;<br>
        &lt;/MLET&gt;<br>
        <br>
        4. Add Type-Mapping for MS SQLSERVER to the beans jaws.xml<br>
        (was provided by Pedro Mota, maybe someone could add it to the<br>
        cvs/defaultjaws.xml)<br>
        &lt;type-mapping&gt;<br>
          &lt;name&gt;MS SQLSERVER&lt;/name&gt;<br>
          &lt;mapping&gt;<br>
            &lt;java-type&gt;java.lang.Integer&lt;/java-type&gt;<br>
            &lt;jdbc-type&gt;INTEGER&lt;/jdbc-type&gt;<br>
            &lt;sql-type&gt;INTEGER&lt;/sql-type&gt;<br>
          &lt;/mapping&gt;<br>
          &lt;mapping&gt;<br>
            &lt;java-type&gt;java.lang.Character&lt;/java-type&gt;<br>
            &lt;jdbc-type&gt;CHAR&lt;/jdbc-type&gt;<br>
            &lt;sql-type&gt;CHAR&lt;/sql-type&gt;<br>
          &lt;/mapping&gt;<br>
          &lt;mapping&gt;<br>
            &lt;java-type&gt;java.lang.Short&lt;/java-type&gt;<br>
            &lt;jdbc-type&gt;SMALLINT&lt;/jdbc-type&gt;<br>
            &lt;sql-type&gt;SMALLINT&lt;/sql-type&gt;<br>
          &lt;/mapping&gt;<br>
          &lt;mapping&gt;<br>
            &lt;java-type&gt;java.lang.Double&lt;/java-type&gt;<br>
            &lt;jdbc-type&gt;DOUBLE&lt;/jdbc-type&gt;<br>
            &lt;sql-type&gt;DOUBLE&lt;/sql-type&gt;<br>
          &lt;/mapping&gt;<br>
          &lt;mapping&gt;<br>
            &lt;java-type&gt;java.lang.Long&lt;/java-type&gt;<br>
            &lt;jdbc-type&gt;DECIMAL&lt;/jdbc-type&gt;<br>
            &lt;sql-type&gt;DECIMAL(20)&lt;/sql-type&gt;<br>
          &lt;/mapping&gt;<br>
          &lt;mapping&gt;<br>
            &lt;java-type&gt;java.lang.String&lt;/java-type&gt;<br>
            &lt;jdbc-type&gt;VARCHAR&lt;/jdbc-type&gt;<br>
            &lt;sql-type&gt;VARCHAR(256)&lt;/sql-type&gt;</p>
        <p>  &lt;/mapping&gt;<br>
          &lt;mapping&gt;<br>
            &lt;java-type&gt;java.lang.Object&lt;/java-type&gt;<br>
            &lt;jdbc-type&gt;IMAGE&lt;/jdbc-type&gt;<br>
            &lt;sql-type&gt;IMAGE&lt;/sql-type&gt;<br>
          &lt;/mapping&gt;<br>
          &lt;mapping&gt;<br>
            &lt;java-type&gt;java.lang.Byte&lt;/java-type&gt;<br>
           &lt;jdbc-type&gt;TINYINT&lt;/jdbc-type&gt;<br>
           &lt;sql-type&gt;TINYINT&lt;/sql-type&gt; <br>
          &lt;/mapping&gt;<br>
          &lt;mapping&gt;<br>
            &lt;java-type&gt;java.sql.TimeStamp&lt;/java-type&gt;<br>
            &lt;jdbc-type&gt;TIMESTAMP&lt;/jdbc-type&gt;<br>
            &lt;sql-type&gt;TIMESTAMP&lt;/sql-type&gt;<br>
          &lt;/mapping&gt;<br>
          &lt;mapping&gt;<br>
          &lt;java-type&gt;java.util.Date&lt;/java-type&gt; <br>
            &lt;jdbc-type&gt;DATETIME&lt;/jdbc-type&gt;<br>
            &lt;sql-type&gt;DATETIME&lt;/sql-type&gt;<br>
          &lt;/mapping&gt;<br>
          &lt;mapping&gt;<br>
            &lt;java-type&gt;java.lang.Boolean&lt;/java-type&gt;<br>
            &lt;jdbc-type&gt;BIT&lt;/jdbc-type&gt;<br>
            &lt;sql-type&gt;BIT&lt;/sql-type&gt;<br>
          &lt;/mapping&gt;<br>
          &lt;mapping&gt;<br>
            &lt;java-type&gt;java.lang.Float&lt;/java-type&gt;<br>
            &lt;jdbc-type&gt;FLOAT&lt;/jdbc-type&gt;<br>
            &lt;sql-type&gt;FLOAT&lt;/sql-type&gt;<br>
          &lt;/mapping&gt;<br>
          &lt;/type-mapping&gt;<br>
        <br>
        <br>
        5. Edit your beans jaws.xml and tell your enterprise-beans to use<br>
        </p>
        <p>a) the MS SQLSERVER Type-Mapping with<br>
          &lt;type-mapping&gt;MS SQLSERVER&lt;/type-mapping&gt;<br>
        b) your Datasource<br>
          &lt;datasource&gt;my_dsn&lt;/datasource&gt;<br>
        <br>
        <br>
        This has been testet with the banktest and worked only &quot;half&quot;.<br>
        Jaws was able to init create the tables and to populate the table customers<br>
        but failed to insert data into accounts.</p>
        <p>//MF&nbsp;FIXME&nbsp;Test with the latest version
  
  </html>
  
  
  
  1.1                  jbossweb/jndi_howto.html
  
  Index: jndi_howto.html
  ===================================================================
  <html>
  
        <head>
                <meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
                <meta name="generator" content="Adobe GoLive 4">
                <title>Specifying a name for deployment</title>
        </head>
  
        <font face="arial,helvetica" size="6" color="#ffcc00">How do I specify the 
deployment name of my bean in jBoss? </font>
        <p>You have coded your beans. You now want to deploy them and be able to 
access them from your clients. </p>
        <p></p>
        <p><b>Standard behaviour of jboss</b></p>
        <p>The simplest way to deploy your bean is to use the <em>ejb-jar.xml</em> 
file to give it the same name you call it in the client. This is done in the 
<tt>&lt;ejb-name&gt;</tt> tag for the bean. In this case you DON'T need a 
<em>jboss.xml</em> file. Your <em>ejb-jar.xml</em> file will look like this (this is 
covered in the beginners trails):</p>
        <p><em>ejb-jar.xml</em>:
        <p>
        <table border="0" bgcolor="#80ff80" cellspacing="4">
                <tr>
                        <td>
                                <pre>&lt;ejb-jar&gt;
    &lt;enterprise-beans&gt;
                                                                        
      &lt;session&gt;
  <b>      &lt;ejb-name&gt;MyBeanName&lt;/ejb-name&gt;</b>
        &lt;home&gt;MyBeanHome&lt;/home&gt;
        &lt;remote&gt;MyBean&lt;/remote&gt;
        &lt;ejb-class&gt;MyBeanEJB&lt;/ejb-class&gt;
        &lt;session-type&gt;Stateful&lt;/session-type&gt;
        &lt;transaction-type&gt;Container&lt;/transaction-type&gt;
      &lt;/session&gt;
  
    &lt;/enterprise-beans&gt;
    ...
  &lt;/ejb-jar&gt;</pre>
                        </td>
                </tr>
        </table>
        </p>
        <p></p>
        <p>And your bean will be available under the &quot;MyBeanName&quot; in 
JNDI.</p>
        <p>In your client code, your call will look like this:</p>
        <p>
        <table border="0" bgcolor="#80ff80" cellspacing="4">
                <tr>
                        <td>
                                <pre>public class Client {                             
                    
    ...
    public static void main(String arg[]) {
      ...
      //No need to use the &quot;narrow&quot; operation, a cast will work in jboss
      MyBeanHome home = (MyBeanHome) new 
InitialContext().lookup(&quot;<b>MyBeanName</b>&quot;);
      ...
    }
  }</pre>
                        </td>
                </tr>
        </table>
        </p>
        <p>Here the <tt>&quot;MyBeanName&quot;</tt> refers to the name of your bean in 
the jndi namespace. jBoss does not currently allow you to use the 
<tt>java:comp/env</tt> namespace to call your beans from your clients.</p>
        <p></p>
        <p><b>If you want to give a jndi deployment name different than the 
ejb-name</b></p>
        <p>You may want to deploy your bean under another jndi name. (for example, you 
may want to deploy the same bean under different names with different configurations). 
In this case, you must specify the jndi name in a <em>jboss.xml</em> file. This file 
must be in the <em>META-INF</em> directory, along with <em>ejb-jar.xml</em>. Your 
files will look like this (note that the <tt>&lt;ejb-name&gt;</tt> tags in the two xml 
files must match):</p>
        <p><em>jboss.xml</em>:</p>
        <p>
        <table border="0" bgcolor="#80ff80" cellspacing="4">
                <tr>
                        <td>
                                <pre>&lt;jboss&gt;                                     
                          
    &lt;enterprise-beans&gt;
      &lt;session&gt;
  <b>      &lt;ejb-name&gt;MyBeanName&lt;/ejb-name&gt;</b>
  <b>      &lt;jndi-name&gt;somePath/otherName&lt;/jndi-name&gt;</b>
      &lt;/session&gt;
    &lt;enterprise-beans&gt;
  &lt;/jboss&gt;</pre>
                        </td>
                </tr>
        </table>
        </p>
        <p>(you don't need to specify the rest of the jboss.xml file, only this 
information is sufficient in the new metadata, this is what we call 
&quot;differential&quot; jboss.xml).</p>
        <p>Your bean is then available in JNDI&nbsp;under <b>somePath/otherName</b></p>
        <p>In your client code, your call will look like this:</p>
        <p>
        <table border="0" bgcolor="#80ff80" cellspacing="4">
                <tr>
                        <td>
                                <pre>public class Client {                             
                    
    ...
    public static void main(String arg[]) {
      ...
      //No need to use the &quot;narrow&quot; operation, a cast will work in jboss
      MyBeanHome home = (MyBeanHome) new 
InitialContext().lookup(&quot;<b>somePath/otherName</b>&quot;);
      ...
    }
  }</pre>
                        </td>
                </tr>
        </table>
        </p>
        <p></ul>
        <hr>
        Author: <a href="mailto:[EMAIL PROTECTED]">S&eacute;bastien 
Alborini</a></body>
  
  </html>
  
  
  
  1.1                  jbossweb/jbuilder.htm
  
  Index: jbuilder.htm
  ===================================================================
  How to Run jBoss in JBuilder's Debugger<br>
  <br>
  This has been tested with jBoss 2.0 PR2-PR4, Win 98, and JBuilder<br>
  Foundation 3.5<br>
  <br>
  With each of these, replace &lt;JBOSS-HOME&gt; with the location of<br>
  your jBoss directory, for example, C:\jboss.<br>
  <br>
  1. Launch JBuilder.<br>
  <br>
  2. Go to Project|Properties, click the Paths tab, and make sure<br>
     you're using JDK 1.3 as your JDK.  To have 1.3 available, you<br>
     may need to add it or change your default JDK.  First install<br>
     JDK 1.3 (from Sun) on your PC, then point JBuilder to it by<br>
     clicking &quot;new&quot; or &quot;edit&quot; in the Select a JDK dialog.<br>
  <br>
  3. On the Paths tab, go to the Required Libraries tab, click &quot;add&quot;<br>
     and then &quot;new&quot; to create a new one, and call it &quot;jBoss 
Server&quot;<br>
     (or something similar).  Add the following .jar file:<br>
  <br>
       &lt;JBOSS-HOME&gt;\bin\run.jar<br>
  <br>
  4. Click OK on the Edit library dialog, then OK on the Select one<br>
     or more libraries dialog, which should add the new library to<br>
     your project.  The library will now be available to other projects<br>
     as well.<br>
  <br>
  5. Go to the Run tab of the Project Properties dialog.  On the<br>
     Application tab, set the main class to org.jboss.Main.  Note<br>
     that this is project-specific and will need to be done for each<br>
     project running jBoss.<br>
  <br>
  6. Click OK and close JBuilder.<br>
  <br>
  7. Create a copy of your JBuilder shortcut (in Win98, it should be<br>
     in C:\WINDOWS\Start Menu\Programs\JBuilder 3.5).  Rename the<br>
     copy to something appropriate, such as &quot;JBuilder with<br>
     jBoss working directory&quot;.<br>
  <br>
  8. Edit the shortcut's properties by right-clicking and choosing<br>
     properties.  Change the &quot;Start in&quot; folder to 
&lt;JBOSS-HOME&gt;\bin\.<br>
     Click OK.<br>
  <br>
  9. To run or debug jBoss within JBuilder, first use the modified<br>
     shortcut to launch JBuilder, then open your project as normal<br>
     and select Run|Run Project or Run|Debug Project.<br>
  <br>
  10. To debug EJBs within this setup, first build and deploy them<br>
      in &lt;JBOSS-HOME&gt;\deploy as you would normally.  Then set<br>
      breakpoints in your EJB code and debug the project using<br>
      org.jboss.Main as the main class using the instructions above.<br>
  <br>
  NOTE:  When running jBoss within JBuilder, it will launch an<br>
  empty console window with &quot;java&quot; as the title.  I'm not sure why<br>
  this is, but it appears to have some relation to Hypersonic SQL.<br>
  You will probably need to close this window manually after stopping<br>
  jBoss.
  <p>
  
  
  1.1                  jbossweb/jbossxml_howto.html
  
  Index: jbossxml_howto.html
  ===================================================================
  <html>
  
        <head>
                <meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
                <meta name="generator" content="Adobe GoLive 4">
                <title>jboss.xml</title>
        </head>
  
        <font face="arial,helvetica" size="6" color="#ffcc00">What is 
<em>jboss.xml</em>? </font>
        <p>To deploy your beans, you have to specify (nearly) everything about them in 
a file called <em>ejb-jar.xml</em>. This file will be stored in the <em>META-INF</em> 
directory in your ejb-jar file. The content and syntax of this file in specified in 
the ejb1.1 specification (16.5 Deployment descriptor DTD, pp 244-259).<br>
        An important point is that the specification does not allow you to add 
vendor-specific configuration in this file. While the <em>ejb-jar.xml</em> is 
sufficient for most applications, there may be cases where you want to add 
jBoss-specific information in your deployment descriptor. This can be done by 
providing a <em>jboss.xml</em> in the <em>META-INF</em> directory.</p>
        <p>Note that this file is almost NEVER required by jBoss: jBoss will always 
provide a standard behaviour when no <em>jboss.xml</em> file is found. jBoss does that 
by first processing a <em>standardjboss.xml</em> file which contains the standard 
configuration.</p>
        <p>This is what you CAN do in your <em>jboss.xml</em> file:</p>
        <ul>
                <li>Specifying a particular jndi name for deployment. See the <a 
href="jndi_howto.html">jndi howto</a>
                <li>Declare external ejb references. See the <a 
href="ejbref_howto.html">ejb-ref howto</a>
                <li>Declare resource managers. See the resource manager howto (TBD).
                <li>Customize the container configuration for your beans. See the <a 
href="contconf_howto.html">container configuration howto</a>.
                <li>Get all the skinny in gorry details:&nbsp;<a 
href="jboss.dtd">jboss.xml DTD</a>
        </ul>
        <p>
        <hr>
        Author: <a href="mailto:[EMAIL PROTECTED]">S&eacute;bastien 
Alborini</a></body>
  
  </html>
  
  
  
  1.1                  jbossweb/jboss.dtd
  
  Index: jboss.dtd
  ===================================================================
  <!-- 
  Overview of the architecture of jboss.xml
  
  <jboss>
  
    <secure />
  
    <enterprise-beans>
  
      <entity>
        <ejb-name />
        <jndi-name />
        <resource-ref>
          <res-ref-name />
          <resource-name />
        </resource-ref>
      </entity>
  
      <session>
        <ejb-name />
        <jndi-name />
        <resource-ref>
          <res-ref-name />
          <resource-name />
        </resource-ref>
      </session>          
  
    </enterprise-beans>
  
  
    <resource-managers>
  
      <resource-manager>
        <res-name />
        <res-jndi-name />
      </resource-manager>
  
      <resource-manager>
        <res-name />
        <res-url />
      </resource-manager>
  
    </resource-managers>
  
  
    <container-configurations>
  
      <container-configuration>
        <container-name />
        <container-invoker />
        <instance-pool />
        <instance-cache />
        <persistence-manager />
        <transaction-manager />
        <container-invoker-conf />
        <container-cache-conf />
        <container-pool-conf />
      </container-configuration>
  
    </container-configurations>
  
  
  </jboss>
  
  -->
  
  
  
  <!-- 
  The jboss element is the root element of the jboss.xml file. It 
  contains all the information used by jboss but not described in the 
  ejb-jar.xml file. All of it is optional.
  
  1- the application assembler can define custom container configurations
  for the beans. Standard configurations are provided in standardjboss.xml
  2- the deployer can override the jndi names under which the beans are
  deployed
  3- the deployer can specify runtime jndi names for resource managers.
  
  -->
  <!ELEMENT jboss (secure?, enterprise-beans?, resource-managers?, 
  container-configurations?)>
  
  
    <!--
    The secure element tells the container to enforce ejb1.1 restrictions
    It must be one of the following : 
       <secure>true</secure>
       <secure>false</secure>
    
    Used in: jboss
    -->
    <!ELEMENT secure (#PCDATA)>
  
    
    <!-- 
    The enterprise-beans element contains additional information about 
    the beans. These informations, such as jndi names, resource managers and 
    container configurations, are specific to jboss and not described in 
    ejb-jar.xml. 
    
    jboss will provide a standard behaviour if no enterprise-beans element 
    is found, see container-configurations, jndi-name and resource-managers 
    for defaults.
    
    Used in: jboss
    -->
    <!ELEMENT enterprise-beans (session | entity)+>
    
    
      <!--
      The entity element holds information specific to jboss and not declared
      in ejb-jar.xml about an entity bean, such as jndi name, container 
      configuration, and resource managers. (see tags for details)
      The bean should already be declared in ejb-jar.xml, with the same 
      ejb-name.
      
      Used in: enterprise-beans
      -->
      <!ELEMENT entity (ejb-name, jndi-name?, configuration-name?, 
      ejb-ref*, resource-ref*)>
      
      
      <!--
      The session element holds information specific to jboss and not declared
      in ejb-jar.xml about a session bean, such as jndi name, container 
      configuration, and resource managers. (see tags for details)
      The bean should already be declared in ejb-jar.xml, with the same 
      ejb-name.
      
      Used in: enterprise-beans
      -->
      <!ELEMENT session (ejb-name, jndi-name?, configuration-name?, 
      ejb-ref*, resource-ref*)>
      
      
        <!-- 
        The ejb-name element gives the name of the bean, it must correspond to 
        an ejb-name element in ejb-jar.xml
        
        Used in: entity and session
        -->
        <!ELEMENT ejb-name (#PCDATA)>
        
        
        <!--
        The jndi-name element gives the actual jndi name under which the bean will
        be deployed. It is provided by the deployer. If not, jboss will assume 
        "jndi-name" = "ejb-name"
        
        Used in: entity and session
        -->
        <!ELEMENT jndi-name (#PCDATA)>
        
        
        <!--
        The configuration-name element gives the name of the container 
        configuration for this bean. It must match one of the container-name 
        tags in the container-configurations section, or one of the standard
        configurations. If none is provided, jboss will automatically use the
        right standard configuration, see container-configurations.
        
        Used in: entity and session
        -->
        <!ELEMENT configuration-name (#PCDATA)>
        
        
        <!-- 
        The ejb-ref element is used to give the jndi-name of an external 
        ejb reference. In the case of an external ejb reference, you don't 
        provide a ejb-link element in ejb-jar.xml, but you provide a jndi-name
        in jboss.xml
         
        Used in: entity, session
        -->
        <!ELEMENT ejb-ref (ejb-ref-name, jndi-name)>
        
        
          <!-- 
          The ejb-ref-name element is the name of the ejb reference as given in
          ejb-jar.xml. 
          
          Used in: ejb-ref
          -->
          <!ELEMENT ejb-ref-name (#PCDATA)>
          
          
          <!-- 
          The jndi-name element gives the deployed name of the reference. The 
          general form is 
             <jndi-name>t3://otherserver/application/beanB</jndi-name>
          
          Used in: ejb-ref
          -->
          <!ELEMENT jndi-name (#PCDATA)>
        
        
        <!-- 
        The resource-ref element gives a mapping between the "code name" 
        of a resource (res-ref-name, provided by the Bean Developper) and 
        its "xml name" (resource-name, provided by the Application Assembler).
        If no resource-ref is provided, jboss will assume that
        "xml-name" = "code name"
         
        See resource-managers.
        
        Used in: resource-ref
        -->
        <!ELEMENT resource-ref (res-ref-name, resource-name)>
        
        
          <!-- 
          The res-ref-name element gives the "code name" of a resource. It is 
          provided by the Bean Developper. See resource-managers for the actual
          configuration of the resource.
          
          Used in: resource-ref
          -->
          <!ELEMENT res-ref-name (#PCDATA)>
          
          
          <!-- 
          The resource-name element gives the "xml name" of the resource. It is 
          provided by the Application Assembler. See resource-managers for the
          actual configuration of the resource. 
          
          Used in: resource-ref
          -->
          <!ELEMENT resource-name (#PCDATA)>
  
      
    <-- 
    The resource-managers element is used to declare resource managers. 
    
    A resource has 3 names:
    - the "code name" is the name used in the code of the bean, supplied by
    the Bean Developper in the resource-ref section of the ejb-jar.xml file
    - the "xml name" is an intermediary name used by the Application Assembler
    to identify resources in the XML file.
    - the "runtime jndi name" is the actual jndi-name / url of the deployed 
    resource, it is supplied by the Deployer.
    
    The mapping between the "code name" and the "xml name" is given 
    in the resource-ref section for the bean. If not, jboss will assume that
    "xml name" = "code name".
    
    The mapping between the "xml name" and the "runtime jndi name" is given in 
    a resource-manager section. If not, and if the datasource is of type 
    javax.sql.DataSource, jboss will look for a javax.sql.DataSource in the jndi
    tree.
    
    Used in: jboss
    -->
    <!ELEMENT resource-managers (resource-manager*)>
    
    
      <!--
      The resource-manager element is used to provide a mapping between the 
      "xml name" of a resource (res-name) and its "runtime jndi name" 
      (res-jndi-name or res-url according to the type of the resource).
      If it is not provided, and if the type of the resource is 
      javax.sql.DataSource, jboss will look for a javax.sql.DataSource in the 
      jndi tree.
      
      See resource-managers.
      
      Used in: resource-managers
      -->
      <!ELEMENT resource-manager (res-name, (res-jndi-name | res-url)>
      
      
        <!--
        The res-name element gives the "xml name" of a resource, it is provided 
        by the Application Assembler. See resource-managers.
        
        Used in: resource-manager
        -->
        <!ELEMENT res-name (#PCDATA)>
        
        
        <!-- 
        The res-jndi-name element is the "deployed jndi name" of a resource, it 
        is provided by the Deployer. See resource-managers.
        
        Used in: resource-manager
        -->
        <!ELEMENT res-jndi-name (#PCDATA)>
        
        
        <!-- 
        The res-url element is the "runtime jndi name" as a url of the resource. 
        It is provided by the Deployer. See resource-managers.
        
        Used in: resource-manager
        -->
        <!ELEMENT res-url (#PCDATA)>
    
    
    <!-- 
    The container-configurations element declares the different possible 
    container configurations that the beans can use. standardjboss.xml 
    provides 4 standard configurations with the following container-names:
     - Standard CMP EntityBean
     - Standard BMP EntityBean
     - Standard Stateless SessionBean
     - Standard Stateful SessionBean
    
    These standard configurations will automatically be used if no custom 
    configuration is specified.
    
    The application assembler can define advanced custom configurations here.
    
    Used in: jboss
    -->
    <!ELEMENT container-configurations (container-configuration*)>
    
    
      <!-- 
      The container-configuration element describes a configuration for the 
      container.
      The different plugins to use are declared here, as well as their 
      configurations. The configuration-class attribute is no longer used.
      
      Used in: container-configurations
      -->
      <!ELEMENT container-configuration (container-name, call-logging, 
      container-invoker, instance-pool?, instance-cache?, persistence-manager?, 
      transaction-manager?, container-invoker-conf?, container-cache-conf?, 
      container-pool-conf?, commit-option?)>
      
      
        <!--
        The container-name element gives the name of the configuration being 
        defined. Beans may refer to this name in their configuration-name tag.
        
        Used in: container-configuration
        -->
        <!ELEMENT container-name (#PCDATA)>
        
        
        <!--
        The call-logging element tells if the container must log every method
        invocation for this bean or not. Its value must be trus or false.
        
        Used in: container-configuration
        -->
        <!ELEMENT call-logging (#PCDATA)>
        
        
        <!-- 
        The container-invoker element gives the class name of the container 
        invoker jboss must use for in this configuration. This class must 
        implement the org.jboss.ejb.ContainerInvoker interface. The default is 
        org.jboss.ejb.plugins.jrmp13.server.JRMPContainerInvoker, it may be 
        changed to org.jboss.ejb.plugins.jrmp12.server.JRMPContainerInvoker if
        no 1.3 VM is available
        
        Used in: container-configuration
        -->
        <!ELEMENT container-invoker (#PCDATA)>
        
        
        <!--
        The instance-pool element gives the class name of the instance pool
        jboss must use for in this configuration. This class must implement 
        the org.jboss.ejb.InstancePool interface. The defaults are:
        - org.jboss.ejb.plugins.EntityInstancePool for entity beans
        - org.jboss.ejb.plugins.StatelessSessionInstancePool for stateless
        session beans.
        - no pool is used for stateful session beans
        
        Used in: container-configuration
        -->
        <!ELEMENT instance-pool (#PCDATA)>
        
        
        <!--
        The instance-cache element gives the class name of the instance cache
        jboss must use for in this configuration. This class must implement 
        the org.jboss.ejb.InstanceCache interface. The defaults are:
        - org.jboss.ejb.plugins.NoPassivationEntityInstanceCache for entity beans
        - org.jboss.ejb.plugins.NoPassivationStatefulSessionInstanceCache for
        stateful session beans.
        - no cache is used for stateless session beans
        
        Used in: container-configuration
        -->
        <!ELEMENT instance-cache (#PCDATA)>
        
        
        <!--
        The persistence-manager element gives the class name of the persistence
        manager / persistence store jboss must use for in this configuration. 
        This class must implement:
        - org.jboss.ejb.EntityPersistenceStore for CMP Entity Beans (default is 
        org.jboss.ejb.plugins.jaws.JAWSPersistenceManager)
        - org.jboss.ejb.EntityPersistenceManager for BMP entity beans (default
        is org.jboss.ejb.plugins.BMPPersistenceManager)
        - org.jboss.ejb.StatefulSessionPersistenceManager for stateless session 
        beans.
        - no persistence-manager is used for stateless session beans
        
        Used in: container-configuration
        -->
        <!ELEMENT persistence-manager (#PCDATA)>
        
        
        <!--
        The transaction-manager element gives the class name of the transaction 
        manager jboss must use for in this configuration. This class must implement 
        the javax.transaction.TransactionManager interface. The default is 
        org.jboss.tm.TxManager.
        
        Used in: container-configuration
        -->
        <!ELEMENT transaction-manager (#PCDATA)>
        
        
        <!-- 
        The container-invoker-conf element holds configuration data for the 
        container invoker.
        jboss does not read directly the subtree for this element: instead, 
        it is passed to the container invoker instance (if it implements 
        org.jboss.metadata.XmlLoadable) for it to load its parameters.
  
        The Optimized tag described here only relates to the default container
        invoker, JRMPContainerInvoker.
        
        Used in: container-configuration
        -->
        <!ELEMENT container-invoker-conf (Optimized)>
        
  
          <!-- 
          This element is only valid if the container invoker is 
          JRMPContainerInvoker.
  
          The Optimized element tells if the container invoker to bypass RMI layers
          when the client is local (same VM as the server). This optimizes RMI calls.
          Its value must be true or false.
          
          Used in: container-invoker-conf for JRMPContainerInvoker
          -->
          <!ELEMENT Optimized (#PCDATA)>
        
        
        <!-- 
        The container-cache-conf element holds dynamic configuration data 
        for the instance cache.
        jboss does not read directly the subtree for this element: instead, 
        it is passed to the instance cache instance (if it implements 
        org.jboss.metadata.XmlLoadable) for it to load its parameters.
        
        The default instance caches, NoPassivationEntityInstanceCache and
        NoPassivationStatefulSessionInstanceCache, have no configuration
        available.
  
        Used in: container-configuration
        -->
        <!ELEMENT container-cache-conf>
        
        
        <!-- 
        The container-pool-conf element holds configuration data for the 
        instance pool.
        jboss does not read directly the subtree for this element: instead, 
        it is passed to the instance pool instance (if it implements 
        org.jboss.metadata.XmlLoadable) for it to load its parameters.
        
        The default instance pools, EntityInstancePool and 
        StatelessSessionInstancePool, both accept the following MaximumSize
        configuration.
  
        Used in: container-configuration
        -->
        <!ELEMENT container-pool-conf (MaximumSize)>
    
         
          <!-- 
          This element is only valid if the instance pool is a subclass of
          AbstractInstancePool.
  
          The MaximumSize element gives the maximum number of instance to
          keep in the pool. Its value must be an integer.
  
          Used in: container-pool-conf for AbstractInstancePool subclasses
          -->
          <!ELEMENT MaximumSize (#PCDATA)> 
  
  
        <!--
        This option is only used for entity container configurations.
  
        The commit-option element tells the container which option to use for 
transactions.
        Its value must be A, B or C. 
  
        - option A: the entiry instance has exclusive access to the database. The 
instance 
        stays ready after a transaction.
        - option B: the entity instance does not have exclusive access to the 
database. 
        The state is loaded before the next transaction.
        - option C: same as B, except the container does not keep the instance after 
commit: 
        a passivate is immediately performed after the commit.
        
        See ejb1.1 specification for details (p118).
  
        Used in: container-configuration
        -->
        <!ELEMENT commit-option (#PCDATA)>
  
  
  
  1.1                  jbossweb/ejbref_howto1.html
  
  Index: ejbref_howto1.html
  ===================================================================
  <html>
  <head>
  <title>
  Declaring an ejb reference
  </title>
  </head>
  
  <font face=arial,helvetica size=+3 color="#ffcc00"> 
  How can I declare an ejb reference in jBoss?
  </font> 
  
  <p>An ejb reference (see ejb1.1 specification, 14.3, p207) is when a bean A wants to 
call methods on a bean B.Bean A can now call bean B.  This call will look like this: 
(you must use the <tt>java:comp/env</tt> namespace).
  
  <p><table border=0 bgcolor="#80ff80" cellspacing=4><tr><td><pre>
  public class ABean implements EntityBean {                            
      ...
      public void BusinessMethod(...) {
          ...
          Context ctx = new InitialContext();
          BHome home = (BHome)ctx.lookup("java:comp/env/ejb/myBean");
          B bean = home.create(pk);
          ...
      }
  }
  </pre></td></tr></table></p>
  
  To be allowed this call, the bean A must declare it in the its deployment 
descriptor.  This is done by an <tt>&lt;ejb-ref&gt;</tt> tag in the bean section of 
the <em>ejb-jar.xml</em> file.  2 cases may occur:
  <ul>
  
  <li><b>Internal ejb reference</b>: the bean B is in the same application unit as the 
bean A.  In this case, you must provide the <ejb-link> tag, and its value must match 
the <ejb-name> of bean B.  You don't have to provide anything in the jboss.xml file.  
Your <em>ejb-jar.xml</em> file will look like this:
  
  <p><table border=0 bgcolor="#80ff80" cellspacing=4><tr><td><pre>
  &lt;ejb-jar&gt;
    &lt;enterprise-beans&gt;
                                                                        
      &lt;session&gt;
        &lt;ejb-name&gt;Bean A&lt;/ejb-name&gt;
        &lt;home&gt;AHome&lt;/home&gt;
        &lt;remote&gt;A&lt;/remote&gt;
        &lt;ejb-class&gt;ABean&lt;/ejb-class&gt;
        &lt;session-type&gt;Stateful&lt;/session-type&gt;
        &lt;transaction-type&gt;Container&lt;/transaction-type&gt;
        &lt;ejb-ref&gt;
          &lt;ejb-ref-name&gt;ejb/myBean&lt;/ejb-ref-name&gt;
          &lt;ejb-ref-type&gt;Entity&lt;/ejb-ref-type&gt;
          &lt;home&gt;BHome&lt;/home&gt;
          &lt;remote&gt;B&lt;/remote&gt;
  <b>        &lt;ejb-link&gt;Bean B&lt;/ejb-link&gt;</b>
        &lt;/ejb-ref&gt;
      &lt;/session&gt;
  
      &lt;entity&gt;
  <b>      &lt;ejb-name&gt;Bean B&lt;/ejb-name&gt;</b>
        &lt;home&gt;BHome&lt;/home&gt;
        &lt;remote&gt;B&lt;/remote&gt;
        &lt;ejb-class&gt;BBean&lt;/ejb-class&gt;
        &lt;persistence-type&gt;Bean&lt;/persistence-type&gt;
        &lt;prim-key-class&gt;myPK&lt;/prim-key-class&gt;
        &lt;reentrant&gt;True&lt;/reentrant&gt;
      &lt;/entity&gt;
  
    &lt;/enterprise-beans&gt;
    ...
  &lt;/ejb-jar&gt;
  </pre></td></tr></table></p>
  
  
  <li><b>External ejb reference</b>: the bean B comes from another application unit, 
it may even be deployed on another server.  In this case, you must not provide the 
<ejb-link> tag in ejb-jar.xml.  Instead, you must provide the full jndi name of the 
bean B in jboss.xml.  A full name is of the form 
    <pre>protocol://host:1234/name/in/other/server</pre>
  Note that the <tt>&lt;ejb-ref-name&gt;</tt> tags in the 2 xml files must match.
  
  <p>
  <em>ejb-jar.xml</em>:</p>
  <p><table border=0 bgcolor="#80ff80" cellspacing=4><tr><td><pre>
  &lt;ejb-jar&gt;
    &lt;enterprise-beans&gt;
                                                                        
      &lt;session&gt;
        &lt;ejb-name&gt;Bean A&lt;/ejb-name&gt;
        &lt;home&gt;AHome&lt;/home&gt;
        &lt;remote&gt;A&lt;/remote&gt;
        &lt;ejb-class&gt;ABean&lt;/ejb-class&gt;
        &lt;session-type&gt;Stateful&lt;/session-type&gt;
        &lt;transaction-type&gt;Container&lt;/transaction-type&gt;
        &lt;ejb-ref&gt;
  <b>        &lt;ejb-ref-name&gt;ejb/myBean&lt;/ejb-ref-name&gt;
  </b>        &lt;ejb-ref-type&gt;Entity&lt;/ejb-ref-type&gt;
          &lt;home&gt;BHome&lt;/home&gt;
          &lt;remote&gt;B&lt;/remote&gt;
        &lt;/ejb-ref&gt;
      &lt;/session&gt;
  
    &lt;/enterprise-beans&gt;
    ...
  &lt;/ejb-jar&gt;
  </pre></td></tr></table></p>
  
  <em>jboss.xml</em>:
  <p><table border=0 bgcolor="#80ff80" cellspacing=4><tr><td><pre>
  &lt;jboss&gt;                                                               
    &lt;enterprise-beans&gt;
      &lt;session&gt;
        &lt;ejb-name&gt;Bean A&lt;/ejb-name&gt;
        &lt;ejb-ref&gt;
  <b>        &lt;ejb-ref-name&gt;ejb/myBean&lt;/ejb-ref-name&gt;
          &lt;jndi-name&gt;t3://otherserver/application/beanB&lt;/jndi-name&gt;
  </b>      &lt;/ejb-ref&gt;
      &lt;/session&gt;
    &lt;enterprise-beans&gt;
  &lt;/jboss&gt;
  </pre></td></tr></table></p>
  
  <p>If bean B is deployed in another application, but on the same jboss server, the 
jndi-name you provide must be the name under which bean B is deployed (see the <a 
href="jndi_howto.html">jndi_howto</a>)</p>
  
  
  </ul>
  <hr>Author: <a href="mailto:[EMAIL PROTECTED]">S�bastien Alborini</a>
  </body>
  </html>
  
  
  
  
  1.1                  jbossweb/ejbref_howto.html
  
  Index: ejbref_howto.html
  ===================================================================
  <html>
  
        <head>
                <meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
                <meta name="generator" content="Adobe GoLive 4">
                <title>Declaring an ejb reference</title>
        </head>
  
        <font face="arial,helvetica" size="6" color="#ffcc00">How can I declare an ejb 
reference in jBoss? </font>
        <p>An ejb reference (see ejb1.1 specification, 14.3, p207) is when a bean A 
wants to call methods on a bean B.  We are talking about intra-bean calls also called 
B2B calls.  This is not for clients (that is covered in the beginner trails) this is 
for bean calls all on the server.  Most of these calls are done inside the server 
VM.</p>
        <p>This call will look like this: (beans running on the server must use the 
<tt>java:comp/env</tt> namespace).</p>
        <p>
        <table border="0" bgcolor="#80ff80" cellspacing="4">
                <tr>
                        <td>
                                <pre>public class ABean implements EntityBean {        
                    
      ...
      public void BusinessMethod(...) {
          ...
       
          BHome home = (BHome)ctx.lookup(&quot;java:comp/env/ejb/myBean&quot;);
          B bean = home.create(pk);
          ...
      }
  }</pre>
                        </td>
                </tr>
        </table>
        </p>
        <p>To be allowed this call, the bean A must declare it in the its deployment 
descriptor. This is done by an <tt>&lt;ejb-ref&gt;</tt> tag in the bean section of the 
<em>ejb-jar.xml</em> file. 2 cases may occur:
        <ul>
                <li><b>Internal ejb reference</b>: the bean B is in the same 
application unit as the bean A.  This means that the beans are physically packaged in 
the same jar. In this case, you must provide the<ejb-link>tag, and its value must 
match the<ejb-name>of bean B. You don't have to provide anything in the jboss.xml 
file. Your <em>ejb-jar.xml</em> file will look like this:
                <p>
                <table border="0" bgcolor="#80ff80" cellspacing="4">
                        <tr>
                                <td>
                                        <pre>&lt;ejb-jar&gt;
    &lt;enterprise-beans&gt;
                                                                        
      &lt;session&gt;
        &lt;ejb-name&gt;Bean A&lt;/ejb-name&gt;
        &lt;home&gt;AHome&lt;/home&gt;
        &lt;remote&gt;A&lt;/remote&gt;
        &lt;ejb-class&gt;ABean&lt;/ejb-class&gt;
        &lt;session-type&gt;Stateful&lt;/session-type&gt;
        &lt;transaction-type&gt;Container&lt;/transaction-type&gt;
        &lt;ejb-ref&gt;
          &lt;ejb-ref-name&gt;ejb/myBean&lt;/ejb-ref-name&gt;
          &lt;ejb-ref-type&gt;Entity&lt;/ejb-ref-type&gt;
          &lt;home&gt;BHome&lt;/home&gt;
          &lt;remote&gt;B&lt;/remote&gt;
  <b>        &lt;ejb-link&gt;Bean B&lt;/ejb-link&gt;</b>
        &lt;/ejb-ref&gt;
      &lt;/session&gt;
  
      &lt;entity&gt;
  <b>      &lt;ejb-name&gt;Bean B&lt;/ejb-name&gt;</b>
        &lt;home&gt;BHome&lt;/home&gt;
        &lt;remote&gt;B&lt;/remote&gt;
        &lt;ejb-class&gt;BBean&lt;/ejb-class&gt;
        &lt;persistence-type&gt;Bean&lt;/persistence-type&gt;
        &lt;prim-key-class&gt;myPK&lt;/prim-key-class&gt;
        &lt;reentrant&gt;True&lt;/reentrant&gt;
      &lt;/entity&gt;
  
    &lt;/enterprise-beans&gt;
    ...
  &lt;/ejb-jar&gt;</pre>
                                </td>
                        </tr>
                </table>
                </p>
                <li><b>External ejb reference</b>: the bean B comes from another 
application unit, it may even be deployed on another server.  This means that the 
beans live in different jars on different systems. In this case, you cannot rely on 
the standard <ejb-link> tag in ejb-jar.xml since there the beans are not covered in 
the same file. Instead, you must provide the full jndi name of the bean B in 
jboss.xml. This is necessary to map the names from different ejb-jar.xml files since 
the 2 beans are defined in different application units.  A full name is of the form
                <pre>protocol://host:1234/name/in/other/server</pre>
                <p>Note that the <tt>&lt;ejb-ref-name&gt;</tt> tags in the 2 xml files 
must match.
                <p><em>ejb-jar.xml</em>:</p>
                <p>
                <table border="0" bgcolor="#80ff80" cellspacing="4">
                        <tr>
                                <td>
                                        <pre>&lt;ejb-jar&gt;
    &lt;enterprise-beans&gt;
                                                                        
      &lt;session&gt;
        &lt;ejb-name&gt;Bean A&lt;/ejb-name&gt;
        &lt;home&gt;AHome&lt;/home&gt;
        &lt;remote&gt;A&lt;/remote&gt;
        &lt;ejb-class&gt;ABean&lt;/ejb-class&gt;
        &lt;session-type&gt;Stateful&lt;/session-type&gt;
        &lt;transaction-type&gt;Container&lt;/transaction-type&gt;
        &lt;ejb-ref&gt;
  <b>        &lt;ejb-ref-name&gt;ejb/myBean&lt;/ejb-ref-name&gt;</b>
          &lt;ejb-ref-type&gt;Entity&lt;/ejb-ref-type&gt;
          &lt;home&gt;BHome&lt;/home&gt;
          &lt;remote&gt;B&lt;/remote&gt;
        &lt;/ejb-ref&gt;
      &lt;/session&gt;
  
    &lt;/enterprise-beans&gt;
    ...
  &lt;/ejb-jar&gt;</pre>
                                </td>
                        </tr>
                </table>
                </p>
                <p><em>jboss.xml</em>:
                <p>
                <table border="0" bgcolor="#80ff80" cellspacing="4">
                        <tr>
                                <td>
                                        <pre>&lt;jboss&gt;                             
                                  
    &lt;enterprise-beans&gt;
      &lt;session&gt;
        &lt;ejb-name&gt;Bean A&lt;/ejb-name&gt;
        &lt;ejb-ref&gt;
  <b>        &lt;ejb-ref-name&gt;ejb/myBean&lt;/ejb-ref-name&gt;</b>
  <b>        &lt;jndi-name&gt;t3://otherserver/application/beanB&lt;/jndi-name&gt;</b>
        &lt;/ejb-ref&gt;
      &lt;/session&gt;
    &lt;enterprise-beans&gt;
  &lt;/jboss&gt;</pre>
                                </td>
                        </tr>
                </table>
                </p>
                <p>If bean B is deployed in another application, but on the same jboss 
server, the jndi-name you provide must be the name under which bean B is deployed (see 
the <a href="jndi_howto.html">jndi_howto</a>)</p>
        </ul>
        <p>
        <hr>
        Author: <a href="mailto:[EMAIL PROTECTED]">S&eacute;bastien 
Alborini</a></body>
  
  </html>
  
  
  
  1.1                  jbossweb/datasource.htm
  
  Index: datasource.htm
  ===================================================================
  <html>
  
        <head>
                <meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
                <meta name="generator" content="Adobe GoLive 4">
                <title>Adding a Data Source to jBoss 2</title>
                <meta name="ProgId" content="Word.Document">
                <meta name="Originator" content="Microsoft Word 9">
                <link rel="File-List" href="datasource_files/filelist.xml">
                <!--[if gte mso 9]><xml>
   <o:DocumentProperties>
    <o:Author>lturner</o:Author>
    <o:Template>Normal</o:Template>
    <o:LastAuthor>marc fleury</o:LastAuthor>
    <o:Revision>2</o:Revision>
    <o:TotalTime>6</o:TotalTime>
    <o:LastPrinted>2000-05-04T23:22:00Z</o:LastPrinted>
    <o:Created>2000-09-01T21:46:00Z</o:Created>
    <o:LastSaved>2000-09-01T21:46:00Z</o:LastSaved>
    <o:Pages>2</o:Pages>
    <o:Words>617</o:Words>
    <o:Characters>3520</o:Characters>
    <o:Company>Gilchrist Bros Ltd</o:Company>
    <o:Lines>29</o:Lines>
    <o:Paragraphs>7</o:Paragraphs>
    <o:CharactersWithSpaces>4322</o:CharactersWithSpaces>
    <o:Version>9.2720</o:Version>
   </o:DocumentProperties>
  </xml><![endif]-->
                <!--[if gte mso 9]><xml>
   <w:WordDocument>
    <w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery>
    <w:DisplayVerticalDrawingGridEvery>0</w:DisplayVerticalDrawingGridEvery>
    <w:UseMarginsForDrawingGridOrigin/>
    <w:Compatibility>
     <w:FootnoteLayoutLikeWW8/>
     <w:ShapeLayoutLikeWW8/>
     <w:AlignTablesRowByRow/>
     <w:ForgetLastTabAlignment/>
     <w:LayoutRawTableWidth/>
     <w:LayoutTableRowsApart/>
    </w:Compatibility>
   </w:WordDocument>
  </xml><![endif]-->
                <!--[if gte mso 9]><xml>
   <o:shapedefaults v:ext="edit" spidmax="2050"/>
  </xml><![endif]-->
                <!--[if gte mso 9]><xml>
   <o:shapelayout v:ext="edit">
    <o:idmap v:ext="edit" data="1"/>
   </o:shapelayout></xml><![endif]-->
                <style><!--
  div.msonormal { font-size: 10pt; font-family: "Times New Roman"; margin: 0in 0in 
0pt; mso-ansi-language: : EN-GB; mso-fareast-font-family: : "Times New Roman"; 
mso-pagination: : widow-orphan; mso-style-parent: : "" }
  div.section1 { page: : Section1 }
  h1 { font-size: 14pt; font-family: Arial; margin: 12pt 0in 3pt; mso-ansi-language: : 
EN-GB; mso-bidi-font-family: : "Times New Roman"; mso-bidi-font-size: : 10.0pt; 
mso-bidi-font-weight: : normal; mso-font-kerning: : 14.0pt; mso-outline-level: : 1; 
mso-pagination: : widow-orphan; mso-style-next: : Normal; page-break-after: : avoid }
  h2 { font-style: italic; font-size: 12pt; font-family: Arial; margin: 12pt 0in 3pt; 
mso-ansi-language: : EN-GB; mso-bidi-font-family: : "Times New Roman"; 
mso-bidi-font-size: : 10.0pt; mso-bidi-font-style: : normal; mso-bidi-font-weight: : 
normal; mso-outline-level: : 2; mso-pagination: : widow-orphan; mso-style-next: : 
Normal; page-break-after: : avoid }
  li.msonormal { font-size: 10pt; font-family: "Times New Roman"; margin: 0in 0in 0pt; 
mso-ansi-language: : EN-GB; mso-fareast-font-family: : "Times New Roman"; 
mso-pagination: : widow-orphan; mso-style-parent: : "" }
  ol { margin-bottom: 0in }
  p.msonormal { font-size: 10pt; font-family: "Times New Roman"; margin: 0in 0in 0pt; 
mso-ansi-language: : EN-GB; mso-fareast-font-family: : "Times New Roman"; 
mso-pagination: : widow-orphan; mso-style-parent: : "" }
  ul { margin-bottom: 0in }-->
                </style>
        </head>
  
        <body lang="EN-US" style="tab-interval:.5in">
                <div class="Section1">
                        <h1><span lang="EN-GB">Adding a Data Source to jBoss 
2</span></h1>
                        <h1></h1>
                        <p class="MsoNormal" style="text-align:justify"><span 
lang="EN-GB">This section will detail how to add a data source to the jBoss 2 
server.<span style="mso-spacerun: yes">&nbsp; </span>Version 2 of the jBoss server 
supports multiple data sources within the one server (unlike version 1).<span 
style="mso-spacerun: yes">&nbsp; </span>The whole management of these data sources 
(along with the rest of the server) is done through the Java Management Extension 
(JMX) and as a result, the JMX documentation also applies to jBoss version 
2.</span></p>
                        <p class="MsoNormal" style="text-align:justify"></p>
                        <p class="MsoNormal" style="text-align:justify"><span 
lang="EN-GB">The server including the data sources is created using a JMX MLet, which 
loads the configuration from the /conf/jboss.conf file.<span style="mso-spacerun: 
yes">&nbsp; </span>The MLet sections that you need are the ones that use 
&#145;org.jboss.jdbc.DataSourceImpl&#146; in the CODE tag.<span style="mso-spacerun:
  yes">&nbsp; </span>The following are taken from the /conf/jboss.conf file which are 
installed with the server.</span></p>
                        <p class="MsoNormal" style="text-align:justify"></p>
                        <p class="MsoNormal" style="margin-right:-52.15pt"><span 
lang="EN-GB">&lt;MLET CODE = &quot;org.jboss.jdbc.DataSourceImpl&quot; 
ARCHIVE=&quot;jboss.jar,idb.jar&quot; CODEBASE=&quot;../lib/ext/&quot;&gt;</span></p>
                        <p class="MsoNormal"><span lang="EN-GB"><span 
style="mso-spacerun: yes">&nbsp;&nbsp; </span><span 
style="mso-tab-count:1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 </span>&lt;ARG TYPE=&quot;java.lang.String&quot; 
VALUE=&quot;jdbc:idb:../conf/instantdb.properties&quot;&gt;</span></p>
                        <p class="MsoNormal"><span lang="EN-GB"><span 
style="mso-spacerun: yes">&nbsp;&nbsp; </span><span 
style="mso-tab-count:1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 </span>&lt;ARG TYPE=&quot;java.lang.String&quot; 
VALUE=&quot;InstantDB&quot;&gt;</span></p>
                        <p class="MsoNormal"><span lang="EN-GB"><span 
style="mso-spacerun: yes">&nbsp;&nbsp; </span><span 
style="mso-tab-count:1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 </span>&lt;ARG TYPE=&quot;java.lang.String&quot; 
VALUE=&quot;jdbc.idbDriver&quot;&gt;</span></p>
                        <p class="MsoNormal"><span lang="EN-GB"><span 
style="mso-spacerun: yes">&nbsp;&nbsp; </span><span 
style="mso-tab-count:1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 </span>&lt;ARG TYPE=&quot;java.lang.String&quot; VALUE=&quot;&quot;&gt;</span></p>
                        <p class="MsoNormal"><span lang="EN-GB"><span 
style="mso-spacerun: yes">&nbsp;&nbsp; </span><span 
style="mso-tab-count:1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 </span>&lt;ARG TYPE=&quot;java.lang.String&quot; VALUE=&quot;&quot;&gt;</span></p>
                        <p class="MsoNormal"><span 
lang="EN-GB">&lt;/MLET&gt;</span></p>
                        <p class="MsoNormal"><span lang="EN-GB"><span 
style="mso-spacerun: yes">&nbsp;&nbsp; </span></span></p>
                        <p class="MsoNormal" style="margin-right:-45.05pt"><span 
lang="EN-GB">&lt;MLET CODE = &quot;org.jboss.jdbc.DataSourceImpl&quot; 
ARCHIVE=&quot;jboss.jar,hsql.jar&quot; CODEBASE=&quot;../lib/ext/&quot;&gt;</span></p>
                        <p class="MsoNormal"><span lang="EN-GB"><span 
style="mso-spacerun: yes">&nbsp;&nbsp; </span><span 
style="mso-tab-count:1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 </span>&lt;ARG TYPE=&quot;java.lang.String&quot; 
VALUE=&quot;jdbc:HypersonicSQL:hsql://localhost&quot;&gt;</span></p>
                        <p class="MsoNormal"><span lang="EN-GB"><span 
style="mso-spacerun: yes">&nbsp;&nbsp; </span><span 
style="mso-tab-count:1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 </span>&lt;ARG TYPE=&quot;java.lang.String&quot; 
VALUE=&quot;Hypersonic&quot;&gt;</span></p>
                        <p class="MsoNormal"><span lang="EN-GB"><span 
style="mso-spacerun: yes">&nbsp;&nbsp; </span><span 
style="mso-tab-count:1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 </span>&lt;ARG TYPE=&quot;java.lang.String&quot; 
VALUE=&quot;org.hsql.jdbcDriver&quot;&gt;</span></p>
                        <p class="MsoNormal"><span lang="EN-GB"><span 
style="mso-spacerun: yes">&nbsp;&nbsp; </span><span 
style="mso-tab-count:1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 </span>&lt;ARG TYPE=&quot;java.lang.String&quot; VALUE=&quot;sa&quot;&gt;</span></p>
                        <p class="MsoNormal"><span lang="EN-GB"><span 
style="mso-spacerun: yes">&nbsp;&nbsp; </span><span 
style="mso-tab-count:1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 </span>&lt;ARG TYPE=&quot;java.lang.String&quot; VALUE=&quot;&quot;&gt;</span></p>
                        <p class="MsoNormal"><span 
lang="EN-GB">&lt;/MLET&gt;</span></p>
                        <p class="MsoNormal"></p>
                        <p class="MsoNormal" style="text-align:justify"><span 
lang="EN-GB">It is these sections that replace the information in the 
system.properties file from jBoss 1.<span style="mso-spacerun: yes">&nbsp; </span>Each 
tag in the MLet will be described below:</span></p>
                        <p class="MsoNormal" style="text-align:justify"></p>
                        <p>
                        <table border="0" cellspacing="0" cellpadding="0" 
style="border-collapse:collapse;
   mso-padding-alt:0in 5.4pt 0in 5.4pt">
                                <tr>
                                        <td width="92" valign="top" 
style="width:69.2pt;padding:0in 5.4pt 0in 5.4pt">
                                                <p class="MsoNormal" 
style="text-align:justify"><span lang="EN-GB"><b style="mso-bidi-font-weight:
    normal">CODE</b></span></td>
                                        <td width="476" valign="top" 
style="width:357.2pt;padding:0in 5.4pt 0in 5.4pt">
                                                <p class="MsoNormal" 
style="text-align:justify"><span lang="EN-GB">This tells jBoss what the MLet section 
is.<span style="mso-spacerun: yes">&nbsp; </span>In the case of a data source, it uses 
the org.jboss.jdbc.DataSourceImpl class.</span></td>
                                </tr>
                                <tr>
                                        <td width="92" valign="top" 
style="width:69.2pt;padding:0in 5.4pt 0in 5.4pt">
                                                <p class="MsoNormal" 
style="text-align:justify"><span lang="EN-GB"><b style="mso-bidi-font-weight:
    normal">ARCHIVE</b></span></td>
                                        <td width="476" valign="top" 
style="width:357.2pt;padding:0in 5.4pt 0in 5.4pt">
                                                <p class="MsoNormal" 
style="text-align:justify"><span lang="EN-GB">This tells the server where to look for 
drivers for the data source.<span style="mso-spacerun: yes">&nbsp; </span>Jboss.jar 
needs to be in every data source, but the second jar is dependent on the data source 
you are adding.<span style="mso-spacerun: yes">&nbsp;&nbsp; </span>The archives need 
to be in the classpath.</span></td>
                                </tr>
                                <tr>
                                        <td width="92" valign="top" 
style="width:69.2pt;padding:0in 5.4pt 0in 5.4pt">
                                                <p class="MsoNormal" 
style="text-align:justify"><span lang="EN-GB"><b style="mso-bidi-font-weight:
    normal">CODEBASE</b></span></td>
                                        <td width="476" valign="top" 
style="width:357.2pt;padding:0in 5.4pt 0in 5.4pt">
                                                <p class="MsoNormal" 
style="text-align:justify"><span lang="EN-GB">This tells the server where to look for 
the archives in the previous tag.</span></td>
                                </tr>
                        </table>
                        <p class="MsoNormal" style="text-align:justify"></p>
                        <p class="MsoNormal" style="text-align:justify"><span 
lang="EN-GB">The arguments (ARG) provide the JDBC specific information to connect to 
your data source.<span style="mso-spacerun: yes">&nbsp; </span>The top one is the 
database URL, the second one is the JNDI name for the data source (you can choose this 
&#150; no spaces), the third one is the JDBC driver class name and the forth and fifth 
are the username and password to connect to your data source.</span></p>
                        <p class="MsoNormal" style="text-align:justify"></p>
                        <p class="MsoNormal" style="text-align:justify"><span 
lang="EN-GB">Add the relevant information relating to your data source to the 
/conf/jboss.conf file and save it.<span style="mso-spacerun: yes">&nbsp; </span>The 
next stage is to tell the jBoss to load the JDBC drivers.<span style="mso-spacerun: 
yes">&nbsp; </span>To do this you must place the driver archive in the jBoss 
classpath.<span style="mso-spacerun: yes">&nbsp; </span>In jBoss 2 this is really 
easy.<span style="mso-spacerun: yes">&nbsp; </span>All you have to do is put the 
archive in the /lib/ext directory as all the jar files in this directory are 
automatically added to the classpath for you (cool or what).</span></p>
                        <p class="MsoNormal" style="text-align:justify"></p>
                        <p class="MsoNormal" style="text-align:justify"><span 
lang="EN-GB">The way you tell jBoss 2 to load the JDBC driver is to add the driver 
class to the /conf/jboss.properties file.<span style="mso-spacerun: yes">&nbsp; 
</span>The line in the file that tells the server what drivers to load for the above 
data sources is as follows:</span></p>
                        <p class="MsoNormal" style="text-align:justify"></p>
                        <p class="MsoNormal" style="text-align:justify"><span 
lang="EN-GB">jdbc.drivers=org.hsql.jdbcDriver,jdbc.idbDriver </span></p>
                        <p class="MsoNormal" style="text-align:justify"></p>
                        <p class="MsoNormal" style="text-align:justify"><span 
lang="EN-GB">That&#146;s all the information the server needs to create and load a 
data source for your beans to use.<span style="mso-spacerun: yes">&nbsp; </span>The 
jaws.xml file is used to tell your beans which data source to use.</span></p>
                        <p class="MsoNormal" style="text-align:justify"></p>
                        <h2><span lang="EN-GB">Example  Adding an Oracle Data 
Source</span></h2>
                        <p class="MsoNormal" 
style="margin-left:.25in;text-indent:-.25in;mso-list:l0 level1 lfo1;
  tab-stops:list .25in"><span lang="EN-GB">1.</span><span lang="EN-GB"><span 
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
</span>Downloaded the Oracle JDBC (thin) drivers from the Oracle web site.<span 
style="mso-spacerun: yes">&nbsp; </span>This is usually in zip format, so I renamed 
the extension to &#145;.jar&#146; so jBoss can automatically add it to the 
classpath.</span></p>
                        <p class="MsoNormal" 
style="margin-left:.25in;text-indent:-.25in;mso-list:l0 level1 lfo1;
  tab-stops:list .25in"><span lang="EN-GB">2.<span style='font:7.0pt "Times New 
Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>Copied the archive to the 
/lib/ext directory so it is added to the jBoss classpath</span></p>
                        <p class="MsoNormal" 
style="margin-left:.25in;text-indent:-.25in;mso-list:l0 level1 lfo1;
  tab-stops:list .25in"><span lang="EN-GB">3.</span><span lang="EN-GB"><span 
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
</span>Added the driver name to the line to the /conf/jboss.properties file:</span></p>
                        <p class="MsoNormal"><span lang="EN-GB">&nbsp;</span></p>
                        <p class="MsoNormal" style="margin-left:.5in"><span 
lang="EN-GB">jdbc.drivers=org.hsql.jdbcDriver,jdbc.idbDriver<b 
style="mso-bidi-font-weight:normal">,oracle.jdbc.driver.OracleDriver</b></span></p>
                        <p class="MsoNormal" style="margin-left:.5in"><span 
lang="EN-GB">&nbsp;</span></p>
                        <p class="MsoNormal" 
style="margin-left:.25in;text-indent:-.25in;mso-list:l0 level1 lfo1;
  tab-stops:list .25in"><span lang="EN-GB">4.</span><span lang="EN-GB"><span 
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
</span>Added the JDBC connection information to the /conf/jboss.conf file:</span></p>
                        <p class="MsoNormal"><span lang="EN-GB">&nbsp;</span></p>
                        <p class="MsoNormal" style="margin-right:-59.25pt"><span 
lang="EN-GB">&lt;MLET CODE = &quot;org.jboss.jdbc.DataSourceImpl&quot; 
ARCHIVE=&quot;jboss.jar,classes102.jar&quot; 
CODEBASE=&quot;../lib/ext/&quot;&gt;</span></p>
                        <p class="MsoNormal"><span lang="EN-GB"><span 
style="mso-spacerun: yes">&nbsp;&nbsp; </span>&lt;ARG 
TYPE=&quot;java.lang.String&quot; 
VALUE=&quot;jdbc:oracle:thin:@192.9.200.80:1521:orcl&quot;&gt;</span></p>
                        <p class="MsoNormal"><span lang="EN-GB"><span 
style="mso-spacerun: yes">&nbsp;&nbsp; </span>&lt;ARG 
TYPE=&quot;java.lang.String&quot; VALUE=&quot;Oracle&quot;&gt;</span></p>
                        <p class="MsoNormal"><span lang="EN-GB"><span 
style="mso-spacerun: yes">&nbsp;&nbsp; </span>&lt;ARG 
TYPE=&quot;java.lang.String&quot; 
VALUE=&quot;oracle.jdbc.driver.OracleDriver&quot;&gt;</span></p>
                        <p class="MsoNormal"><span lang="EN-GB"><span 
style="mso-spacerun: yes">&nbsp;&nbsp; </span>&lt;ARG 
TYPE=&quot;java.lang.String&quot; VALUE=&quot;scott&quot;&gt;</span></p>
                        <p class="MsoNormal"><span lang="EN-GB"><span 
style="mso-spacerun: yes">&nbsp;&nbsp; </span>&lt;ARG 
TYPE=&quot;java.lang.String&quot; VALUE=&quot;tiger&quot;&gt;</span></p>
                        <p class="MsoNormal"><span 
lang="EN-GB">&lt;/MLET&gt;</span></p>
                        <p class="MsoNormal"><span lang="EN-GB">&nbsp;</span></p>
                        <p class="MsoNormal"><span lang="EN-GB">&nbsp;</span></div>
        </body>
  
  </html>
  
  
  
  1.1                  jbossweb/contconf_howto1.html
  
  Index: contconf_howto1.html
  ===================================================================
  <html>
  <head>
  <title>
  Container Configuration
  </title>
  </head>
  
  <font face=arial,helvetica size=+3 color="#ffcc00"> 
  What is a Container Configuration?
  </font> 
  
  <p>When you deploy an application, jBoss creates a container for each of your beans. 
This container will be used only for this particular bean. It must be configured 
according to the type of the bean (CMP Entity Bean, Stateful Session Bean, ...). 
Different configurations are stored in the <em>standardjboss.xml</em> file. You may 
provide additional custom configurations in the <em>jboss.xml</em> file for your 
application.</p>
  
  <ul>
  <li><b>Standard Configurations</b><br>jBoss currently provides a standard 
configuration for each type of bean. These configurations are stored in the 
<em>standardjboss.xml</em> file. There are currently 8 standard configurations. If you 
don't provide anything else (as we advise you to do, at least at the beginning), jBoss 
will automatically choose the right standard configuration for your container. The 
available configurations are the following: <ul><tt>
  <li>Standard CMP EntityBean
  <li>Standard BMP EntityBean
  <li>Standard Stateless SessionBean
  <li>Standard Stateful SessionBean
  <li>jdk1.2.2 CMP EntityBean
  <li>jdk1.2.2 BMP EntityBean
  <li>jdk1.2.2 Stateless SessionBean
  <li>jdk1.2.2 Stateful SessionBean
  </tt></ul>
  <p>The first four ones are used if you run <b>jBoss</b> with a jdk1.3 JVM. The four 
last ones are used if you run <b>jBoss</b> with a jdk1.2.2 JVM.</p>
  
  <li><b>How do I configure my bean for jdk1.2.2 clients?</b><br>If you run jBoss on a 
jdk1.3 JVM, but your clients use jdk1.2.2, the standard configuration won't work (the 
protocols are not backward compatible). In this case, you have to force jBoss to use 
the corresponding jdk1.2.2 configuration. You do that by providing a 
<em>jboss.xml</em> file. This file must be in the <em>META-INF</em> directory of your 
jar file, along with <em>ejb-jar.xml</em>. In the section for your bean, simply add a 
<tt>&lt;configuration-name&gt;</tt> tag. Your xml files will look like this (note that 
the <tt>&lt;ejb-name&gt;</tt> tags in the 2 xml files must match)
  
  <p>
  <em>ejb-jar.xml</em>:</p>
  <p><table border=0 bgcolor="#80ff80" cellspacing=4><tr><td><pre>
  &lt;ejb-jar&gt;                                                                      
 
    &lt;enterprise-beans&gt;
                                                                        
      &lt;session&gt;
  <b>      &lt;ejb-name&gt;Bean A&lt;/ejb-name&gt;</b>
        &lt;home&gt;AHome&lt;/home&gt;
        &lt;remote&gt;A&lt;/remote&gt;
        &lt;ejb-class&gt;ABean&lt;/ejb-class&gt;
        &lt;session-type&gt;Stateful&lt;/session-type&gt;
        &lt;transaction-type&gt;Container&lt;/transaction-type&gt;
        &lt;/ejb-ref&gt;
      &lt;/session&gt;
  
    &lt;/enterprise-beans&gt;
    ...
  &lt;/ejb-jar&gt;
  </pre></td></tr></table></p>
  
  <em>jboss.xml</em>:
  <p><table border=0 bgcolor="#80ff80" cellspacing=4><tr><td><pre>
  &lt;jboss&gt;                                                               
    &lt;enterprise-beans&gt;
      &lt;session&gt;
  <b>      &lt;ejb-name&gt;Bean A&lt;/ejb-name&gt;
        &lt;configuration-name&gt;jdk1.2.2 Stateful 
SessionBean&lt;configuration-name&gt;     </b>
      &lt;/session&gt;
    &lt;enterprise-beans&gt;
  &lt;/jboss&gt;
  </pre></td></tr></table></p>
  
  
  <li><b>How do I specify my own custom configuration?</b><br>You may want to provide 
your own advanced configuration. For example, you may want to increase the size of 
your pool, or use a different instance cache. To do this, you must define your 
configuration in <em>jboss.xml</em> in the <tt>&lt;container-configurations&gt;</tt> 
tag. Then you have to use your new configuration in the bean section of your 
<em>jboss.xml</em> file. For example, if you want to log calls to your bean, your file 
will look like this : 
  
  <p><table border=0 bgcolor="#80ff80" cellspacing=4><tr><td><pre>
  &lt;jboss&gt;                                                               
    &lt;enterprise-beans&gt;
      &lt;session&gt;
        &lt;ejb-name&gt;Bean A&lt;/ejb-name&gt;
        &lt;configuration-name&gt;<b>Logging 
Configuration</b>&lt;configuration-name&gt;
      &lt;/session&gt;
    &lt;enterprise-beans&gt;
    ...
    &lt;container-configurations&gt;
      &lt;container-configuration&gt;
        &lt;container-name&gt;<b>Logging Configuration</b>&lt;/container-name&gt;
        &lt;call-logging&gt;true&lt;/call-logging&gt;
        
&lt;container-invoker&gt;org.jboss.ejb.plugins.jrmp13.server.JRMPContainerInvoker&lt;/container-invoker&gt;
        
&lt;instance-cache&gt;org.jboss.ejb.plugins.NoPassivationStatefulSessionInstanceCache&lt;/instance-cache&gt;
        
&lt;persistence-manager&gt;org.jboss.ejb.plugins.StatefulSessionFilePersistenceManager&lt;/persistence-manager&gt;
        &lt;transaction-manager&gt;org.jboss.tm.TxManager&lt;/transaction-manager&gt;
        &lt;container-invoker-conf&gt;
          &lt;Optimized&gt;False&lt;/Optimized&gt;
        &lt;/container-invoker-conf&gt;
      &lt;/container-configuration&gt;
    &lt;/container-configurations&gt;
    ...
  &lt;/jboss&gt;
  </pre></td></tr></table></p>
  
  <li><b>What can be configured?</b><br>These are the different things you can 
customize in a <tt>&lt;container-configuration&gt;</tt> tag in <em>jboss.xml</em>. See 
the <a href="jboss.dtd">jboss.xml DTD</a> for more details: <ul>
  <li><tt>call-logging</tt>: this tag must have a boolean value: true or false. It 
tells the container if calls to this bean must be logged or not. It is set to false in 
standard configurations.
  <li><tt>container-invoker</tt>: the container invoker is .
  <li><tt>instance-pool</tt>: the instance pool is a set (a "pool") of free (ie not 
currently associated to a context) instances of the bean. When an instance of the bean 
is no longer used, it is thrown back to the pool. This is not used for Stateful 
Session Beans, since the instances are not reusable.
  <li><tt>instance-cache</tt>: the cache contains the instances of a bean which are 
currently associated to a context. If it grows too big, the cache may decide to 
passivate some of the instances. This is not used for Stateless Session Beans, since 
these are directly reusable after a call.
  <li><tt>persistence-manager</tt>: the persistence manager is in charge of storing 
permanent information in the instance of a bean. For BMP Entities, it will merely 
transmit orders to the bean; for Stateful Sessions and CMP Entities, it has to save 
the state of the bean. This is not used for Stateless Session Beans, since they don't 
have a state to save.
  <li><tt>transaction-manager</tt>
  <li><tt>container-invoker-conf</tt>: configuration of the container invoker.
  <li><tt>container-cache-conf</tt>: configuration of the cache. For example, you may 
specify the time interval between passivations.
  <li><tt>container-pool-conf</tt>: configuration of the pool. Mainly, the size of the 
pool.
  <li><tt>commit-option</tt> must be A, B or C. See the ejb specification for more 
details.
  </ul>
  
  </ul>
  <hr>Author: <a href="mailto:[EMAIL PROTECTED]">S�bastien Alborini</a>
  </body>
  </html>
  
  
  1.1                  jbossweb/contconf_howto.html
  
  Index: contconf_howto.html
  ===================================================================
  <html>
  <head>
  <title>
  Container Configuration
  </title>
  </head>
  
  <font face=arial,helvetica size=+3 color="#ffcc00"> 
  What is a Container Configuration?
  </font> 
  
  <p>When you deploy an application, jBoss creates a container for each of your beans. 
This container will be used only for this particular bean. It must be configured 
according to the type of the bean (CMP Entity Bean, Stateful Session Bean, ...). 
Different configurations are stored in the <em>standardjboss.xml</em> file. You may 
provide additional custom configurations in the <em>jboss.xml</em> file for your 
application.</p>
  
  <ul>
  <li><b>Standard Configurations</b><br>jBoss currently provides a standard 
configuration for each type of bean. These configurations are stored in the 
<em>standardjboss.xml</em> file. There are currently 8 standard configurations. If you 
don't provide anything else (as we advise you to do, at least at the beginning), jBoss 
will automatically choose the right standard configuration for your container. The 
available configurations are the following: <ul><tt>
  <li>Standard CMP EntityBean
  <li>Standard BMP EntityBean
  <li>Standard Stateless SessionBean
  <li>Standard Stateful SessionBean
  <li>jdk1.2.2 CMP EntityBean
  <li>jdk1.2.2 BMP EntityBean
  <li>jdk1.2.2 Stateless SessionBean
  <li>jdk1.2.2 Stateful SessionBean
  </tt></ul>
  <p>The first four ones are used if you run <b>jBoss</b> with a jdk1.3 JVM. The four 
last ones are used if you run <b>jBoss</b> with a jdk1.2.2 JVM.</p>
  
  <li><b>How do I configure my bean for jdk1.2.2 clients?</b><br>If you run jBoss on a 
jdk1.3 JVM, but your clients use jdk1.2.2, the standard configuration won't work (the 
protocols are not backward compatible). In this case, you have to force jBoss to use 
the corresponding jdk1.2.2 configuration. You do that by providing a 
<em>jboss.xml</em> file. This file must be in the <em>META-INF</em> directory of your 
jar file, along with <em>ejb-jar.xml</em>. In the section for your bean, simply add a 
<tt>&lt;configuration-name&gt;</tt> tag. Your xml files will look like this (note that 
the <tt>&lt;ejb-name&gt;</tt> tags in the 2 xml files must match)
  
  <p>
  <em>ejb-jar.xml</em>:</p>
  <p><table border=0 bgcolor="#80ff80" cellspacing=4><tr><td><pre>
  &lt;ejb-jar&gt;                                                                      
 
    &lt;enterprise-beans&gt;
                                                                        
      &lt;session&gt;
  <b>      &lt;ejb-name&gt;Bean A&lt;/ejb-name&gt;</b>
        &lt;home&gt;AHome&lt;/home&gt;
        &lt;remote&gt;A&lt;/remote&gt;
        &lt;ejb-class&gt;ABean&lt;/ejb-class&gt;
        &lt;session-type&gt;Stateful&lt;/session-type&gt;
        &lt;transaction-type&gt;Container&lt;/transaction-type&gt;
        &lt;/ejb-ref&gt;
      &lt;/session&gt;
  
    &lt;/enterprise-beans&gt;
    ...
  &lt;/ejb-jar&gt;
  </pre></td></tr></table></p>
  
  <em>jboss.xml</em>:
  <p><table border=0 bgcolor="#80ff80" cellspacing=4><tr><td><pre>
  &lt;jboss&gt;                                                               
    &lt;enterprise-beans&gt;
      &lt;session&gt;
  <b>      &lt;ejb-name&gt;Bean A&lt;/ejb-name&gt;
        &lt;configuration-name&gt;jdk1.2.2 Stateful 
SessionBean&lt;configuration-name&gt;     </b>
      &lt;/session&gt;
    &lt;enterprise-beans&gt;
  &lt;/jboss&gt;
  </pre></td></tr></table></p>
  
  
  <li><b>How do I specify my own custom configuration?</b><br>You may want to provide 
your own advanced configuration. For example, you may want to increase the size of 
your pool, or use a different instance cache. To do this, you must define your 
configuration in <em>jboss.xml</em> in the <tt>&lt;container-configurations&gt;</tt> 
tag. Then you have to use your new configuration in the bean section of your 
<em>jboss.xml</em> file. For example, if you want to log calls to your bean, your file 
will look like this : 
  
  <p><table border=0 bgcolor="#80ff80" cellspacing=4><tr><td><pre>
  &lt;jboss&gt;                                                               
    &lt;enterprise-beans&gt;
      &lt;session&gt;
        &lt;ejb-name&gt;Bean A&lt;/ejb-name&gt;
        &lt;configuration-name&gt;<b>Logging 
Configuration</b>&lt;configuration-name&gt;
      &lt;/session&gt;
    &lt;enterprise-beans&gt;
    ...
    &lt;container-configurations&gt;
      &lt;container-configuration&gt;
        &lt;container-name&gt;<b>Logging Configuration</b>&lt;/container-name&gt;
        &lt;call-logging&gt;true&lt;/call-logging&gt;
        
&lt;container-invoker&gt;org.jboss.ejb.plugins.jrmp13.server.JRMPContainerInvoker&lt;/container-invoker&gt;
        
&lt;instance-cache&gt;org.jboss.ejb.plugins.NoPassivationStatefulSessionInstanceCache&lt;/instance-cache&gt;
        
&lt;persistence-manager&gt;org.jboss.ejb.plugins.StatefulSessionFilePersistenceManager&lt;/persistence-manager&gt;
        &lt;transaction-manager&gt;org.jboss.tm.TxManager&lt;/transaction-manager&gt;
        &lt;container-invoker-conf&gt;
          &lt;Optimized&gt;False&lt;/Optimized&gt;
        &lt;/container-invoker-conf&gt;
      &lt;/container-configuration&gt;
    &lt;/container-configurations&gt;
    ...
  &lt;/jboss&gt;
  </pre></td></tr></table></p>
  
  <li><b>What can be configured?</b><br>These are the different things you can 
customize in a <tt>&lt;container-configuration&gt;</tt> tag in <em>jboss.xml</em>. See 
the <a href="??">jboss.xml DTD</a> for more details: <ul>
  <li><tt>call-logging</tt>: this tag must have a boolean value: true or false. It 
tells the container if calls to this bean must be logged or not. It is set to false in 
standard configurations.
  <li><tt>container-invoker</tt>: the container invoker is .
  <li><tt>instance-pool</tt>: the instance pool is a set (a "pool") of free (ie not 
currently associated to a context) instances of the bean. When an instance of the bean 
is no longer used, it is thrown back to the pool. This is not used for Stateful 
Session Beans, since the instances are not reusable.
  <li><tt>instance-cache</tt>: the cache contains the instances of a bean which are 
currently associated to a context. If it grows too big, the cache may decide to 
passivate some of the instances. This is not used for Stateless Session Beans, since 
these are directly reusable after a call.
  <li><tt>persistence-manager</tt>: the persistence manager is in charge of storing 
permanent information in the instance of a bean. For BMP Entities, it will merely 
transmit orders to the bean; for Stateful Sessions and CMP Entities, it has to save 
the state of the bean. This is not used for Stateless Session Beans, since they don't 
have a state to save.
  <li><tt>transaction-manager</tt>
  <li><tt>container-invoker-conf</tt>: configuration of the container invoker.
  <li><tt>container-cache-conf</tt>: configuration of the cache. For example, you may 
specify the time interval between passivations.
  <li><tt>container-pool-conf</tt>: configuration of the pool. Mainly, the size of the 
pool.
  <li><tt>commit-option</tt> must be A, B or C. See the ejb specification for more 
details.
  </ul>
  
  </ul>
  <hr>Author: <a href="mailto:[EMAIL PROTECTED]">S�bastien Alborini</a>
  </body>
  </html>
  
  

Reply via email to