geronimo-scm mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From conflue...@apache.org
Subject [CONF] Apache Geronimo v2.1: Stateless Session Bean (page edited)
Date Thu, 28 Feb 2008 21:18:00 GMT
<html>
<head>
    <base href="http://cwiki.apache.org/confluence" />
    <style type="text/css">
    <!--
    body, p, td, table, tr, .bodytext, .stepfield {
	font-family: Verdana, arial, sans-serif;
	font-size: 11px;
	line-height: 16px;
	color: #000000;
	font-weight: normal;
}
#PageContent {
	text-align: left;
	background-color: #fff;
	padding: 0px;
	margin: 0px;
    padding-bottom:20px;
}
/*
** when this stylesheet is used for the Tiny MCE Wysiwyg editor's edit area, we can't
** use an id=PageContent or class=wiki-content, so we must
** set the body style to that used for PageContent, and p to that used for wiki-content.
*/

body {
	margin: 0px;
	padding: 0px;
	text-align: center;
    background-color: #f0f0f0;
}

@media print {

body {
    background-color: #fff;
}

}

.monospaceInput {
    font:12px monospace
}

.wiki-content p, .commentblock p {
    margin: 16px 0px 16px 0px;
    padding: 0px;
}

.wiki-content-preview {
    padding: 5px;
    border-left: 1px solid #3c78b5;
    border-right: 1px solid #3c78b5;
}

ul, ol {
    margin-top: 2px;
    margin-bottom: 2px;
    padding-top: 0px;
    padding-bottom: 0px;
}

pre {
    padding: 0px;
    margin-top: 5px;
    margin-left: 15px;
    margin-bottom: 5px;
    margin-right: 5px;
    text-align: left;
}

.helpheading {
    font-weight: bold;
    background-color: #D0D9BD;
        border-bottom: 1px solid #3c78b5;
        padding: 4px 4px 4px 4px;
        margin: 0px;
        margin-top: 10px;
}
.helpcontent {
        padding: 4px 4px 20px 4px;
    background-color: #f5f7f1;
}

.code {
 	border: 1px dashed #3c78b5;
    font-size: 11px;
	font-family: Courier;
    margin: 10px;
	line-height: 13px;
}

.focusedComment {
    background: #ffffce;
}

.commentBox, .focusedComment {
    padding: 10px;
    margin: 5px 0 5px 0;
    border: 1px #bbb solid;
}

.codeHeader {
    background-color: #f0f0f0;
 	border-bottom: 1px dashed #3c78b5;
    padding: 3px;
	text-align: center;
}

.codeContent {
    text-align: left;
    background-color: #f0f0f0;
    padding: 3px;
}

.preformatted {
 	border: 1px dashed #3c78b5;
    font-size: 11px;
	font-family: Courier;
    margin: 10px;
	line-height: 13px;
}

.preformattedHeader {
    background-color: #f0f0f0;
 	border-bottom: 1px dashed #3c78b5;
    padding: 3px;
	text-align: center;
}

.preformattedContent {
    background-color: #f0f0f0;
    padding: 3px;
}

.panel {
 	border: 1px dashed #3c78b5;
    margin: 10px;
    margin-top: 0px;
}

.panelHeader {
    background-color: #f0f0f0;
 	border-bottom: 1px dashed #3c78b5;
    padding: 3px;
	text-align: center;
}

.panelContent {
    background-color: #f0f0f0;
    padding: 5px;
}

.anonymousAlert {
    background-color: #f0f0f0;
 	border: 1px dashed red;
    font-size: 11px;
    padding: 10px 5px 10px 5px;
    margin: 4px;
	line-height: 13px;
}

.lockAlert {
    background-color: #f0f0f0;
    width: 50%;
 	border: 1px dashed red;
    font-size: 11px;
    padding: 10px 5px 10px 5px;
    margin: 4px;
	line-height: 13px;
}


.code-keyword {
  color: #000091;
  background-color: inherit;
}

.code-object {
  color: #910091;
  background-color: inherit;
}

.code-quote {
  color: #009100;
  background-color: inherit;
}

.code-comment {
  color: #808080;
  background-color: inherit;
}


.code-xml .code-keyword {
  color: inherit;
  font-weight: bold;
}

.code-tag {
  color: #000091;
  background-color: inherit;
}

.breadcrumbs {
    background-color: #f0f0f0;
 	border-color: #3c78b5;
	border-width: 1px 0px 1px 0px;
	border-style: solid;
    font-size: 11px;
    padding: 3px 0px 3px 0px;
}

.navmenu {
    border: 1px solid #ccc;
}

.menuheading {
    font-weight: bold;
    background-color: #f0f0f0;
 	border-bottom: 1px solid #3c78b5;
	padding: 4px 4px 2px 4px;
}

.menuitems {
	padding: 4px 4px 20px 4px;
}

.rightpanel {
    border-left: 1px solid #ccc;
    border-bottom: 1px solid #ccc;
}

#helpheading {
    text-align: left;
    font-weight: bold;
    background-color: #D0D9BD;
 	border-bottom: 1px solid #3c78b5;
	padding: 4px 4px 4px 4px;
	margin: 0px;
}
#helpcontent {
	padding: 4px 4px 4px 4px;
    background-color: #f5f7f1;
}
.helptab-unselected {
    font-weight: bold;
	padding: 5px;
    background-color: #f5f7f1;
}
.helptab-selected {
    font-weight: bold;
    background-color: #D0D9BD;
	padding: 5px;
}
.helptabs {
    margin: 0px;
    background-color: #f5f7f1;
	padding: 5px;
}
.infopanel-heading {
    font-weight: bold;
	padding: 4px 0px 2px 0px;
}

.pagebody {
}

.pageheader {
	padding: 5px 5px 5px 0px;
 	border-bottom: 1px solid #3c78b5;
}

.pagetitle {
	font-size: 22px;
	font-weight: bold;
	font-family: Arial, sans-serif;
	color: #003366;
}

.newpagetitle {
    color: #ccc !important;
}

.steptitle {
	font-size: 18px;
	font-weight: bold;
	font-family: Arial, sans-serif;
	color: #003366;
	margin-bottom: 7px;
}

.substeptitle {
    font-size: 12px;
    font-weight: bold;
    font-family: Arial, sans-serif;
    color: #003366;
    margin: 2px 4px 4px 4px;
    padding: 2px 4px 1px 4px;
}

.stepdesc {
    font-family: Verdana, arial, sans-serif;
	font-size: 11px;
	line-height: 16px;
	font-weight: normal;
    color: #666666;
    margin-top: 7px;
    margin-bottom: 7px;
}

.steplabel {
    font-weight: bold;
    margin-right: 4px;
    color: black;
    float: left;
    width: 15%;
    text-align: right;
}

.stepfield {
    background: #f0f0f0;
    padding: 5px;
}

.submitButtons{
    margin-top:5px;
    text-align:right;
}

.formtitle {
	font-size: 12px;
	font-weight: bold;
	font-family: Arial, sans-serif;
	color: #003366;
}

.sectionbottom {
    border-bottom: 1px solid #3c78b5;
}

.topRow {
    border-top: 2px solid #3c78b5;
}

.tabletitle {
	font-size: 14px;
	font-weight: bold;
	font-family: Arial, sans-serif;
    padding: 3px 0px 2px 0px;
    margin: 8px 4px 2px 0px;
	color: #003366;
	border-bottom: 2px solid #3c78b5;
}
.pagesubheading {
    color: #666666;
    font-size: 10px;
    padding: 0px 0px 5px 0px;
}

HR {
	color: 3c78b5;
	height: 1;
}

A:link, A:visited, A:active, A:hover {
	color: #003366;
}

h1 A:link, h1 A:visited, h1 A:active {
	text-decoration: none;
}

h1 A:hover {
    border-bottom: 1px dotted #003366;
}

.wiki-content > :first-child, .commentblock > :first-child {
    margin-top: 3px;
}

.logocell {
    padding: 10px;
}

input {
	font-family: verdana, geneva, arial, sans-serif;
	font-size: 11px;
	color: #000000;
}

textarea, textarea.editor {
	font-family: verdana, geneva, arial, sans-serif;
	font-size: 11px;
	color: #333333;
}

/* use logoSpaceLink instead.
.spacenametitle {
	font: 21px/31px Impact, Arial, Helvetica;
    font-weight: 100;
    color: #999999;
	margin: 0px;
}
.spacenametitle img {
  margin: 0 0 -4px 0;
}
.spacenametitle a {
    text-decoration: none;
    color: #999999;
}
.spacenametitle a:visited {
    text-decoration: none;
    color: #999999;
}*/

.spacenametitle-printable {
	font: 20px/25px Impact, Arial, Helvetica;
    font-weight: 100;
    color: #999999;
	margin: 0px;
}
.spacenametitle-printable a {
    text-decoration: none;
    color: #999999;
}
.spacenametitle-printable a:visited {
    text-decoration: none;
    color: #999999;
}

.blogDate {
	font-weight: bold;
	text-decoration: none;
	color: black;
}

.blogSurtitle {
    background: #f0f0f0;
 	border: 1px solid #ddd;
	padding: 3px;
	margin: 1px 1px 10px 1px;
}

.blogHeading {
    font-size: 20px;
    line-height: normal;
    font-weight: bold;
    padding: 0px;
    margin: 0px;
}

.blogHeading a {
   text-decoration: none;
   color: black;
}

.endsection {
	align: right;
	color: #666666;
	margin-top: 10px;
}
.endsectionleftnav {
	align: right;
	color: #666666;
	margin-top: 10px;
}

h1 {
	font-size: 24px;
	line-height: normal;
	font-weight: bold;
	background-color: #f0f0f0;
	color: #003366;
 	border-bottom: 1px solid #3c78b5;
	padding: 2px;
	margin: 36px 0px 4px 0px;
}

h2 {
	font-size: 18px;
	line-height: normal;
	font-weight: bold;
	background-color: #f0f0f0;
 	border-bottom: 1px solid #3c78b5;
	padding: 2px;
	margin: 27px 0px 4px 0px;
}

h3 {
	font-size: 14px;
	line-height: normal;
	font-weight: bold;
	background-color: #f0f0f0;
	padding: 2px;
	margin: 21px 0px 4px 0px;
}

h4 {
	font-size: 12px;
	line-height: normal;
	font-weight: bold;
	background-color: #f0f0f0;
	padding: 2px;
	margin: 18px 0px 4px 0px;
}

h4.search {
	font-size: 12px;
	line-height: normal;
	font-weight: normal;
	background-color: #f0f0f0;
	padding: 4px;
	margin: 18px 0px 4px 0px;
}

h5 {
	font-size: 10px;
	line-height: normal;
	font-weight: bold;
	background-color: #f0f0f0;
	padding: 2px;
	margin: 14px 0px 4px 0px;
}

h6 {
	font-size: 8px;
	line-height: normal;
	font-weight: bold;
	background-color: #f0f0f0;
	padding: 2px;
	margin: 14px 0px 4px 0px;
}

.smallfont {
    font-size: 10px;
}
.descfont {
    font-size: 10px;
    color: #666666;
}
.smallerfont {
    font-size: 9px;
}
.smalltext {
    color: #666666;
    font-size: 10px;
}
.smalltext a {
    color: #666666;
}
.smalltext-blue {
    color: #3c78b5;
    font-size: 10px;
}
.surtitle {
    margin-left: 1px;
    margin-bottom: 5px;
    font-size: 14px;
    color: #666666;
}

/* css hack found here:  http://www.fo3nix.pwp.blueyonder.co.uk/tutorials/css/hacks/ */
.navItemOver { font-size: 10px; font-weight: bold; color: #ffffff; background-color: #003366; cursor: hand; voice-family: '\'}\''; voice-family:inherit; cursor: pointer;}
.navItemOver a { color: #ffffff; background-color:#003366; text-decoration: none; }
.navItemOver a:visited { color: #ffffff; background-color:#003366; text-decoration: none; }
.navItemOver a:hover { color: #ffffff; background-color:#003366; text-decoration: none; }
.navItem { font-size: 10px; font-weight: bold; color: #ffffff; background-color: #3c78b5; }
.navItem a { color: #ffffff; text-decoration: none; }
.navItem a:hover { color: #ffffff; text-decoration: none; }
.navItem a:visited { color: #ffffff; text-decoration: none; }

div.padded { padding: 4px; }
div.thickPadded { padding: 10px; }
h3.macrolibrariestitle {
    margin: 0px 0px 0px 0px;
}

div.centered { text-align: center; margin: 10px; }
div.centered table {margin: 0px auto; text-align: left; }

.tableview table {
    margin: 0;
}

.tableview th {
    text-align: left;
    color: #003366;
    font-size: 12px;
    padding: 5px 0px 0px 5px;
    border-bottom: 2px solid #3c78b5;
}
.tableview td {
    text-align: left;
    border-color: #ccc;
    border-width: 0px 0px 1px 0px;
    border-style: solid;
    margin: 0;
    padding: 4px 10px 4px 5px;
}

.grid {
    margin: 2px 0px 5px 0px;
    border-collapse: collapse;
}
.grid th  {
    border: 1px solid #ccc;
    padding: 2px 4px 2px 4px;
    background: #f0f0f0;
    text-align: center;
}
.grid td  {
    border: 1px solid #ccc;
    padding: 3px 4px 3px 4px;
}
.gridHover {
	background-color: #f9f9f9;
}

td.infocell {
    background-color: #f0f0f0;
}
.label {
	font-weight: bold;
	color: #003366;
}

label {
	font-weight: bold;
	color: #003366;
}

.error {
	background-color: #fcc;
}

.errorBox {
	background-color: #fcc;
    border: 1px solid #c00;
    padding: 5px;
    margin: 5px;
}

.errorMessage {
	color: #c00;
}

.success {
	background-color: #dfd;
}

.successBox {
	background-color: #dfd;
    border: 1px solid #090;
    padding: 5px;
    margin-top:5px;
    margin-bottom:5px;
}

blockquote {
	padding-left: 10px;
	padding-right: 10px;
	margin-left: 5px;
	margin-right: 0px;
	border-left: 1px solid #3c78b5;
}

table.confluenceTable
{
    margin: 5px;
    border-collapse: collapse;
}

/* Added as a temporary fix for CONF-4223. The table elements appear to be inheriting the border: none attribute from the sectionMacro class */
table.confluenceTable td.confluenceTd
{
    border-width: 1px;
    border-style: solid;
    border-color: #ccc;
    padding: 3px 4px 3px 4px;
}

/* Added as a temporary fix for CONF-4223. The table elements appear to be inheriting the border: none attribute from the sectionMacro class */
table.confluenceTable th.confluenceTh
{
    border-width: 1px;
    border-style: solid;
    border-color: #ccc;
    padding: 3px 4px 3px 4px;
    background-color: #f0f0f0;
    text-align: center;
}

td.confluenceTd
{
    border-width: 1px;
    border-style: solid;
    border-color: #ccc;
    padding: 3px 4px 3px 4px;
}

th.confluenceTh
{
    border-width: 1px;
    border-style: solid;
    border-color: #ccc;
    padding: 3px 4px 3px 4px;
    background-color: #f0f0f0;
    text-align: center;
}

DIV.small {
	font-size: 9px;
}

H1.pagename {
	margin-top: 0px;
}

IMG.inline  {}

.loginform {
    margin: 5px;
    border: 1px solid #ccc;
}

/* The text how the "This is a preview" comment should be shown. */
.previewnote { text-align: center;
                font-size: 11px;
                    color: red; }

/* How the preview content should be shown */
.previewcontent { background: #E0E0E0; }

/* How the system messages should be shown (DisplayMessage.jsp) */
.messagecontent { background: #E0E0E0; }

/* How the "This page has been modified..." -comment should be shown. */
.conflictnote { }

.createlink {
    color: maroon;
}
a.createlink {
    color: maroon;
}
.templateparameter {
    font-size: 9px;
    color: darkblue;
}

.diffadded {
    background: #ddffdd;
    padding: 1px 1px 1px 4px;
	border-left: 4px solid darkgreen;
}
.diffdeleted {
    color: #999;
    background: #ffdddd;
    padding: 1px 1px 1px 4px;
	border-left: 4px solid darkred;
}
.diffnochange {
    padding: 1px 1px 1px 4px;
	border-left: 4px solid lightgrey;
}
.differror {
    background: brown;
}
.diff {
    font-family: lucida console, courier new, fixed-width;
	font-size: 12px;
	line-height: 14px;
}
.diffaddedchars {
    background-color:#99ff99;
    font-weight:bolder;
}
.diffremovedchars {
    background-color:#ff9999;
    text-decoration: line-through;
    font-weight:bolder;
}

.greybackground {
    background: #f0f0f0
}

.greybox {
 	border: 1px solid #ddd;
	padding: 3px;
	margin: 1px 1px 10px 1px;
}

.borderedGreyBox {
    border: 1px solid #cccccc;
    background-color: #f0f0f0;
    padding: 10px;
}

.greyboxfilled {
 	border: 1px solid #ddd;
    background: #f0f0f0;
    padding: 3px;
	margin: 1px 1px 10px 1px;
}

.navBackgroundBox {
    padding: 5px 5px 5px 5px;
    font-size: 22px;
	font-weight: bold;
	font-family: Arial, sans-serif;
	color: white;
    background: #3c78b5;
    text-decoration: none;
}

.previewBoxTop {
	background-color: #f0f0f0;
    border-width: 1px 1px 0px 1px;
    border-style: solid;
    border-color: #3c78b5;
    padding: 5px;
    margin: 5px 0px 0px 0px;
    text-align: center;
}
.previewContent {
    background-color: #fff;
 	border-color: #3c78b5;
	border-width: 0px 1px 0px 1px;
	border-style: solid;
	padding: 10px;
	margin: 0px;
}
.previewBoxBottom {
	background-color: #f0f0f0;
    border-width: 0px 1px 1px 1px;
    border-style: solid;
    border-color: #3c78b5;
    padding: 5px;
    margin: 0px 0px 5px 0px;
    text-align: center;
}

.functionbox {
    background-color: #f0f0f0;
 	border: 1px solid #3c78b5;
	padding: 3px;
	margin: 1px 1px 10px 1px;
}

.functionbox-greyborder {
    background-color: #f0f0f0;
 	border: 1px solid #ddd;
	padding: 3px;
	margin: 1px 1px 10px 1px;
}

.search-highlight {
    background-color: #ffffcc;
}

/* normal (white) background */
.rowNormal {
    background-color: #ffffff;
 }

/* alternate (pale yellow) background */
.rowAlternate {
    background-color: #f7f7f7;
}

/* used in the list attachments table */
.rowAlternateNoBottomColor {
    background-color: #f7f7f7;
}

.rowAlternateNoBottomNoColor {
}

.rowAlternateNoBottomColor td {
    border-bottom: 0px;
}

.rowAlternateNoBottomNoColor td {
    border-bottom: 0px;
}

/* row highlight (grey) background */
.rowHighlight {
    background-color: #f0f0f0;

}

TD.greenbar {FONT-SIZE: 2px; BACKGROUND: #00df00; BORDER: 1px solid #9c9c9c; PADDING: 0px; }
TD.redbar {FONT-SIZE: 2px; BACKGROUND: #df0000; BORDER: 1px solid #9c9c9c; PADDING: 0px; }
TD.darkredbar {FONT-SIZE: 2px; BACKGROUND: #af0000; BORDER: 1px solid #9c9c9c; PADDING: 0px; }

TR.testpassed {FONT-SIZE: 2px; BACKGROUND: #ddffdd; PADDING: 0px; }
TR.testfailed {FONT-SIZE: 2px; BACKGROUND: #ffdddd; PADDING: 0px; }

.toolbar  {
    margin: 0px;
    border-collapse: collapse;
}

.toolbar td  {
    border: 1px solid #ccc;
    padding: 2px 2px 2px 2px;
    color: #ccc;
}

td.noformatting {
    border-width: 0px;
    border-style: none;
    text-align: center;
	padding: 0px;
}

.commentblock {
    margin: 12px 0 12px 0;
}

/*
 * Divs displaying the license information, if necessary.
 */
.license-eval, .license-none, .license-nonprofit {
    border-top: 1px solid #bbbbbb;
    text-align: center;
    font-size: 10px;
    font-family: Verdana, Arial, Helvetica, sans-serif;
}

.license-eval, .license-none {
    background-color: #ffcccc;
}

.license-eval b, .license-none b {
    color: #990000
}

.license-nonprofit {
    background-color: #ffffff;
}

/*
 * The shadow at the bottom of the page between the main content and the
 * "powered by" section.
 */
.bottomshadow {
    height: 12px;
    background-image: url("$req.contextPath/images/border/border_bottom.gif");
    background-repeat: repeat-x;
}

/*
 * Styling of the operations box
 */
.navmenu .operations li, .navmenu .operations ul {
    list-style: none;
    margin-left: 0;
    padding-left: 0;
}

.navmenu .operations ul {
    margin-bottom: 9px;
}

.navmenu .label {
    font-weight: inherit;
}

/*
 * Styling of ops as a toolbar
 */
.toolbar div {
    display: none;
}

.toolbar .label {
    display: none;
}

.toolbar .operations {
    display: block;
}

.toolbar .operations ul {
    display: inline;
    list-style: none;
    margin-left: 10px;
    padding-left: 0;
}

.toolbar .operations li {
    list-style: none;
    display: inline;
}

/* list page navigational tabs */
#foldertab {
padding: 3px 0px 3px 8px;
margin-left: 0;
border-bottom: 1px solid #3c78b5;
font: bold 11px Verdana, sans-serif;
}

#foldertab li {
list-style: none;
margin: 0;
display: inline;
}

#foldertab li a {
padding: 3px 0.5em;
margin-left: 3px;
border: 1px solid #3c78b5;
border-bottom: none;
background: #3c78b5;
text-decoration: none;
}

#foldertab li a:link { color: #ffffff; }
#foldertab li a:visited { color: #ffffff; }

#foldertab li a:hover {
color: #ffffff;
background: #003366;
border-color: #003366;
}

#foldertab li a.current {
background: white;
border-bottom: 1px solid white;
color: black;
}

#foldertab li a.current:link { color: black; }
#foldertab li a.current:visited { color: black; }
#foldertab li a.current:hover {
background: white;
border-bottom: 1px solid white;
color: black;
}

/* alphabet list */
ul#squaretab {
margin-left: 0;
padding-left: 0;
white-space: nowrap;
font: bold 8px Verdana, sans-serif;
}

#squaretab li {
display: inline;
list-style-type: none;
}

#squaretab a {
padding: 2px 6px;
border: 1px solid #3c78b5;
}

#squaretab a:link, #squaretab a:visited {
color: #fff;
background-color: #3c78b5;
text-decoration: none;
}

#squaretab a:hover {
color: #ffffff;
background-color: #003366;
border-color: #003366;
text-decoration: none;
}

#squaretab li a#current {
background: white;
color: black;
}

.blogcalendar * {
    font-family:verdana, arial, sans-serif;
    font-size:x-small;
    font-weight:normal;
    line-height:140%;
    padding:2px;
}


table.blogcalendar {
    border: 1px solid #3c78b5;
}

.blogcalendar th.calendarhead, a.calendarhead {
    font-size:x-small;
    font-weight:bold;
    padding:2px;
    text-transform:uppercase;
    background-color: #3c78b5;
    color: #ffffff;
    letter-spacing: .3em;
    text-transform: uppercase;
}

.calendarhead:visited {color: white;}
.calendarhead:active {color: white;}
.calendarhead:hover {color: white;}

.blogcalendar th {
    font-size:x-small;
    font-weight:bold;
    padding:2px;
    background-color:#f0f0f0;
}

.blogcalendar td {
    font-size:x-small;
    font-weight:normal;
}

.searchGroup { padding: 0 0 10px 0; background: #f0f0f0; }
.searchGroupHeading { font-size: 10px; font-weight: bold; color: #ffffff; background-color: #3c78b5; padding: 2px 4px 1px 4px; }
.searchItem { padding: 1px 4px 1px 4px; }
.searchItemSelected { padding: 1px 4px 1px 4px; font-weight: bold; background: #ddd; }

/* permissions page styles */
.permissionHeading {
    border-bottom: #bbb; border-width: 0 0 1px 0; border-style: solid; font-size: 16px; text-align: left;
}
.permissionTab {
    border-width: 0 0 0 1px; border-style: solid; background: #3c78b5; color: #ffffff; font-size: 10px;
}
.permissionSuperTab {
    border-width: 0 0 0 1px; border-style: solid; background: #003366; color: #ffffff;
}
.permissionCell {
    border-left: #bbb; border-width: 0 0 0 1px; border-style: solid;
}

/* warning panel */
.warningPanel { background: #FFFFCE; border:#F0C000 1px solid; padding: 8px; margin: 10px; }
/* alert panel */
.alertPanel { background: #FFCCCC; border:#C00 1px solid; padding: 8px; margin: 10px; }
/* info panel */
.infoPanel { background: #D8E4F1; border:#3c78b5 1px solid; padding: 8px; margin: 10px; }

/* side menu highlighting (e.g. space content screen) */
.optionPadded { padding: 2px; }
.optionSelected { background-color: #ffffcc; padding: 2px; border: 1px solid #ddd; margin: -1px; }
.optionSelected a { font-weight: bold; text-decoration: none; color: black; }

/* information macros */
.noteMacro { border-style: solid; border-width: 1px; border-color: #F0C000; background-color: #FFFFCE; text-align:left; margin-top: 5px; margin-bottom: 5px}
.warningMacro { border-style: solid; border-width: 1px; border-color: #c00; background-color: #fcc; text-align:left; margin-top: 5px; margin-bottom: 5px}
.infoMacro { border-style: solid; border-width: 1px; border-color: #3c78b5; background-color: #D8E4F1; text-align:left; margin-top: 5px; margin-bottom: 5px}
.tipMacro { border-style: solid; border-width: 1px; border-color: #090; background-color: #dfd; text-align:left; margin-top: 5px; margin-bottom: 5px}
.informationMacroPadding { padding: 5px 0 0 5px; }

table.infoMacro td, table.warningMacro td, table.tipMacro td, table.noteMacro td, table.sectionMacro td {
    border: none;
}

table.sectionMacroWithBorder td.columnMacro { border-style: dashed; border-width: 1px; border-color: #cccccc;}

.pagecontent
{
    padding: 10px;
    text-align: left;
}

/* styles for links in the top bar */
.topBarDiv a:link {color: #ffffff;}
.topBarDiv a:visited {color: #ffffff;}
.topBarDiv a:active {color: #ffffff;}
.topBarDiv a:hover {color: #ffffff;}
.topBarDiv {color: #ffffff;}

.topBar {
    background-color: #003366;
}


/* styles for extended operations */
.greyLinks a:link {color: #666666; text-decoration:underline;}
.greyLinks a:visited {color: #666666; text-decoration:underline;}
.greyLinks a:active {color: #666666; text-decoration:underline;}
.greyLinks a:hover {color: #666666; text-decoration:underline;}
.greyLinks {color: #666666; display:block; padding: 10px}

.logoSpaceLink {color: #999999; text-decoration: none}
.logoSpaceLink a:link {color: #999999; text-decoration: none}
.logoSpaceLink a:visited {color: #999999; text-decoration: none}
.logoSpaceLink a:active {color: #999999; text-decoration: none}
.logoSpaceLink a:hover {color: #003366; text-decoration: none}

/* basic panel (basicpanel.vmd) style */
.basicPanelContainer {border: 1px solid #3c78b5; margin-top: 2px; margin-bottom: 8px; width: 100%}
.basicPanelTitle {padding: 5px; margin: 0px; background-color: #f0f0f0; color: black; font-weight: bold;}
.basicPanelBody {padding: 5px; margin: 0px}

.separatorLinks a:link {color: white}
.separatorLinks a:visited {color: white}
.separatorLinks a:active {color: white}

.greynavbar {background-color: #f0f0f0; border-top: 1px solid #3c78b5; margin-top: 2px}

div.headerField {
    float: left;
    width: auto;
    height: 100%;
}

.headerFloat {
    margin-left: auto;
    width: 50%;
}

.headerFloatLeft {
    float: left;
    margin-right: 20px;
    margin-bottom: 10px;
}

#headerRow {
    padding: 10px;
}

div.license-personal {
   background-color: #003366;
   color: #ffffff;
}

div.license-personal a {
   color: #ffffff;
}

.greyFormBox {
    border: 1px solid #cccccc;
    padding: 5px;
}

/* IE automatically adds a margin before and after form tags. Use this style to remove that */
.marginlessForm {
    margin: 0px;
}

.openPageHighlight {
    background-color: #ffffcc;
    padding: 2px;
    border: 1px solid #ddd;
}

.editPageInsertLinks, .editPageInsertLinks a
{
    color: #666666;
    font-weight: bold;
    font-size: 10px;
}

/* Style for label heatmap. */
.top10 a {
    font-weight: bold;
    font-size: 2em;
    color: #003366;
}
.top25 a {
    font-weight: bold;
    font-size: 1.6em;
    color: #003366;
}
.top50 a {
    font-size: 1.4em;
    color: #003366;
}
.top100 a {
    font-size: 1.2em;
    color: #003366;
}

.heatmap {
    list-style:none;
    width: 95%;
    margin: 0px auto;
}

.heatmap a {
    text-decoration:none;
}

.heatmap a:hover {
    text-decoration:underline;
}

.heatmap li {
    display: inline;
}

.minitab {
padding: 3px 0px 3px 8px;
margin-left: 0;
margin-top: 1px;
margin-bottom: 0px;
border-bottom: 1px solid #3c78b5;
font: bold 9px Verdana, sans-serif;
text-decoration: none;
float:none;
}
.selectedminitab {
padding: 3px 0.5em;
margin-left: 3px;
margin-top: 1px;
border: 1px solid #3c78b5;
background: white;
border-bottom: 1px solid white;
color: #000000;
text-decoration: none;
}
.unselectedminitab {
padding: 3px 0.5em;
margin-left: 3px;
margin-top: 1px;
border: 1px solid #3c78b5;
border-bottom: none;
background: #3c78b5;
color: #ffffff;
text-decoration: none;
}

a.unselectedminitab:hover {
color: #ffffff;
background: #003366;
border-color: #003366;
}

a.unselectedminitab:link { color: white; }
a.unselectedminitab:visited { color: white; }

a.selectedminitab:link { color: black; }
a.selectedminitab:visited { color: black; }

.linkerror { background-color: #fcc;}

a.labelOperationLink:link {text-decoration: underline}
a.labelOperationLink:active {text-decoration: underline}
a.labelOperationLink:visited {text-decoration: underline}
a.labelOperationLink:hover {text-decoration: underline}

a.newLabel:link {background-color: #ddffdd}
a.newLabel:active {background-color: #ddffdd}
a.newLabel:visited {background-color: #ddffdd}
a.newLabel:hover {background-color: #ddffdd}

ul.square {list-style-type: square}

.inline-control-link {
    background: #ffc;
    font-size: 9px;
    color: #666;
    padding: 2px;
    text-transform: uppercase;
    text-decoration: none;
}


.inline-control-link a:link {text-decoration: none}
.inline-control-link a:active {text-decoration: none}
.inline-control-link a:visited {text-decoration: none}
.inline-control-link a:hover {text-decoration: none}

.inline-control-link {
    background: #ffc;
    font-size: 9px;
    color: #666;
    padding: 2px;
    text-transform: uppercase;
    text-decoration: none;
    cursor: pointer;
}

div.auto_complete {
    width: 350px;
    background: #fff;
}
div.auto_complete ul {
    border: 1px solid #888;
    margin: 0;
    padding: 0;
    width: 100%;
    list-style-type: none;
}
div.auto_complete ul li {
    margin: 0;
    padding: 3px;
}
div.auto_complete ul li.selected {
    background-color: #ffb;
}
div.auto_complete ul strong.highlight {
    color: #800;
    margin: 0;
    padding: 0;
}

/******* Edit Page Styles *******/
.toogleFormDiv{
    border:1px solid #A7A6AA;
    background-color:white;
    padding:5px;
    margin-top: 5px;
}

.toogleInfoDiv{
    border:1px solid #A7A6AA;
    background-color:white;
    display:none;
    padding:5px;
    margin-top: 10px;
}

.inputSection{
    margin-bottom:20px;
}

#editBox{
   border:1px solid lightgray;
   background-color:#F0F0F0;
}

/******* Left Navigation Theme Styles ********/
.leftnav li a {
    text-decoration:none;
    color:white;
    margin:0px;
    display:block;
    padding:2px;
    padding-left:5px;
    background-color: #3c78b5;
    border-top:1px solid #3c78b5;
}

.leftnav li a:active {color:white;}
.leftnav li a:visited {color:white;}
.leftnav li a:hover {background-color: #003366; color:white;}

/* Added by Shaun during i18n */
.replaced
{
    background-color: #33CC66;
}

.topPadding
{
    margin-top: 20px;
}

/* new form style */
.form-block {
    padding: 6px;
}
.form-error-block {
    padding: 6px;
    background: #fcc;
    border-top: #f0f0f0 1px solid;
    border-bottom: #f0f0f0 1px solid;
    margin-bottom: 6px;
    padding: 0 12px 0 12px;
}
.form-element-large {
    font-size: 16px;
    font-weight: bold;
    font-family: Arial, sans-serif;
    color: #003366;
}

.form-element-small {
    font-size: 12px;
    font-weight: bold;
    font-family: Arial, sans-serif;
    color: #003366;
}

.form-header {
    background: lightyellow;
    border-top: #f0f0f0 1px solid;
    border-bottom: #f0f0f0 1px solid;
    margin-bottom: 6px;
    padding: 0 12px 0 12px;
}
.form-header p, .form-block p, .form-error-block p {
    line-height: normal;
    margin: 12px 0 12px 0;
}
.form-example {
    color: #888;
    font-size: 11px;
}
.form-divider {
    border-bottom: #ccc 1px solid;
    margin-bottom: 6px;
}
.form-buttons {
    margin-top: 6px;
    border-top: #ccc 1px solid;
    border-bottom: #ccc 1px solid;
    background: #f0f0f0;
    padding: 10px;
    text-align: center;
}
.form-buttons input {
    width: 100px;
}
.form-block .error {
    padding: 6px;
    margin-bottom: 6px;
}
    -->
    </style>
</head>
<body>

<div id="PageContent">
<table class="pagecontent" border="0" cellpadding="0" cellspacing="0" width="100%"><tr>
<td valign="top" class="pagebody">

    <div class="pageheader">
        <span class="pagetitle">
            Page Edited :
            <a href="http://cwiki.apache.org/confluence/display/GMOxDOC21">GMOxDOC21</a> :
            <a href="http://cwiki.apache.org/confluence/display/GMOxDOC21/Stateless+Session+Bean">Stateless Session Bean</a>
        </span>
    </div>

     <p>
        <a href="http://cwiki.apache.org/confluence/display/GMOxDOC21/Stateless+Session+Bean">Stateless Session Bean</a>
        has been edited by             <a href="http://cwiki.apache.org/confluence/display/~ashjain2@gmail.com">Ashish Jain</a>
            <span class="smallfont">(Feb 28, 2008)</span>.
     </p>
    
     <p>
                 <a href="http://cwiki.apache.org/confluence/pages/diffpagesbyversion.action?pageId=77630&originalVersion=15&revisedVersion=16">(View changes)</a>
     </p>

    <span class="label">Content:</span><br/>
    <div class="greybox wiki-content"><style type='text/css'>/*<![CDATA[*/
table.ScrollbarTable  {border: none;padding: 3px;width: 100%;padding: 3px;margin: 0px;background-color: #f0f0f0}
table.ScrollbarTable td.ScrollbarPrevIcon {text-align: center;width: 16px;border: none;}
table.ScrollbarTable td.ScrollbarPrevName {text-align: left;border: none;}
table.ScrollbarTable td.ScrollbarParent {text-align: center;border: none;}
table.ScrollbarTable td.ScrollbarNextName {text-align: right;border: none;}
table.ScrollbarTable td.ScrollbarNextIcon {text-align: center;width: 16px;border: none;}

/*]]>*/</style><div class="Scrollbar"><table class='ScrollbarTable'><tr><td class='ScrollbarPrevIcon'><a href="/confluence/display/GMOxDOC21/5-minute+Tutorial+on+Enterprise+Application+Development+with+Eclipse+and+Geronimo"><img border='0' align='middle' src='/confluence/images/icons/back_16.gif' width='16' height='16'></a></td><td width='33%' class='ScrollbarPrevName'><a href="/confluence/display/GMOxDOC21/5-minute+Tutorial+on+Enterprise+Application+Development+with+Eclipse+and+Geronimo">5-minute Tutorial on Enterprise Application Development with Eclipse and Geronimo</a>&nbsp;</td><td width='33%' class='ScrollbarParent'><sup><a href="/confluence/display/GMOxDOC21/EJB+applications"><img border='0' align='middle' src='/confluence/images/icons/up_16.gif' width='8' height='8'></a></sup><a href="/confluence/display/GMOxDOC21/EJB+applications">EJB applications</a></td><td width='33%' class='ScrollbarNextName'>&nbsp;</td></tr></table></div>

<p>This application will take you through the basics of Stateless Session Bean. This application will demonstrate how annotations like @Stateless, @Resource, @PostConstruct, @PreDestroy are used in an EJB3 application.</p>

<p>The application walks through a authentication page, where the user has to authenticate to move to the home page of Apache Geronimo. In case a new user, the user has to go through the registration process. Later the user will be directed to login page again once the registration is done. In the login page the bean class will check for the  username and password entered by the user against a database.</p>

<p>To run this tutorial, as a minimum you will be required to have installed the following prerequisite software.</p>

<ul>
	<li>Sun JDK 5.0+ (J2SE 1.5)</li>
	<li>Eclipse 3.3.1.1 (Eclipse Classic package of Europa distribution), which is platform specific</li>
	<li>Web Tools Platform (WTP) 2.0.1</li>
	<li>Data Tools Platform (DTP) 1.5.1</li>
	<li>Eclipse Modeling Framework (EMF) 2.3.1</li>
	<li>Graphical Editing Framework (GEF) 3.3.1</li>
</ul>


<p>Details on installing eclipse are provided in the <a href="/confluence/display/GMOxDOC21/Development+environment" title="Development environment">Development environment</a> section. <br/>
This tutorial is organized in the following sections:</p>
<div>
<ul>
  <li><a href='#StatelessSessionBean-CreatingaStatelessSessionEJBproject'>Creating a Stateless Session EJB project</a></li>
  <li><a href='#StatelessSessionBean-CreatingadatabaseusingAdministrativeConsole'>Creating a database using Administrative Console</a></li>
  <li><a href='#StatelessSessionBean-CreatingadatasourceusingAdministrativeConsole'>Creating a datasource using Administrative Console</a></li>
  <li><a href='#StatelessSessionBean-Creatingapplicationclient'>Creating application client</a></li>
  <li><a href='#StatelessSessionBean-Fewmoreconfigurations'>Few more configurations</a></li>
  <li><a href='#StatelessSessionBean-DeployandRun'>Deploy and Run</a></li>
</ul></div>

<h1><a name="StatelessSessionBean-CreatingaStatelessSessionEJBproject"></a>Creating a Stateless Session EJB project</h1>
<ol>
	<li>Right Click under the Project Explorer and Create a EJB project as shown.<br clear="all" /> <br clear="all" /> <br clear="all" />
<img src="/confluence/download/attachments/77630/createProject1.png" align="absmiddle" border="0" /><br clear="all" /> <br clear="all" /> <br clear="all" /></li>
	<li>On the next screen give the project name as StatelessSessionEJB.<br clear="all" /> <br clear="all" /> <br clear="all" />
<img src="/confluence/download/attachments/77630/createProject2.png" align="absmiddle" border="0" /><br clear="all" /> <br clear="all" /> <br clear="all" /></li>
	<li>Right Click on ejbModule and create a new Interface RegisterBeanRemote<br clear="all" /> <br clear="all" /> <br clear="all" />
<img src="/confluence/download/attachments/77630/createInterface.png" align="absmiddle" border="0" /><br clear="all" /> <br clear="all" /> <br clear="all" /></li>
	<li>On the New Java Interface window give the package name as statelessejb and Interface name as RegisterBeanRemote<br clear="all" /> <br clear="all" /> <br clear="all" />
<img src="/confluence/download/attachments/77630/createInterface2.png" align="absmiddle" border="0" /><br clear="all" /> <br clear="all" /> <br clear="all" /></li>
	<li>Populate the RegisterBeanRemote interface with the following code.
<div class="code" style="border-style: solid; "><div class="codeHeader" style="border-bottom-style: solid; "><b>RegisterBeanRemote.java</b></div><div class="codeContent">
<pre class="code-java"><span class="code-keyword">package</span> statelessejb;
<span class="code-keyword">import</span> javax.ejb.Remote;
@Remote
<span class="code-keyword">public</span> <span class="code-keyword">interface</span> RegisterBeanRemote 
{
<span class="code-keyword">public</span> void register(<span class="code-object">String</span> FirstName, <span class="code-object">String</span> LastName, <span class="code-object">String</span> Sex, <span class="code-object">String</span> UserName, <span class="code-object">String</span> Password);
<span class="code-keyword">public</span> <span class="code-object">boolean</span> verify(<span class="code-object">String</span> username, <span class="code-object">String</span> password);
}</pre>
</div></div>
<p>In the above code @Remote is a metadata annotation which marks the interface to be a Remote Interface. Metadata annotations are used to declare a class, interface or functions to have particular attributes. In this case the interface is marked to be a Remote Interface.</p></li>
	<li>Right Click on StatelessSessionEJB project and create a new class RegisterBean as shown in the figure<br clear="all" /> <br clear="all" /> <br clear="all" />
<img src="/confluence/download/attachments/77630/createClass.png" align="absmiddle" border="0" /><br clear="all" /> <br clear="all" /> <br clear="all" /></li>
	<li>Populate the class RegisterBean with the following data
<div class="code" style="border-style: solid; "><div class="codeHeader" style="border-bottom-style: solid; "><b>RegisterBean.java</b></div><div class="codeContent">
<pre class="code-java"><span class="code-keyword">package</span> statelessejb;
<span class="code-keyword">import</span> java.sql.Connection;
<span class="code-keyword">import</span> java.sql.PreparedStatement;
<span class="code-keyword">import</span> java.sql.ResultSet;
<span class="code-keyword">import</span> javax.annotation.PostConstruct;
<span class="code-keyword">import</span> javax.annotation.PreDestroy;
<span class="code-keyword">import</span> javax.annotation.Resource;
<span class="code-keyword">import</span> javax.ejb.Stateless;
<span class="code-keyword">import</span> javax.sql.DataSource;
@Stateless
<span class="code-keyword">public</span> class RegisterBean <span class="code-keyword">implements</span> RegisterBeanRemote{
	@Resource(name=<span class="code-quote">"jdbc/userds"</span>)
	<span class="code-keyword">private</span> DataSource dbsource;
	<span class="code-keyword">private</span> Connection dbconnect;
	@PostConstruct
	<span class="code-keyword">public</span> void initialize()
	{
		<span class="code-keyword">try</span>{
			dbconnect= dbsource.getConnection();
		}
		<span class="code-keyword">catch</span>(Exception e)
		{
			e.printStackTrace();
		}
	}
	<span class="code-keyword">public</span> void register(<span class="code-object">String</span> FirstName, <span class="code-object">String</span> LastName, <span class="code-object">String</span> Sex, <span class="code-object">String</span> UserName, <span class="code-object">String</span> Password)
	{
		<span class="code-keyword">try</span>
		{
			<span class="code-object">String</span> insert=<span class="code-quote">"INSERT INTO USERINFO ("</span> + <span class="code-quote">"FIRSTNAME,"</span> + <span class="code-quote">"LASTNAME,"</span> + <span class="code-quote">"SEX,"</span> + <span class="code-quote">"USERNAME,"</span> + <span class="code-quote">"PASSWORD)"</span> + <span class="code-quote">" VALUES(?,?,?,?,?)"</span>;
			PreparedStatement ps=dbconnect.prepareStatement(insert);
			ps.setString(1, FirstName);
			ps.setString(2, LastName);
			ps.setString(3, Sex);
			ps.setString(4, UserName);
			ps.setString(5, Password);
			<span class="code-object">int</span> rs =ps.executeUpdate();
		}
		<span class="code-keyword">catch</span>(Exception e)
		{
			e.printStackTrace();
		}
	}
	<span class="code-keyword">public</span> <span class="code-object">boolean</span> verify(<span class="code-object">String</span> username, <span class="code-object">String</span> password)
	{
		<span class="code-object">boolean</span> ret=<span class="code-keyword">false</span>;
		<span class="code-object">String</span> select=<span class="code-quote">"SELECT * FROM USERINFO"</span>;
		<span class="code-keyword">try</span>{
		PreparedStatement ps=dbconnect.prepareStatement(select);
		ResultSet rs= ps.executeQuery();
		<span class="code-keyword">while</span>(rs.next())
		{
			<span class="code-object">String</span> str=rs.getString(<span class="code-quote">"USERNAME"</span>);
			<span class="code-object">String</span> str1=rs.getString(<span class="code-quote">"PASSWORD"</span>);
			<span class="code-keyword">if</span> (str.compareTo(username)==0)
			{
			<span class="code-keyword">if</span>(str1.compareTo(password)==0)
				ret=<span class="code-keyword">true</span>;
			<span class="code-keyword">else</span>
			    ret=<span class="code-keyword">false</span>;
			}
			<span class="code-keyword">else</span>
				ret=<span class="code-keyword">false</span>;
		}
		}
		<span class="code-keyword">catch</span>(Exception e)
		{
			e.printStackTrace();
		}
		<span class="code-keyword">return</span> ret;	
	}
	@PreDestroy
	<span class="code-keyword">public</span> void destroy(){
		<span class="code-keyword">try</span>
		{
		dbconnect.close();
		dbconnect=<span class="code-keyword">null</span>;
		}
		<span class="code-keyword">catch</span>(Exception e)
		{
			e.printStackTrace();
		}

	}
}</pre>
</div></div></li>
	<li>Lets try to understand this code
	<ol>
		<li>The very first line has an annotation <b>@Stateless</b> which declares the POJO to be a Stateless Session Bean. This annotation tells the container that the class is a Stateless Session Bean class. The container now automatically takes care of the various services like pooling, thread safety, transactions etc.</li>
		<li>The second line suggests that the Bean Class implements the remote interface. Every EJB application has to have atleast one interface. In this case we are having a remote interface.</li>
		<li>Next we have the <b>@Resource(name="jdbc/userds")</b> annotation which suggests <b>jdbc/userds</b> datasource being injected on to EJB. This is called dependency injection. The main idea behind dependency injection is that a component should call the resource through interfaces. This in turn will create a loosely coupled architecture between component and resource. Dependency injection is actually JNDI lookup in reverse order. In JNDI lookup the Bean looks up the resources itself and that is why it has to be hardcoded in the bean code itself whereas in Dependency Injection the Container reads the Bean and finds out what resources are required by the bean class. Later it injects the resources at runtime. How to create <b>jdbc/userds</b>  datasource is discussed in the next section.</li>
		<li>Next interesting part is the <b>@PostConstruct</b> annotation. This annotation is used for lifecycle callbacks. A lifecycle callback method is used by container to inform the bean class of the state transitions in the bean lifecycle. @PostConstruct annotation is used once a bean instance is created. In our example we have our bean instance created and Dependency injected. Later @PostConstruct callback is invoked and a connection to the datasource is established.</li>
		<li>Next we have the <b>register</b> function which is used to populate the database <b>USERINFO</b> with user information. This function uses PreparedStatement to query the database.</li>
		<li>Next is the <b>verify</b> function which is used for the authentication of user credentials.</li>
		<li><b>@PreDestroy</b> is again a lifecycle callback which suggests to release the resources before the bean is destroyed.<br clear="all" /> <br clear="all" />
<table cellpadding='5' width='85%' cellspacing='8px' class='warningMacro' border="0" align='center'><colgroup><col width='24'><col></colgroup><tr><td valign='top'><img src="/confluence/images/icons/emoticons/forbidden.gif" width="16" height="16" align="absmiddle" alt="" border="0"></td><td><b class="strong">Warning</b><br />
<p>Due to some limitations in Geronimo Eclipse Plugin the generated deployment plan(openejb-jar.xml) does not have the correct namespace. Replace the existing namespace as shown in the figure with the following<br/>
&lt;openejb-jar xmlns="http://www.openejb.org/xml/ns/openejb-jar-2.2" xmlns:nam="http://geronimo.apache.org/xml/ns/naming-1.2" xmlns:pkgen="http://www.openejb.org/xml/ns/pkgen-2.0" xmlns:sec="http://geronimo.apache.org/xml/ns/security-1.2" xmlns:sys="http://geronimo.apache.org/xml/ns/deployment-1.2"&gt;</p></td></tr></table>
<p><img src="/confluence/download/attachments/77630/ejbjaredit.png" align="absmiddle" border="0" /><br clear="all" /> <br clear="all" /> <br clear="all" />
This completes the development of EJB project.</p></li>
	</ol>
	</li>
</ol>


<h1><a name="StatelessSessionBean-CreatingadatabaseusingAdministrativeConsole"></a>Creating a database using Administrative Console</h1>
<ol>
	<li>Start the server and Launch the Administrative Console using the URL <span class="nobr"><a href="http://localhost:8080/console" title="Visit page outside Confluence" rel="nofollow">http://localhost:8080/console<sup><img class="rendericon" src="/confluence/images/icons/linkext7.gif" height="7" width="7" align="absmiddle" alt="" border="0"/></sup></a></span>.</li>
	<li>Enter default username and password.</li>
	<li>In the welcome page, Under Embedded DB, Select DB Manager.<br clear="all" /> <br clear="all" /> <br clear="all" />
<img src="/confluence/download/attachments/77630/createDB1.png" align="absmiddle" border="0" /><br clear="all" /> <br clear="all" /> <br clear="all" /></li>
	<li>On the next page create a database <b>userdbs</b> and Select create.<br clear="all" /> <br clear="all" /> <br clear="all" />
<img src="/confluence/download/attachments/77630/createDB2.png" align="absmiddle" border="0" /><br clear="all" /> <br clear="all" /> <br clear="all" /></li>
	<li>Once done you can see the userdbs database listed in DB Viewer portlet under Databases. This confirms that the database has been successfully created.<br clear="all" /> <br clear="all" /> <br clear="all" />
<img src="/confluence/download/attachments/77630/createDB3.png" align="absmiddle" border="0" /><br clear="all" /> <br clear="all" /> <br clear="all" /></li>
	<li>As shown in the figure under <b>Use DB</b>, select userdbs from the dropdown box.<br clear="all" /> <br clear="all" /> <br clear="all" />
<img src="/confluence/download/attachments/77630/createDB4.png" align="absmiddle" border="0" /><br clear="all" /> <br clear="all" /> <br clear="all" /></li>
	<li>Run the query as shown in the figure. This query will create table USERINFO with the columns FIRSTNAME, LASTNAME, SEX, USERNAME, PASSWORD.<br clear="all" /> <br clear="all" /> <br clear="all" />
<img src="/confluence/download/attachments/77630/createDB5.png" align="absmiddle" border="0" /><br clear="all" /> <br clear="all" /> <br clear="all" />
<div class="code" style="border-style: solid; "><div class="codeHeader" style="border-bottom-style: solid; "><b>CreateTable.sql</b></div><div class="codeContent">
<pre class="code-java">CREATE TABLE USERINFO
(
FIRSTNAME <span class="code-object">char</span>(20),
LASTNAME  <span class="code-object">char</span>(20),
SEX       <span class="code-object">char</span>(7),
USERNAME  <span class="code-object">char</span>(20),
PASSWORD  <span class="code-object">char</span>(20)
)</pre>
</div></div></li>
	<li>To verify the table creation is successful. Under <b>View Tables</b> for <b>userdbs</b> Database, Select Application.<br clear="all" /> <br clear="all" /> <br clear="all" />
<img src="/confluence/download/attachments/77630/createDB6.png" align="absmiddle" border="0" /><br clear="all" /> <br clear="all" /> <br clear="all" /></li>
	<li>The next window will show the table USERINFO associated with userdbs Database.<br clear="all" /> <br clear="all" /> <br clear="all" />
<img src="/confluence/download/attachments/77630/createDB7.png" align="absmiddle" border="0" /><br clear="all" /> <br clear="all" /> <br clear="all" /></li>
</ol>


<h1><a name="StatelessSessionBean-CreatingadatasourceusingAdministrativeConsole"></a>Creating a datasource using Administrative Console</h1>
<ol>
	<li>Start the server and Launch the Administrative Console using the URL <span class="nobr"><a href="http://localhost:8080/console" title="Visit page outside Confluence" rel="nofollow">http://localhost:8080/console<sup><img class="rendericon" src="/confluence/images/icons/linkext7.gif" height="7" width="7" align="absmiddle" alt="" border="0"/></sup></a></span>.</li>
	<li>Enter default username and password.</li>
	<li>Once in the welcome page. In console navigation, Under Services, Select Database Pools.<br clear="all" /> <br clear="all" /> <br clear="all" />
<img src="/confluence/download/attachments/77630/createDS.png" align="absmiddle" border="0" /><br clear="all" /> <br clear="all" /> <br clear="all" /></li>
	<li>On the next screen, Create a new database pool using Geronimo database pool wizard.<br clear="all" /> <br clear="all" /> <br clear="all" />
<img src="/confluence/download/attachments/77630/createDS2.png" align="absmiddle" border="0" /><br clear="all" /> <br clear="all" /> <br clear="all" /></li>
	<li>On the next screen give the name as suggested in the figure. This will initiate the process to create a Derby Embedded XA datasource.<br clear="all" /> <br clear="all" /> <br clear="all" />
<img src="/confluence/download/attachments/77630/createDS3.png" align="absmiddle" border="0" /><br clear="all" /> <br clear="all" /> <br clear="all" /></li>
	<li>Select the Driver jar and give the database name as userdbs(Remember this is the database we created in the previous step). Rest all fields can be set to default.<br clear="all" /> <br clear="all" /> <br clear="all" />
<img src="/confluence/download/attachments/77630/createDS4.png" align="absmiddle" border="0" /><br clear="all" /> <br clear="all" /> <br clear="all" /></li>
	<li>Select <b>Deploy</b> to deploy the connector plan.<br clear="all" /> <br clear="all" /> <br clear="all" />
<img src="/confluence/download/attachments/77630/createDS5.png" align="absmiddle" border="0" /><br clear="all" /> <br clear="all" /> <br clear="all" /></li>
	<li>Once done you can see the Database Pool <b>jdbc/userds</b> listed in the available database pools.<br clear="all" /> <br clear="all" /> <br clear="all" />
<img src="/confluence/download/attachments/77630/createDS6.png" align="absmiddle" border="0" /><br clear="all" /> <br clear="all" /> <br clear="all" /></li>
</ol>


<h1><a name="StatelessSessionBean-Creatingapplicationclient"></a>Creating application client</h1>
<ol>
	<li>Create a new dynamic Web Project with the name Application Client.</li>
	<li>Right click on WEB-INF and create the following jsp
<div class="code" style="border-style: solid; "><div class="codeHeader" style="border-bottom-style: solid; "><b>login.jsp</b></div><div class="codeContent">
<pre class="code-java">&lt;%@ page language=<span class="code-quote">"java"</span> contentType=<span class="code-quote">"text/html; charset=ISO-8859-1"</span>
    pageEncoding=<span class="code-quote">"ISO-8859-1"</span>%&gt;
&lt;!DOCTYPE html PUBLIC <span class="code-quote">"-<span class="code-comment">//W3C//DTD HTML 4.01 Transitional//EN"</span> <span class="code-quote">"http://www.w3.org/TR/html4/loose.dtd"</span>&gt;
</span>&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv=<span class="code-quote">"Content-Type"</span> content=<span class="code-quote">"text/html; charset=ISO-8859-1"</span>&gt;
&lt;title&gt;Welcome to Apache Geronimo&lt;/title&gt;
&lt;/head&gt;
&lt;body bgcolor=<span class="code-quote">"white"</span>&gt;
&lt;form method=<span class="code-quote">"post"</span> action=<span class="code-quote">"passCredentials.jsp"</span>&gt;
&lt;h2 align=<span class="code-quote">"center"</span>&gt;&lt;font color=<span class="code-quote">"blue"</span>&gt;Welcome to Apache Geronimo&lt;/font&gt;&lt;/h2&gt;
&lt;h2 align=<span class="code-quote">"center"</span>&gt;&lt;font color=<span class="code-quote">"blue"</span>&gt;Enter your credentials&lt;/font&gt;&lt;/h2&gt;
Enter your Username
&lt;input type=<span class="code-quote">"text"</span> name=<span class="code-quote">"username"</span> size=20&gt;&lt;br&gt;
Enter your Password
&lt;input type=<span class="code-quote">"password"</span> name=<span class="code-quote">"password"</span> size=20&gt;&lt;br&gt;
&lt;input type=<span class="code-quote">"submit"</span> value=<span class="code-quote">"Login"</span>&gt;
&lt;a href=<span class="code-quote">"http:<span class="code-comment">//localhost:8080/ApplicationClient/register.jsp"</span>&gt;NewUser&lt;/a&gt;
</span>&lt;/form&gt;
&lt;/body&gt;
&lt;/html&gt;</pre>
</div></div>
<div class="code" style="border-style: solid; "><div class="codeHeader" style="border-bottom-style: solid; "><b>passCredentials.jsp</b></div><div class="codeContent">
<pre class="code-java">&lt;%@ page <span class="code-keyword">import</span>=<span class="code-quote">"java.util.Properties,javax.naming.Context,javax.naming.InitialContext,statelessejb.RegisterBeanRemote"</span> %&gt;
&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv=<span class="code-quote">"Content-Type"</span> content=<span class="code-quote">"text/html; charset=ISO-8859-1"</span>&gt;
&lt;title&gt;Insert title here&lt;/title&gt;
&lt;/head&gt;
&lt;body bgcolor=<span class="code-quote">"white"</span>&gt;
&lt;%!<span class="code-object">boolean</span> i; %&gt;
&lt;%
Properties prop=<span class="code-keyword">new</span> Properties();
prop.put(Context.INITIAL_CONTEXT_FACTORY, <span class="code-quote">"org.apache.openejb.client.RemoteInitialContextFactory"</span>);
	prop.put(<span class="code-quote">"java.naming.provider.url"</span>, <span class="code-quote">"ejbd:<span class="code-comment">//localhost:4201"</span>);
</span>Context context = <span class="code-keyword">new</span> InitialContext(prop);
RegisterBeanRemote myejb=(RegisterBeanRemote)context.lookup(<span class="code-quote">"RegisterBeanRemote"</span>);
<span class="code-object">String</span> s= request.getParameter(<span class="code-quote">"username"</span>);
<span class="code-object">String</span> s1= request.getParameter(<span class="code-quote">"password"</span>);
i=myejb.verify(s,s1);
%&gt;
&lt;% 
	<span class="code-keyword">if</span> (i==<span class="code-keyword">true</span>){ 
%&gt;
&lt;jsp:forward page=<span class="code-quote">"/resources.jsp"</span>&gt;&lt;/jsp:forward&gt;
&lt;% 
	} <span class="code-keyword">else</span> {
%&gt;
	&lt;jsp:forward page=<span class="code-quote">"/login.jsp"</span>&gt;&lt;/jsp:forward&gt;
&lt;% 
}
%&gt;
&lt;/body&gt;
&lt;/html&gt;</pre>
</div></div>
<div class="code" style="border-style: solid; "><div class="codeHeader" style="border-bottom-style: solid; "><b>resources.jsp</b></div><div class="codeContent">
<pre class="code-java">&lt;%@ page language=<span class="code-quote">"java"</span> contentType=<span class="code-quote">"text/html; charset=ISO-8859-1"</span>
    pageEncoding=<span class="code-quote">"ISO-8859-1"</span>%&gt;
&lt;!DOCTYPE html PUBLIC <span class="code-quote">"-<span class="code-comment">//W3C//DTD HTML 4.01 Transitional//EN"</span> <span class="code-quote">"http://www.w3.org/TR/html4/loose.dtd"</span>&gt;
</span>&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv=<span class="code-quote">"Content-Type"</span> content=<span class="code-quote">"text/html; charset=ISO-8859-1"</span>&gt;
&lt;title&gt;Welcome to Apache Geronimo&lt;/title&gt;
&lt;/head&gt;
&lt;body bgcolor=<span class="code-quote">"white"</span>&gt;
&lt;h3&gt;&lt;font color=<span class="code-quote">"blue"</span>&gt;Welcome to Apache Geronimo Resource Center&lt;/font&gt;&lt;/h3&gt; 
Apache Geronimo Home Page
&lt;a href=<span class="code-quote">"http:<span class="code-comment">//geronimo.apache.org"</span>&gt;Apache Geronimo Home page&lt;/a&gt;&lt;br&gt;
</span>Join our mailing list
&lt;a href=<span class="code-quote">"http:<span class="code-comment">//geronimo.apache.org/mailing-lists.html"</span>&gt;Apache Geronimo Mailing List&lt;/a&gt;&lt;br&gt;
</span>Come and Contribute to Apache Geronimo V2.1 Documentation
&lt;a href=<span class="code-quote">"http:<span class="code-comment">//cwiki.apache.org/GMOxDOC21/"</span>&gt;Apache Geronimo V2.1 Documentation&lt;/a&gt;
</span>&lt;/body&gt;
&lt;/html&gt;</pre>
</div></div>
<div class="code" style="border-style: solid; "><div class="codeHeader" style="border-bottom-style: solid; "><b>register.jsp</b></div><div class="codeContent">
<pre class="code-java">&lt;%@ page language=<span class="code-quote">"java"</span> contentType=<span class="code-quote">"text/html; charset=ISO-8859-1"</span>
    pageEncoding=<span class="code-quote">"ISO-8859-1"</span>%&gt;
&lt;!DOCTYPE html PUBLIC <span class="code-quote">"-<span class="code-comment">//W3C//DTD HTML 4.01 Transitional//EN"</span> <span class="code-quote">"http://www.w3.org/TR/html4/loose.dtd"</span>&gt;
</span>&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv=<span class="code-quote">"Content-Type"</span> content=<span class="code-quote">"text/html; charset=ISO-8859-1"</span>&gt;
&lt;title&gt;Welcome to Apache Geronimo&lt;/title&gt;
&lt;/head&gt;
&lt;body bgcolor=<span class="code-quote">"white"</span>&gt;
&lt;script type=<span class="code-quote">"text/javascript"</span>&gt;
function valForm()
{
	<span class="code-keyword">if</span> (<span class="code-keyword">this</span>.document.form1.username.value==<span class="code-quote">"" || <span class="code-keyword">this</span>.document.form1.username.value=="</span>")
	{
		alert(<span class="code-quote">"You cannot leave the field blank"</span>);
		<span class="code-keyword">this</span>.document.form1.firstname.focus();
		<span class="code-keyword">return</span> <span class="code-keyword">false</span>;
	}
	<span class="code-keyword">else</span>
	{
		<span class="code-keyword">return</span> <span class="code-keyword">true</span>;
	}
}
&lt;/script&gt;
&lt;h2 align=<span class="code-quote">"center"</span>&gt;&lt;font color=<span class="code-quote">"blue"</span>&gt;Welcome to Apache Geronimo User Registration&lt;/font&gt;&lt;/h2&gt;
&lt;form method=<span class="code-quote">"post"</span> name=<span class="code-quote">"form1"</span> action=<span class="code-quote">"passVariables.jsp"</span> onSubmit=<span class="code-quote">" <span class="code-keyword">return</span> valForm();"</span>&gt;
FirstName
&lt;INPUT type=<span class="code-quote">"text"</span> name=<span class="code-quote">"firstname"</span> SIZE=20&gt;&lt;br&gt;
LastName
&lt;INPUT type=<span class="code-quote">"text"</span> name=<span class="code-quote">"lastname"</span> SIZE=20 &gt;&lt;br&gt;
Sex&lt;br&gt;
&lt;input type=<span class="code-quote">"radio"</span> name=<span class="code-quote">"sex"</span> value=<span class="code-quote">"male"</span>&gt; Male
&lt;br&gt;
&lt;input type=<span class="code-quote">"radio"</span> name=<span class="code-quote">"sex"</span> value=<span class="code-quote">"female"</span>&gt; Female
&lt;br&gt;
Select a UserName&lt;br&gt;
&lt;input type=<span class="code-quote">"text"</span> name=<span class="code-quote">"username"</span> size=20&gt;&lt;br&gt;
Select a Password&lt;br&gt;
&lt;input type=<span class="code-quote">"password"</span> name=<span class="code-quote">"password"</span>  size=20&gt;&lt;br&gt;
&lt;br&gt;
&lt;input type=<span class="code-quote">"submit"</span> value=<span class="code-quote">"Submit"</span>&gt;
&lt;/form&gt;
&lt;/body&gt;
&lt;/html&gt;</pre>
</div></div>
<div class="code" style="border-style: solid; "><div class="codeHeader" style="border-bottom-style: solid; "><b>passVariables.jsp</b></div><div class="codeContent">
<pre class="code-java">&lt;%@ page <span class="code-keyword">import</span>=<span class="code-quote">"java.util.Properties,javax.naming.Context,javax.naming.InitialContext,statelessejb.RegisterBeanRemote"</span> %&gt;

&lt;html&gt;
&lt;head&gt;

&lt;meta http-equiv=<span class="code-quote">"Refresh"</span> content=<span class="code-quote">"5;URL=http:<span class="code-comment">//localhost:8080/ApplicationClient/login.jsp"</span>&gt;
</span>&lt;title&gt;Welcome to Apache Geronimo&lt;/title&gt;
&lt;/head&gt;

&lt;%
Properties prop=<span class="code-keyword">new</span> Properties();
prop.put(Context.INITIAL_CONTEXT_FACTORY, <span class="code-quote">"org.apache.openejb.client.RemoteInitialContextFactory"</span>);
	prop.put(<span class="code-quote">"java.naming.provider.url"</span>, <span class="code-quote">"ejbd:<span class="code-comment">//localhost:4201"</span>);
</span>Context context = <span class="code-keyword">new</span> InitialContext(prop);
RegisterBeanRemote myejb=(RegisterBeanRemote)context.lookup(<span class="code-quote">"RegisterBeanRemote"</span>);
<span class="code-object">String</span> s= request.getParameter(<span class="code-quote">"firstname"</span>);
<span class="code-object">String</span> s1= request.getParameter(<span class="code-quote">"lastname"</span>);
<span class="code-object">String</span> s2= request.getParameter(<span class="code-quote">"sex"</span>);
<span class="code-object">String</span> s3= request.getParameter(<span class="code-quote">"username"</span>);
<span class="code-object">String</span> s4= request.getParameter(<span class="code-quote">"password"</span>);
myejb.register(s,s1,s2,s3,s4);
%&gt;

&lt;h3 align=<span class="code-quote">"center"</span>&gt;&lt;font color=<span class="code-quote">"blue"</span>&gt;Thank you <span class="code-keyword">for</span> registering with Apache Geronimo&lt;/font&gt;&lt;/h3&gt;
&lt;h3 align=<span class="code-quote">"center"</span>&gt;&lt;font color=<span class="code-quote">"blue"</span>&gt;Redirecting to Login Page&lt;/font&gt;&lt;/h3&gt;
&lt;/html&gt;</pre>
</div></div>
<div class="code" style="border-style: solid; "><div class="codeHeader" style="border-bottom-style: solid; "><b>index.jsp</b></div><div class="codeContent">
<pre class="code-java">&lt;%@ page language=<span class="code-quote">"java"</span> contentType=<span class="code-quote">"text/html; charset=ISO-8859-1"</span>
    pageEncoding=<span class="code-quote">"ISO-8859-1"</span>%&gt;
&lt;!DOCTYPE html PUBLIC <span class="code-quote">"-<span class="code-comment">//W3C//DTD HTML 4.01 Transitional//EN"</span> <span class="code-quote">"http://www.w3.org/TR/html4/loose.dtd"</span>&gt;
</span>&lt;html&gt;
&lt;body&gt;
&lt;jsp:forward page=<span class="code-quote">"/login.jsp"</span> /&gt;
&lt;/body&gt;
&lt;/html&gt;</pre>
</div></div>
<h1><a name="StatelessSessionBean-Fewmoreconfigurations"></a>Few more configurations</h1></li>
</ol>


<ol>
	<li>In the EJB Project. Under META-INF, Edit openejb-jar.xml and add the following
<div class="code" style="border-style: solid; "><div class="codeHeader" style="border-bottom-style: solid; "><b>datasource dependency</b></div><div class="codeContent">
<pre class="code-java">&lt;sys:dependencies&gt;
            &lt;sys:dependency&gt;
                &lt;sys:groupId&gt;console.dbpool&lt;/sys:groupId&gt;
                &lt;sys:artifactId&gt;jdbc%2Fuserds&lt;/sys:artifactId&gt;
            &lt;/sys:dependency&gt;        
&lt;/sys:dependencies&gt;</pre>
</div></div>
<table cellpadding='5' width='85%' cellspacing='8px' class='infoMacro' border="0" align='center'><colgroup><col width='24'><col></colgroup><tr><td valign='top'><img src="/confluence/images/icons/emoticons/information.gif" width="16" height="16" align="absmiddle" alt="" border="0"></td><td><b class="strong">Where did the above dependencies come from??</b><br />
<p>To make the datasource visible to EJB we need to add a dependency to the EJB deployment plan that is openejb-jar.xml. The above element can be obtained automatically from Geronimo Database Pool wizard. Select usage against the database pool jdbc/userds</p></td></tr></table></li>
	<li>In the WEB Project. Under WEB-INF, Edit geronimo-web.xml and add the following
<div class="code" style="border-style: solid; "><div class="codeHeader" style="border-bottom-style: solid; "><b>EJB dependency</b></div><div class="codeContent">
<pre class="code-java">&lt;sys:dependencies&gt;
       &lt;sys:dependency&gt;
            &lt;sys:groupId&gt;<span class="code-keyword">default</span>&lt;/sys:groupId&gt;
      		&lt;sys:artifactId&gt;StatelessSessionEJB&lt;/sys:artifactId&gt;
      		&lt;sys:version&gt;1.0&lt;/sys:version&gt;
      		&lt;sys:type&gt;car&lt;/sys:type&gt;
       &lt;/sys:dependency&gt;        
&lt;/sys:dependencies&gt;</pre>
</div></div></li>
</ol>


<h1><a name="StatelessSessionBean-DeployandRun"></a>Deploy and Run</h1>
<table cellpadding='5' width='85%' cellspacing='8px' class='warningMacro' border="0" align='center'><colgroup><col width='24'><col></colgroup><tr><td valign='top'><img src="/confluence/images/icons/emoticons/forbidden.gif" width="16" height="16" align="absmiddle" alt="" border="0"></td><td><b class="strong">warning</b><br />
<p>Due to limitation with Geronimo Eclipse Plugin, you will have to export the Stateless Session EJB project and Web Application project as a jar and war respectively.</p></td></tr></table>
<ol>
	<li>Export the projects to your local disk as StatelessSessionEJB.jar and ApplicationClient.war.</li>
	<li>Start the server and launch the Administrative console using <span class="nobr"><a href="http://localhost:8080/console/" title="Visit page outside Confluence" rel="nofollow">http://localhost:8080/console/<sup><img class="rendericon" src="/confluence/images/icons/linkext7.gif" height="7" width="7" align="absmiddle" alt="" border="0"/></sup></a></span>. Enter default username and password.</li>
	<li>In the welcome page, under Applications. Select Deploy New.<br clear="all" /> <br clear="all" /> <br clear="all" />
<img src="/confluence/download/attachments/77630/run0.png" align="absmiddle" border="0" /><br clear="all" /> <br clear="all" /> <br clear="all" /></li>
	<li>Browse and Select StatelessSessionEJB.jar. Once done Select Install. This will deploy the EJB application on to server.</li>
	<li>Browse and Select ApplicationClient.war. Once done select Install. This will deploy the Web application on to server.</li>
	<li>Under Applications, Select Web App WARs and Run ApplicationClient project as show in the figure.<br clear="all" /> <br clear="all" /> <br clear="all" />
<img src="/confluence/download/attachments/77630/run.png" align="absmiddle" border="0" /><br clear="all" /> <br clear="all" /> <br clear="all" /></li>
	<li>Once done a welcome page will be launched.<br clear="all" /> <br clear="all" /> <br clear="all" />
<img src="/confluence/download/attachments/77630/run2.png" align="absmiddle" border="0" /><br clear="all" /> <br clear="all" /> <br clear="all" /></li>
	<li>If you are New User. Select New User as shown in the figure<br clear="all" /> <br clear="all" /> <br clear="all" />
<img src="/confluence/download/attachments/77630/run9.png" align="absmiddle" border="0" /><br clear="all" /> <br clear="all" /> <br clear="all" /></li>
	<li>This will display a new registration form. If you leave the mandatory username or password filed empty. You will get the following error message.<br clear="all" /> <br clear="all" /> <br clear="all" />
<img src="/confluence/download/attachments/77630/run3.png" align="absmiddle" border="0" /><br clear="all" /> <br clear="all" /> <br clear="all" /></li>
	<li>Fill the fields as shown in the figure and Select Submit.<br clear="all" /> <br clear="all" /> <br clear="all" />
<img src="/confluence/download/attachments/77630/run4.png" align="absmiddle" border="0" /><br clear="all" /> <br clear="all" /> <br clear="all" /></li>
	<li>Once done a page will be displayed from where you will be automatically redirected to login page to relogin.<br clear="all" /> <br clear="all" /> <br clear="all" />
<img src="/confluence/download/attachments/77630/run5.png" align="absmiddle" border="0" /><br clear="all" /> <br clear="all" /> <br clear="all" /></li>
	<li>Enter the username and password as chosen by you during registration and select Login.<br clear="all" /> <br clear="all" /> <br clear="all" />
<img src="/confluence/download/attachments/77630/run6.png" align="absmiddle" border="0" /><br clear="all" /> <br clear="all" /> <br clear="all" /></li>
	<li>The next page is the Apache Geronimo Resource Center.<br clear="all" /> <br clear="all" /> <br clear="all" />
<img src="/confluence/download/attachments/77630/run7.png" align="absmiddle" border="0" /><br clear="all" /> <br clear="all" /> <br clear="all" /></li>
	<li>In case you give wrong username and password combination you will be redirected to login page.<br clear="all" /> <br clear="all" /> <br clear="all" />
<img src="/confluence/download/attachments/77630/run8.png" align="absmiddle" border="0" /><br clear="all" /> <br clear="all" /> <br clear="all" /></li>
</ol>
</div>


</td></tr></table></div>
<p>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
    <tr>
        <td height="12" background="http://cwiki.apache.org/confluence/images/border/border_bottom.gif"><img src="http://cwiki.apache.org/confluence/images/border/spacer.gif" width="1" height="1" border="0"/></td>
    </tr>
</table>

<div class="smalltext">
    Powered by
    <a href="http://www.atlassian.com/software/confluence/default.jsp?clicked=footer" class="smalltext">Atlassian Confluence</a>
    (Version: 2.2.9 Build:#527 Sep 07, 2006)
    -
    <a href="http://jira.atlassian.com/secure/BrowseProject.jspa?id=10470" class="smalltext">Bug/feature request</a><br/>
    <br>
    <a href="http://cwiki.apache.org/confluence/users/viewnotifications.action">Unsubscribe or edit your notifications preferences</a>

</div>

</body>
</html>


Mime
View raw message