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.0 - JA: 4.9. JBoss to Geronimo - サーブレットとJSPの移行 (page edited)
Date Tue, 22 Apr 2008 00:23: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/GMOxDOC20ja">GMOxDOC20ja</a> :
            <a href="http://cwiki.apache.org/confluence/display/GMOxDOC20ja/4.9.+JBoss+to+Geronimo+-+%E3%82%B5%E3%83%BC%E3%83%96%E3%83%AC%E3%83%83%E3%83%88%E3%81%A8JSP%E3%81%AE%E7%A7%BB%E8%A1%8C">4.9. JBoss to Geronimo - サーブレットとJSPの移行</a>
        </span>
    </div>

     <p>
        <a href="http://cwiki.apache.org/confluence/display/GMOxDOC20ja/4.9.+JBoss+to+Geronimo+-+%E3%82%B5%E3%83%BC%E3%83%96%E3%83%AC%E3%83%83%E3%83%88%E3%81%A8JSP%E3%81%AE%E7%A7%BB%E8%A1%8C">4.9. JBoss to Geronimo - サーブレットとJSPの移行</a>
        has been edited by             <a href="http://cwiki.apache.org/confluence/display/~t-hosaka@bp1.jp">toshimitsu hosaka</a>
            <span class="smallfont">(Apr 21, 2008)</span>.
     </p>
    
     <p>
                 <a href="http://cwiki.apache.org/confluence/pages/diffpagesbyversion.action?pageId=83148&originalVersion=2&revisedVersion=3">(View changes)</a>
     </p>

    <span class="label">Content:</span><br/>
    <div class="greybox wiki-content"><p><a name="4.9.JBosstoGeronimo-%E3%82%B5%E3%83%BC%E3%83%96%E3%83%AC%E3%83%83%E3%83%88%E3%81%A8JSP%E3%81%AE%E7%A7%BB%E8%A1%8C-top"></a><br/>
この記事では、JBoss v4にデプロイされたサーブレットとJSPをApache Geronimoに移行する際の一助となります。この記事は様々な種類のアプリケーションの移行に関する記事のシリーズのひとつです。</p>

<p>この記事はJ2EEの最も基礎的な側面のひとつ、すなわちサーブレットとJSPの移行をカバーしています。この移行の練習で使用するサンプル・アプリケーションは <span class="nobr"><a href="/confluence/download/attachments/83148/college_fest.zip?version=1" title="college_fest.zip attached to 4.9. JBoss to Geronimo - サーブレットとJSPの移行">College Fest<sup><img class="rendericon" src="/confluence/images/icons/link_attachment_7.gif" height="7" width="7" align="absmiddle" alt="" border="0"/></sup></a></span> で、制御の流れを司るサーブレットとJSPだけを含んでいます。College Festサンプル・アプリケーションはデータベースは一切使用していません。JDBCアプリケーションの移行の詳細については <a href="/confluence/pages/viewpage.action?pageId=83146" title="4.7. JBoss to Geronimo - JDBC の移行">4.7. JBoss to Geronimo &#45; JDBC の移行</a> の記事を参照してください。</p>

<p>この記事を読み終えれば、貴方はJBossのビルド・ファイルとデプロイメント記述子を再構成し、移行先であるApache Geronimo向けにセットアップしてシンプルなWebアプリケーションとしてデプロイできるようになります。</p>

<p>この記事は以下のセクションから構成されています。</p>
<ul>
	<li><a href="#4.9.JBosstoGeronimo-%E3%82%B5%E3%83%BC%E3%83%96%E3%83%AC%E3%83%83%E3%83%88%E3%81%A8JSP%E3%81%AE%E7%A7%BB%E8%A1%8C-implementation" title="implementation on 4.9. JBoss to Geronimo - サーブレットとJSPの移行">サーブレットとJSPの実装の分析 </a></li>
	<li><a href="#4.9.JBosstoGeronimo-%E3%82%B5%E3%83%BC%E3%83%96%E3%83%AC%E3%83%83%E3%83%88%E3%81%A8JSP%E3%81%AE%E7%A7%BB%E8%A1%8C-sampleApp" title="sampleApp on 4.9. JBoss to Geronimo - サーブレットとJSPの移行">サンプル・アプリケーション</a></li>
	<li><a href="#4.9.JBosstoGeronimo-%E3%82%B5%E3%83%BC%E3%83%96%E3%83%AC%E3%83%83%E3%83%88%E3%81%A8JSP%E3%81%AE%E7%A7%BB%E8%A1%8C-JBoss" title="JBoss on 4.9. JBoss to Geronimo - サーブレットとJSPの移行">JBoss環境</a></li>
	<li><a href="#4.9.JBosstoGeronimo-%E3%82%B5%E3%83%BC%E3%83%96%E3%83%AC%E3%83%83%E3%83%88%E3%81%A8JSP%E3%81%AE%E7%A7%BB%E8%A1%8C-Geronimo" title="Geronimo on 4.9. JBoss to Geronimo - サーブレットとJSPの移行">Geronimo環境</a></li>
	<li><a href="#4.9.JBosstoGeronimo-%E3%82%B5%E3%83%BC%E3%83%96%E3%83%AC%E3%83%83%E3%83%88%E3%81%A8JSP%E3%81%AE%E7%A7%BB%E8%A1%8C-migration" title="migration on 4.9. JBoss to Geronimo - サーブレットとJSPの移行">ステップ・バイ・ステップの移行</a></li>
	<li><a href="#4.9.JBosstoGeronimo-%E3%82%B5%E3%83%BC%E3%83%96%E3%83%AC%E3%83%83%E3%83%88%E3%81%A8JSP%E3%81%AE%E7%A7%BB%E8%A1%8C-summary" title="summary on 4.9. JBoss to Geronimo - サーブレットとJSPの移行">サマリー</a></li>
</ul>


<h1><a name="4.9.JBosstoGeronimo-%E3%82%B5%E3%83%BC%E3%83%96%E3%83%AC%E3%83%83%E3%83%88%E3%81%A8JSP%E3%81%AE%E7%A7%BB%E8%A1%8C-%E3%82%B5%E3%83%BC%E3%83%96%E3%83%AC%E3%83%83%E3%83%88%E3%81%A8JSP%E3%81%AE%E5%AE%9F%E8%A3%85%E3%81%AE%E5%88%86%E6%9E%90%E3%80%80%E3%80%80"></a>サーブレットとJSPの実装の分析 <a name="4.9.JBosstoGeronimo-%E3%82%B5%E3%83%BC%E3%83%96%E3%83%AC%E3%83%83%E3%83%88%E3%81%A8JSP%E3%81%AE%E7%A7%BB%E8%A1%8C-implementation"></a> </h1>

<p>サーブレットとJSPの実装はアプリケーション・サーバー毎に異なっているかもしれません。このセクションの目的はサーブレットおよびJSPの個別の機能をJBossとApache Geronimoの間で比較して、移行前に相違点を明確にして、計画を策定できるようにすることです。</p>

<p>Apache GeronimoはJ2EE WebアプリケーションをサポートするWebアプリケーション・コンテナを含んでいます。Webコンテナそれ自体はネットワーク・ポートやSSLオプションのような基本的な構成をサポートしており、WebアプリケーションはGeronimo固有の構成情報を含んでいる場合があります。WebアプリケーションはGeronimoのセキュリティ機構に参加しているので、Webアプリケーションを認証することでEJBやコネクターにセキュアにアクセスすることができます。</p>

<p>Apache Geronimoは現在2つのWebコンテナ、すなわち <b>Jetty</b> と <b>Tomcat</b> をサポートしています。</p>

<h3><a name="4.9.JBosstoGeronimo-%E3%82%B5%E3%83%BC%E3%83%96%E3%83%AC%E3%83%83%E3%83%88%E3%81%A8JSP%E3%81%AE%E7%A7%BB%E8%A1%8C-Jetty"></a>Jetty</h3>

<p>Jettyは100% Javaで書かれたHTTPサーバーであり、サーブレット・コンテナです。ということは、サーブレットやJSPを使用して動的なコンテンツを生成する際に、別のWebサーバーを構成し、動かしておく必要がないということを意味します。Jettyは静的なコンテンツと動的なコンテンツの両方のための、完全な機能を持つWebサーバーです。</p>

<p>サーバーとコンテナを分離するソリューションと違って、JettyのWebサーバーとWebアプリケーションは、通信のオーバーヘッドや複雑な構成をとらずに、同一のプロセスの内部で動きます。さらに、Jettyはpure Javaのコンポーネントなので、デモ、配布、デプロイ用に貴方のアプリケーションに含めてしまうこともできます。</p>

<p>GeronimoではWebコンテナに接続を試みるブラウザーの経路を明示的に構成する必要があります。デフォルトのWebコンテナがJettyの場合には、この経路はコネクターと呼ばれます。標準的な構成ではJettyコネクターはHTTPをポート8080番で、HTTPSをポート8443番でサポートするように構成されています。</p>

<p>Jettyコネクター各々はGBeanなので、Jettyコネクターを構成する際にはGBeanの構成作業が必要です。</p>

<h3><a name="4.9.JBosstoGeronimo-%E3%82%B5%E3%83%BC%E3%83%96%E3%83%AC%E3%83%83%E3%83%88%E3%81%A8JSP%E3%81%AE%E7%A7%BB%E8%A1%8C-ApacheTomcat"></a>Apache Tomcat</h3>

<p>Apache TomcatはJavaサーブレットとJSPテクノロジーの公式なリファレンス実装として使用されるサーブレット・コンテナです。</p>

<p><span class="nobr"><a href="http://java.sun.com/products/servlet" title="Visit page outside Confluence" rel="nofollow">http://java.sun.com/products/servlet<sup><img class="rendericon" src="/confluence/images/icons/linkext7.gif" height="7" width="7" align="absmiddle" alt="" border="0"/></sup></a></span><br/>
<span class="nobr"><a href="http://java.sun.com/products/jsp" title="Visit page outside Confluence" rel="nofollow">http://java.sun.com/products/jsp<sup><img class="rendericon" src="/confluence/images/icons/linkext7.gif" height="7" width="7" align="absmiddle" alt="" border="0"/></sup></a></span></p>

<h2><a name="4.9.JBosstoGeronimo-%E3%82%B5%E3%83%BC%E3%83%96%E3%83%AC%E3%83%83%E3%83%88%E3%81%A8JSP%E3%81%AE%E7%A7%BB%E8%A1%8C-%E7%9B%B8%E9%81%95%E7%82%B9"></a>相違点</h2>

<p>JBoss v4はデフォルトのWebコンテナとしてTomcat5.5しかサポートしていません。埋め込まれたTomcatサービスはdeployディレクトリーに存在する   <b>jbossweb-tomcat55.sar</b> という拡張SARです。</p>

<p>HTTPコネクターはポート8080番の上に構成されており、もしApache HTTPのような分離されたWebサーバー経由で接続したい場合は8009番が使用されます。</p>

<p>デフォルトのWebコンテナの次の、二番目の大きな相違点はデプロイメント・プランです。Geronimoのデプロイメント・プランは特定のアプリケーションやサービスの構成情報を格納しているXMLファイルを含んでいるという意味で、J2EEのデプロイメント記述子に似ています。</p>

<p>セキュリティやリソース参照が不要な、非常にシンプルなアプリケーションでは、Geronimoのでプロイメント・プランは必要なく、デプロイ時に自動的にデフォルトのコンテキスト・ルートと依存性の定義が提供されます。</p>

<p>GeronimoのWebアプリケーションのデプロイメント・プランは <b>geronimo-web.xml</b> です。JBossで相当するデプロイメント記述子は <b>jboss-web.xml</b> です。より詳細なGeronimoのデプロイメント・アーキテクチャーについては <span class="nobr"><a href="http://www.ibm.com/developerworks/library/os-ag-deploy" title="Visit page outside Confluence" rel="nofollow">Understand Geronimo's deployment architecture<sup><img class="rendericon" src="/confluence/images/icons/linkext7.gif" height="7" width="7" align="absmiddle" alt="" border="0"/></sup></a></span> の記事をご参照ください。</p>

<p>サーブレットとJSPにおけるもうひとつの違いは、Webアプリケーションのデプロイの方法です。Geronimoでは、アプリケーションのパッケージ(ear, war, rar またはjar)は &lt;geronimo_home&gt;/bin ディレクトリーにある <b>deployer.jar</b> というデプロイ・ツールを使ってデプロイします。</p>

<p><a name="4.9.JBosstoGeronimo-%E3%82%B5%E3%83%BC%E3%83%96%E3%83%AC%E3%83%83%E3%83%88%E3%81%A8JSP%E3%81%AE%E7%A7%BB%E8%A1%8C-deploymentTool"></a><br/>
deployer.jar は(もしプランが提供されていれば)デプロイメント・プランの中で提供された情報に基づいてアプリケーション・モジュールをGeronimoサーバーにデプロイします。その後、サーバーはメタ・データを構成ストアに、実行イメージはバイナリー・リポジトリーに各々保管します。以下の図はデプロイメント・ツールの動きを図解したものです。</p>

<p><img src="/confluence/download/attachments/83148/deployer.jpg" align="absmiddle" border="0" /></p>

<p>JBossでは、Webアプリケーションはアプリケーション・パッケージ(ear, war, rar or jar)は、単純に&lt;jboss_home&gt;/server/&lt;your_server_name&gt;/deploy ディレクトリーにコピーするだけでサーバーはそれを検知し、適切にデプロイします。</p>

<p>以下の表はJBossとGeronimoの相違点のサマリーです。</p>
<table class='confluenceTable'><tbody>
<tr>
<th class='confluenceTh'> 機能 </th>
<th class='confluenceTh'> JBoss v4 </th>
<th class='confluenceTh'> Apache Geronimo </th>
</tr>
<tr>
<td class='confluenceTd'> デプロイメント記述子/プラン </td>
<td class='confluenceTd'> jboss.xml </td>
<td class='confluenceTd'> geronimo-web.xml </td>
</tr>
<tr>
<td class='confluenceTd'> デプロイの方法 </td>
<td class='confluenceTd'> パッケージ(ear, war, rar or jar)をJBossサーバーの&lt;jboss_home&gt;/server/&lt;your_server_name&gt;/deploy <br clear="all" />
フォルダーにコピー </td>
<td class='confluenceTd'> サーバーのbinディレクトリー&lt;geronimo_home&gt;/binの - <span class="nobr"><a href="/confluence/pages/createpage.action?spaceKey=GMOxDOC20ja&amp;encodedTitle=MS45LjMuIERlcGxveWVyIHRvb2wgLSDjg4fjg5fjg63jgqTjg6Tjg7zjg7vjg4Tjg7zjg6s=&amp;linkCreation=true&amp;fromPageId=83148" title="Create Page: 1.9.3. Deployer tool - デプロイヤー・ツール" class="createlink">1.9.3. Deployer tool &#45; デプロイヤー・ツール<sup><img class="rendericon" src="/confluence/images/icons/plus.gif" height="7" width="7" align="absmiddle" alt="" border="0"/></sup></a></span> を利用可能。 <br clear="all" />
デプロイは<a href="/confluence/pages/viewpage.action?pageId=83121" title="1.6. Geronimo 管理コンソール">1.6. Geronimo 管理コンソール</a>でも可能。 3番目の方法は  Hot deployment で、JBossの機能に相当。 </td>
</tr>
<tr>
<td class='confluenceTd'> Web コンテナ </td>
<td class='confluenceTd'> Apache Tomcat 5.5 </td>
<td class='confluenceTd'> Jetty または Apache Tomcat </td>
</tr>
</tbody></table>
<p><a href="#4.9.JBosstoGeronimo-%E3%82%B5%E3%83%BC%E3%83%96%E3%83%AC%E3%83%83%E3%83%88%E3%81%A8JSP%E3%81%AE%E7%A7%BB%E8%A1%8C-top" title="top on 4.9. JBoss to Geronimo - サーブレットとJSPの移行">Back to Top</a></p>

<h1><a name="4.9.JBosstoGeronimo-%E3%82%B5%E3%83%BC%E3%83%96%E3%83%AC%E3%83%83%E3%83%88%E3%81%A8JSP%E3%81%AE%E7%A7%BB%E8%A1%8C-%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AB%E3%83%BB%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3"></a>サンプル・アプリケーション <a name="4.9.JBosstoGeronimo-%E3%82%B5%E3%83%BC%E3%83%96%E3%83%AC%E3%83%83%E3%83%88%E3%81%A8JSP%E3%81%AE%E7%A7%BB%E8%A1%8C-sampleApp"></a></h1>

<p><span class="nobr"><a href="/confluence/download/attachments/83148/college_fest.zip?version=1" title="college_fest.zip attached to 4.9. JBoss to Geronimo - サーブレットとJSPの移行">College Fest<sup><img class="rendericon" src="/confluence/images/icons/link_attachment_7.gif" height="7" width="7" align="absmiddle" alt="" border="0"/></sup></a></span> アプリケーションは大学祭のイベントの登録申し込みを扱います。これはとてもシンプルなアプリケーションで、一切データベースは使いません。College Fest アプリケーションには以下の4種類のページがあります。</p>
<ul>
	<li>Welcome(ようこそ)ページ</li>
	<li>Event List (イベント・リスト)ページ</li>
	<li>Event Details (イベントの詳細)ページ</li>
	<li>Registration (参加登録)ページ</li>
</ul>


<p>以下の図でアプリケーションの流れを説明します:</p>

<p><img src="/confluence/download/attachments/83148/webApp_flow.jpg" align="absmiddle" border="0" /></p>

<p>ユーザーはWebページにアクセスしてユーザー名とパスワードを入力します。その後の画面で現在有効なイベントのリストが表示されます。利用者はリスト中のイベントをクリックすれば、その詳細を見ることができます。イベントの詳細ページでは、その特定のイベントへの参加申し込みを行えます。</p>

<h2><a name="4.9.JBosstoGeronimo-%E3%82%B5%E3%83%BC%E3%83%96%E3%83%AC%E3%83%83%E3%83%88%E3%81%A8JSP%E3%81%AE%E7%A7%BB%E8%A1%8C-%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AE%E3%82%AF%E3%83%A9%E3%82%B9%E3%81%A8JSP%E3%83%9A%E3%83%BC%E3%82%B8"></a>アプリケーションのクラスとJSPページ</h2>

<p>大学祭サンプル・アプリケーションは以下の2つのサーブレットから成り立っています。</p>
<ul>
	<li>WelcomeServlet - ユーザーのログインを処理し、ユーザー名を取得してから次のサーブレットへ引き渡します。</li>
	<li>PersonalServlet - そのユーザー向けにページを処理してから制御をwelcome.jspに戻します。</li>
</ul>


<p>大学祭サンプル・アプリケーションには以下のJSPが含まれています。</p>
<ul>
	<li>welcome.jsp - イベントのリストをユーザーに表示して、どのイベントに参加するかを選択できるようにします。</li>
	<li>dc.jsp - Dumb Charades イベントの詳細を表示します。</li>
	<li>pp.jsp - Pot Potpourri イベントの詳細を表示します。</li>
	<li>wtgw.jsp - What's The Good Word イベントの詳細を表示します。</li>
	<li>gq.jsp - General Quiz イベントの詳細を表示します。</li>
	<li>team_reg.jsp - イベントの参加登録を処理します。</li>
</ul>


<h2><a name="4.9.JBosstoGeronimo-%E3%82%B5%E3%83%BC%E3%83%96%E3%83%AC%E3%83%83%E3%83%88%E3%81%A8JSP%E3%81%AE%E7%A7%BB%E8%A1%8C-%E4%BD%BF%E7%94%A8%E3%81%99%E3%82%8B%E3%83%84%E3%83%BC%E3%83%AB"></a>使用するツール</h2>

<p>大学祭サンプル・アプリケーションを開発・ビルドするのに使用するツールは下記のとおりです。</p>

<h3><a name="4.9.JBosstoGeronimo-%E3%82%B5%E3%83%BC%E3%83%96%E3%83%AC%E3%83%83%E3%83%88%E3%81%A8JSP%E3%81%AE%E7%A7%BB%E8%A1%8C-Eclipse"></a>Eclipse</h3>

<p>サンプル・アプリケーションの開発にはEclipse IDEを使います。これはとてもパワフルで有名なオープンソースの開発ツールです。JBossとGeronimoの統合用のプラグインが利用できます。Eclipseは <span class="nobr"><a href="http://www.eclipse.org" title="Visit page outside Confluence" rel="nofollow">http://www.eclipse.org<sup><img class="rendericon" src="/confluence/images/icons/linkext7.gif" height="7" width="7" align="absmiddle" alt="" border="0"/></sup></a></span> からダウンロードできます。</p>

<h3><a name="4.9.JBosstoGeronimo-%E3%82%B5%E3%83%BC%E3%83%96%E3%83%AC%E3%83%83%E3%83%88%E3%81%A8JSP%E3%81%AE%E7%A7%BB%E8%A1%8C-ApacheAnt"></a>Apache Ant</h3>

<p>Antはpure Javaのビルド・ツールです。大学祭アプリケーションのwarファイルをビルドするために使います。Antは<span class="nobr"><a href="http://ant.apache.org" title="Visit page outside Confluence" rel="nofollow">http://ant.apache.org<sup><img class="rendericon" src="/confluence/images/icons/linkext7.gif" height="7" width="7" align="absmiddle" alt="" border="0"/></sup></a></span>からダウンロードできます。</p>

<p><a href="#4.9.JBosstoGeronimo-%E3%82%B5%E3%83%BC%E3%83%96%E3%83%AC%E3%83%83%E3%83%88%E3%81%A8JSP%E3%81%AE%E7%A7%BB%E8%A1%8C-top" title="top on 4.9. JBoss to Geronimo - サーブレットとJSPの移行">Back to Top</a></p>

<h1><a name="4.9.JBosstoGeronimo-%E3%82%B5%E3%83%BC%E3%83%96%E3%83%AC%E3%83%83%E3%83%88%E3%81%A8JSP%E3%81%AE%E7%A7%BB%E8%A1%8C-JBoss%E7%92%B0%E5%A2%83"></a>JBoss環境 <a name="4.9.JBosstoGeronimo-%E3%82%B5%E3%83%BC%E3%83%96%E3%83%AC%E3%83%83%E3%83%88%E3%81%A8JSP%E3%81%AE%E7%A7%BB%E8%A1%8C-JBoss"></a></h1>

<p>このセクションではサンプルのJBossの環境のインストールの方法やインストールの場所を示し、貴方の環境に於けるシナリオと対比できるようにします。</p>

<p>JBossのインストール、構成、管理の詳細な方法は、製品ドキュメントで提供されています。製品のWebサイトで最新のドキュメントを確認してください。</p>

<p>以下のリストがサンプル・アプリケーションをデプロイする際の出発点として、初めの環境のインストール・構成を完了する際に必要となるタスクの概要のハイライトです。</p>
<ol>
	<li>製品ドキュメントのガイドに従ってJBoss v4をダウンロードし、インストールします。以降、導入ディレクトリーは <b>&lt;jboss_home&gt;</b> と記載します。</li>
	<li>デフォルトのJBoss v4アプリケーション・サーバーのコピーを作成します。 <b>&lt;jboss_home&gt;\server\default</b> から下をすべて <b>&lt;jboss_home&gt;\server\&lt;your_server_name&gt;</b> へコピーします。</li>
	<li><b>&lt;jboss_home&gt;\bin</b> ディレクトリーから <tt>run.sh &#45;c &lt;貴方のサーバーの名前&gt;</tt> コマンドで新しいサーバーを開始します。</li>
	<li>サーバーが開始したら、WebブラウザーでURL: <span class="nobr"><a href="http://localhost:8080" title="Visit page outside Confluence" rel="nofollow">http://localhost:8080<sup><img class="rendericon" src="/confluence/images/icons/linkext7.gif" height="7" width="7" align="absmiddle" alt="" border="0"/></sup></a></span> を指定して、JBossが稼動していることを確認します。</li>
	<li>アプリケーション・サーバーが開始して稼動したら、次のステップとして、サンプル・アプリケーションに必要な残りの前提ソフトウエアをインストール・構成します。</li>
</ol>


<p>前にも述べましたが、大学祭アプリケーションのバイナリーをビルドするにはApache Antを利用します。もし貴方がAntをインストールしていなければ、これが丁度よい機会です。インストール後、システムのpath変数に <b>&lt;ant_home&gt;\bin</b> ディレクトリーが追加されていることを確認してください。<br/>
Apache Antは以下のURLからダウンロードできます。</p>

<p><span class="nobr"><a href="http://ant.apache.org" title="Visit page outside Confluence" rel="nofollow">http://ant.apache.org<sup><img class="rendericon" src="/confluence/images/icons/linkext7.gif" height="7" width="7" align="absmiddle" alt="" border="0"/></sup></a></span></p>

<h2><a name="4.9.JBosstoGeronimo-%E3%82%B5%E3%83%BC%E3%83%96%E3%83%AC%E3%83%83%E3%83%88%E3%81%A8JSP%E3%81%AE%E7%A7%BB%E8%A1%8C-%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AB%E3%83%BB%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AE%E3%83%93%E3%83%AB%E3%83%89"></a>サンプル・アプリケーションのビルド</h2>

<p>この記事で扱う大学祭アプリケーションにはアプリケーションをビルドする際に使用するAntスクリプトが含まれています。以下のリンクから大学祭アプリケーションをダウンロードしてください。</p>

<p><span class="nobr"><a href="/confluence/download/attachments/83148/college_fest.zip?version=1" title="college_fest.zip attached to 4.9. JBoss to Geronimo - サーブレットとJSPの移行">College Fest<sup><img class="rendericon" src="/confluence/images/icons/link_attachment_7.gif" height="7" width="7" align="absmiddle" alt="" border="0"/></sup></a></span></p>

<p>Zipファイルを解凍すると、college_festディレクトリーが作られます。そのディレクトリーで <b>build.properties</b> ファイルを開き、以下の例に従って貴方の環境に一致するように属性を編集してください。</p>
<div class="preformatted" style="border-style: solid; "><div class="preformattedHeader" style="border-bottom-style: solid; "><b>build.propertiesファイルの更新</b></div><div class="preformattedContent">
<pre>#java.homeを貴方のJDKディレクトリーに書き換えます。
java.home=&lt;JAVA_HOME&gt;
#j2ee.homeをlib/j2ee.jarの親ディレクトリーに書き換えます。
j2ee.home=&lt;jboss_home&gt;/server/&lt;your_server_name&gt;
#jbossのホーム・ディレクトリーに書き換えます。
jboss.server=&lt;jboss_home&gt;/server/&lt;your_server_name&gt;
#Geronimoのホーム・ディレクトリー
geronimo.home=&lt;geronimo_home&gt;
</pre>
</div></div>
<p>college_festディレクトリーに更に2つのビルド・ファイル build.xmlとjboss-build.xmlもあります。build.xmlはデフォルトのビルド・ファイルで、もし貴方が <b>ant</b> とだけタイプしたら、アプリケーションのビルドにはこのファイルが使われます。今回のサンプル・アプリケーション用にはjboss-build.xml が提供されています。</p>

<p>college_festディレクトリーのコマンド行から、以下のコマンドをタイプしてください。</p>

<p><b>ant &#45;f jboss-build.xml clean deploy</b></p>

<p>このコマンドを入力すると、antはjboss-build.xmlファイル中に定義してあるターゲットを使って大学祭アプリケーションをビルドし、JBossサーバーにデプロイします。<b>&lt;target name="deploy" ...&gt;</b>, にご注目ください。jboss-build.xml中のこの箇所でWARファイルをデプロイする場所を指定しています。以下の例でjboss-build.xmlファイル中の定義を示します。</p>
<div class="code" style="border-style: solid; "><div class="codeHeader" style="border-bottom-style: solid; "><b>jboss-build.xml</b></div><div class="codeContent">
<pre class="code-xml"><span class="code-tag">&lt;?xml version=<span class="code-quote">"1.0"</span>?&gt;</span>
<span class="code-tag"><span class="code-comment">&lt;!-- build file for building a war --&gt;</span></span>

<span class="code-tag">&lt;project name=<span class="code-quote">"build"</span> default=<span class="code-quote">"war"</span> basedir=<span class="code-quote">"."</span>&gt;</span>

    <span class="code-tag">&lt;property file=<span class="code-quote">"build.properties"</span>/&gt;</span>
    <span class="code-tag">&lt;property name=<span class="code-quote">"src.dir"</span> value=<span class="code-quote">"src"</span>/&gt;</span>
    <span class="code-tag">&lt;property name=<span class="code-quote">"dest.dir"</span> value=<span class="code-quote">"bin"</span>/&gt;</span>

    <span class="code-tag">&lt;target name=<span class="code-quote">"clean"</span> description=<span class="code-quote">"Delete all generated files"</span>&gt;</span>
        <span class="code-tag">&lt;echo message=<span class="code-quote">"Deleting bin directory"</span> /&gt;</span>
        <span class="code-tag">&lt;delete dir=<span class="code-quote">"bin"</span> /&gt;</span>
    <span class="code-tag">&lt;/target&gt;</span>

	<span class="code-tag">&lt;target name=<span class="code-quote">"compile"</span>&gt;</span>
		<span class="code-tag">&lt;mkdir dir=<span class="code-quote">"${dest.dir}"</span>/&gt;</span>
		<span class="code-tag">&lt;javac srcdir=<span class="code-quote">"${src.dir}"</span> destdir=<span class="code-quote">"${dest.dir}"</span>&gt;</span>
			<span class="code-tag">&lt;classpath path=<span class="code-quote">"${java.home}/lib/tools.jar"</span>/&gt;</span>
			<span class="code-tag">&lt;classpath path=<span class="code-quote">"${j2ee.home}/lib/j2ee.jar"</span>/&gt;</span>
		<span class="code-tag">&lt;/javac&gt;</span>
	<span class="code-tag">&lt;/target&gt;</span>

	<span class="code-tag">&lt;target name=<span class="code-quote">"war"</span> depends=<span class="code-quote">"compile"</span>&gt;</span>
		<span class="code-tag">&lt;war destfile=<span class="code-quote">"college_fest.war"</span> webxml=<span class="code-quote">"WEB-INF/web.xml"</span>&gt;</span>
			<span class="code-tag">&lt;zipfileset dir=<span class="code-quote">"jsp"</span> prefix=<span class="code-quote">"jsp"</span>/&gt;</span>
			<span class="code-tag">&lt;zipfileset dir=<span class="code-quote">"pix"</span> prefix=<span class="code-quote">"pix"</span>/&gt;</span>
			<span class="code-tag">&lt;classes dir=<span class="code-quote">"${dest.dir}"</span>/&gt;</span>
                        <span class="code-tag">&lt;webinf dir=<span class="code-quote">"WEB-INF"</span> /&gt;</span>
		<span class="code-tag">&lt;/war&gt;</span>
	<span class="code-tag">&lt;/target&gt;</span>

	<span class="code-tag">&lt;target name=<span class="code-quote">"deploy"</span> depends=<span class="code-quote">"war"</span>&gt;</span>
		<span class="code-tag">&lt;copy file=<span class="code-quote">"college_fest.war"</span> todir=<span class="code-quote">"${jboss.server}/deploy"</span>/&gt;</span>
	<span class="code-tag">&lt;/target&gt;</span>

	<span class="code-tag">&lt;target name=<span class="code-quote">"undeploy"</span>&gt;</span>
		<span class="code-tag">&lt;delete file=<span class="code-quote">"${jboss.server}/deploy/college_fest.war"</span>/&gt;</span>
    <span class="code-tag">&lt;/target&gt;</span>
<span class="code-tag">&lt;/project&gt;</span></pre>
</div></div>
<p>Antのビルドで作成されたwarはJBoss固有のデプロイメント記述子を含んでいます。下記にWARのWEB-INFディレクトリー中の <b>jboss-web.xml</b> を示します。</p>
<div class="code" style="border-style: solid; "><div class="codeHeader" style="border-bottom-style: solid; "><b>JBoss deployment descriptor</b></div><div class="codeContent">
<pre class="code-xml"><span class="code-tag">&lt;?xml version=<span class="code-quote">"1.0"</span> encoding=<span class="code-quote">"UTF-8"</span>?&gt;</span>

<span class="code-tag">&lt;jboss-web&gt;</span>

    <span class="code-tag">&lt;context-root&gt;</span>college_fest<span class="code-tag">&lt;/context-root&gt;</span>
    <span class="code-tag">&lt;context-priority-classloader&gt;</span>
      false
    <span class="code-tag">&lt;/context-priority-classloader&gt;</span>
<span class="code-tag">&lt;/jboss-web&gt;</span></pre>
</div></div>
<p><a href="#4.9.JBosstoGeronimo-%E3%82%B5%E3%83%BC%E3%83%96%E3%83%AC%E3%83%83%E3%83%88%E3%81%A8JSP%E3%81%AE%E7%A7%BB%E8%A1%8C-top" title="top on 4.9. JBoss to Geronimo - サーブレットとJSPの移行">Back to Top</a></p>

<h2><a name="4.9.JBosstoGeronimo-%E3%82%B5%E3%83%BC%E3%83%96%E3%83%AC%E3%83%83%E3%83%88%E3%81%A8JSP%E3%81%AE%E7%A7%BB%E8%A1%8C-%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AB%E3%83%BB%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AE%E3%83%87%E3%83%97%E3%83%AD%E3%82%A4"></a>サンプル・アプリケーションのデプロイ</h2>

<p>ここまでのステップでは、カスタマイズされたjboss-build.xmlファイルを使って、ビルド時にアプリケーションをデプロイする方法をご覧頂きました。もし貴方がデフォルトのbuild.xmlを使ってしまった場合は、大学祭アプリケーションをご自分の手でデプロイせねばなりません。大学祭アプリケーションをJBossにデプロイするには、Antでビルドした <b>college_fest.war</b> ファイルを以下のディレクトリーにコピーしてください。</p>

<p>&lt;jboss_home&gt;\server\&lt;your_server_name&gt;\deploy</p>

<p>既にJBossが開始しているなら、自動的にデプロイされ、アプリケーションが開始します。JBossが開始していなければ、次回の始動時にデプロイされ、開始されます。</p>

<p><a href="#4.9.JBosstoGeronimo-%E3%82%B5%E3%83%BC%E3%83%96%E3%83%AC%E3%83%83%E3%83%88%E3%81%A8JSP%E3%81%AE%E7%A7%BB%E8%A1%8C-top" title="top on 4.9. JBoss to Geronimo - サーブレットとJSPの移行">Back to Top</a></p>

<h2><a name="4.9.JBosstoGeronimo-%E3%82%B5%E3%83%BC%E3%83%96%E3%83%AC%E3%83%83%E3%83%88%E3%81%A8JSP%E3%81%AE%E7%A7%BB%E8%A1%8C-%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AE%E3%83%86%E3%82%B9%E3%83%88"></a>アプリケーションのテスト <a name="4.9.JBosstoGeronimo-%E3%82%B5%E3%83%BC%E3%83%96%E3%83%AC%E3%83%83%E3%83%88%E3%81%A8JSP%E3%81%AE%E7%A7%BB%E8%A1%8C-test"></a></h2>

<p>アプリケーションをテストするには、Webブラウザーを開いて以下のURLへアクセスしてください。</p>

<p><span class="nobr"><a href="http://localhost:8080/college_fest" title="Visit page outside Confluence" rel="nofollow">http://localhost:8080/college_fest<sup><img class="rendericon" src="/confluence/images/icons/linkext7.gif" height="7" width="7" align="absmiddle" alt="" border="0"/></sup></a></span></p>

<p>Welcome画面が表示され、貴方の名前と大学を指定すればログインできます。貴方の名前と大学を入力してSubmit をクリックすると、ページの末尾のメッセージに貴方の名前と、サイトに入るための"Click here" リンクが表示されます。サイトを閲覧でき、オプションをチェックできれば、大学祭アプリケーションは構成され稼動しています。</p>

<p><a href="#4.9.JBosstoGeronimo-%E3%82%B5%E3%83%BC%E3%83%96%E3%83%AC%E3%83%83%E3%83%88%E3%81%A8JSP%E3%81%AE%E7%A7%BB%E8%A1%8C-top" title="top on 4.9. JBoss to Geronimo - サーブレットとJSPの移行">Back to Top</a></p>

<h1><a name="4.9.JBosstoGeronimo-%E3%82%B5%E3%83%BC%E3%83%96%E3%83%AC%E3%83%83%E3%83%88%E3%81%A8JSP%E3%81%AE%E7%A7%BB%E8%A1%8C-Geronimo%E7%92%B0%E5%A2%83"></a>Geronimo環境 <a name="4.9.JBosstoGeronimo-%E3%82%B5%E3%83%BC%E3%83%96%E3%83%AC%E3%83%83%E3%83%88%E3%81%A8JSP%E3%81%AE%E7%A7%BB%E8%A1%8C-Geronimo"></a></h1>

<p>以下のURLからGeronimoをダウンロードしてインストールしてください。</p>

<p><span class="nobr"><a href="http://geronimo.apache.org/downloads.html" title="Visit page outside Confluence" rel="nofollow">http://geronimo.apache.org/downloads.html<sup><img class="rendericon" src="/confluence/images/icons/linkext7.gif" height="7" width="7" align="absmiddle" alt="" border="0"/></sup></a></span></p>

<p>URLにあるリリース・ノートには、システム要件、Geronimoのインストールや構成のための方法が正確に記載されています。以降、当記事では以降、Geronimoの導入ディレクトリーを <b>&lt;geronimo_home&gt;</b> と表記します。</p>
<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">TCP/IPポートの競合</b><br />もしJBossとGeronimoを同じマシンで動かそうとしているなら、いずれかのサーバーのデフォルトのポート番号を変更することを検討する必要があります。</td></tr></table>
<p><a href="#4.9.JBosstoGeronimo-%E3%82%B5%E3%83%BC%E3%83%96%E3%83%AC%E3%83%83%E3%83%88%E3%81%A8JSP%E3%81%AE%E7%A7%BB%E8%A1%8C-top" title="top on 4.9. JBoss to Geronimo - サーブレットとJSPの移行">Back to Top</a></p>

<h1><a name="4.9.JBosstoGeronimo-%E3%82%B5%E3%83%BC%E3%83%96%E3%83%AC%E3%83%83%E3%83%88%E3%81%A8JSP%E3%81%AE%E7%A7%BB%E8%A1%8C-%E3%82%B9%E3%83%86%E3%83%83%E3%83%97%E3%83%BB%E3%83%90%E3%82%A4%E3%83%BB%E3%82%B9%E3%83%86%E3%83%83%E3%83%97%E3%81%AE%E7%A7%BB%E8%A1%8C"></a>ステップ・バイ・ステップの移行 <a name="4.9.JBosstoGeronimo-%E3%82%B5%E3%83%BC%E3%83%96%E3%83%AC%E3%83%83%E3%83%88%E3%81%A8JSP%E3%81%AE%E7%A7%BB%E8%A1%8C-migration"></a></h1>

<p>大学祭アプリケーションをGeronimoに移行するには、jboss-web.xmlファイルをGeronimo固有の記述子ファイルである <b>geronimo-web.xml</b> に置換する必要があります。geronimo-web.xmlファイルはcollege_festディレクトリー構造のWEB-INFディレクトリーにあります。Geronimoのデプロイメント・プランgeronimo-web.xmlを以下の例で図示します。</p>
<table cellpadding='5' width='85%' cellspacing='8px' class='noteMacro' border="0" align='center'><colgroup><col width='24'><col></colgroup><tr><td valign='top'><img src="/confluence/images/icons/emoticons/warning.gif" width="16" height="16" align="absmiddle" alt="" border="0"></td><td>以下のgeronimo-web.xmlはJ2Gツールで生成されたものです。</td></tr></table>
<div class="code" style="border-style: solid; "><div class="codeHeader" style="border-bottom-style: solid; "><b>Geronimo specific deployment plan geronimo-web.xml</b></div><div class="codeContent">
<pre class="code-xml">&lt;web-app xmlns=<span class="code-quote">"http://geronimo.apache.org/xml/ns/j2ee/web-1.1"</span>
         <span class="code-keyword">xmlns:naming</span>=<span class="code-quote">"http://geronimo.apache.org/xml/ns/naming-1.1"</span>
         <span class="code-keyword">xmlns:security</span>=<span class="code-quote">"http://geronimo.apache.org/xml/ns/security-1.1"</span>
         <span class="code-keyword">xmlns:sys</span>=<span class="code-quote">"http://geronimo.apache.org/xml/ns/deployment-1.1"</span>&gt;
  <span class="code-tag">&lt;sys:environment&gt;</span>
    <span class="code-tag">&lt;sys:moduleId&gt;</span>
      <span class="code-tag">&lt;sys:groupId&gt;</span>j2g<span class="code-tag">&lt;/sys:groupId&gt;</span>
      <span class="code-tag">&lt;sys:artifactId&gt;</span>web-module<span class="code-tag">&lt;/sys:artifactId&gt;</span>
      <span class="code-tag">&lt;sys:version&gt;</span>1.0<span class="code-tag">&lt;/sys:version&gt;</span>
      <span class="code-tag">&lt;sys:type&gt;</span>war<span class="code-tag">&lt;/sys:type&gt;</span>
    <span class="code-tag">&lt;/sys:moduleId&gt;</span>
    <span class="code-tag">&lt;sys:dependencies/&gt;</span>
  <span class="code-tag">&lt;/sys:environment&gt;</span>
  <span class="code-tag">&lt;context-root&gt;</span>college_fest<span class="code-tag">&lt;/context-root&gt;</span>
<span class="code-tag">&lt;/web-app&gt;</span></pre>
</div></div>
<p>大学祭アプリケーションはシンプルなアプリケーションなので、Geronimoのデプロイメント・プランもとてもシンプルなものです。このアプリケーションではデータベースも使っていませんし、セキュリティの構成も行っていないことはお忘れなく。他の <b>「JBossからGeronimoへ」</b> の移行関連の記事を読むと、サンプル・アプリケーションの様々な移行シナリオでの複雑さが増すにつれ、デプロイメント・プランの複雑さも増すことに気づかれることでしょう。</p>

<p>この記事の初めの方で、<a href="#4.9.JBosstoGeronimo-%E3%82%B5%E3%83%BC%E3%83%96%E3%83%AC%E3%83%83%E3%83%88%E3%81%A8JSP%E3%81%AE%E7%A7%BB%E8%A1%8C-deploymentTool" title="deploymentTool on 4.9. JBoss to Geronimo - サーブレットとJSPの移行">デプロイメント・ツール</a>の振る舞いについて説明しました。デプロイメントの際には、アプリケーション・モジュールとデプロイメント・プランを指定します。サンプルの大学祭アプリケーションはとてもシンプルなので、わざわざデプロイメント・プランを指定せず、デフォルトの設定値(例えばコンテキスト・ルートなど)を使ってGeronimoにデプロイを任せてしまってもかまいません。</p>

<p>Antを使ってサンプルの大学祭アプリケーションをビルドした際には、デフォルトのbuild.xmlの代わりにjboss-build.xml を使用しました。以下がデフォルトのbuild.xmlの例です。</p>
<div class="code" style="border-style: solid; "><div class="codeHeader" style="border-bottom-style: solid; "><b>build.xml</b></div><div class="codeContent">
<pre class="code-xml"><span class="code-tag">&lt;?xml version=<span class="code-quote">"1.0"</span>?&gt;</span>
<span class="code-tag"><span class="code-comment">&lt;!-- build file for building a war --&gt;</span></span>

<span class="code-tag">&lt;project name=<span class="code-quote">"build"</span> default=<span class="code-quote">"war"</span> basedir=<span class="code-quote">"."</span>&gt;</span>

    <span class="code-tag">&lt;property file=<span class="code-quote">"build.properties"</span>/&gt;</span>
    <span class="code-tag">&lt;property name=<span class="code-quote">"src.dir"</span> value=<span class="code-quote">"src"</span>/&gt;</span>
    <span class="code-tag">&lt;property name=<span class="code-quote">"dest.dir"</span> value=<span class="code-quote">"bin"</span>/&gt;</span>


    <span class="code-tag">&lt;target name=<span class="code-quote">"clean"</span> description=<span class="code-quote">"Delete all generated files."</span>&gt;</span>
        <span class="code-tag">&lt;echo message=<span class="code-quote">"Deleting bin folder"</span> /&gt;</span>
        <span class="code-tag">&lt;delete dir=<span class="code-quote">"bin"</span>/&gt;</span>
    <span class="code-tag">&lt;/target&gt;</span>

      <span class="code-tag">&lt;target name=<span class="code-quote">"compile"</span>&gt;</span>
    	<span class="code-tag">&lt;mkdir dir=<span class="code-quote">"${dest.dir}"</span>/&gt;</span>

        <span class="code-tag">&lt;javac srcdir=<span class="code-quote">"${src.dir}"</span> destdir=<span class="code-quote">"${dest.dir}"</span>&gt;</span>
            <span class="code-tag">&lt;classpath path=<span class="code-quote">"${java.home}/lib/tools.jar"</span>/&gt;</span>
            <span class="code-tag"><span class="code-comment">&lt;!--classpath path=<span class="code-quote">"${j2ee.home}/lib/j2ee.jar"</span>/--&gt;</span></span>
            <span class="code-tag">&lt;classpath path=<span class="code-quote">"${geronimo.home}/repository/org/apache/geronimo/specs/geronimo-servlet_2.5_spec/1.1/geronimo-servlet_2.5_spec-1.1.jar"</span> /&gt;</span>
        <span class="code-tag">&lt;/javac&gt;</span>
    <span class="code-tag">&lt;/target&gt;</span>

    <span class="code-tag">&lt;target name=<span class="code-quote">"war"</span> depends=<span class="code-quote">"compile"</span>&gt;</span>
        <span class="code-tag">&lt;war destfile=<span class="code-quote">"college_fest.war"</span> webxml=<span class="code-quote">"WEB-INF/web.xml"</span>&gt;</span>
            <span class="code-tag">&lt;zipfileset dir=<span class="code-quote">"jsp"</span> prefix=<span class="code-quote">"jsp"</span>/&gt;</span>
            <span class="code-tag">&lt;zipfileset dir=<span class="code-quote">"pix"</span> prefix=<span class="code-quote">"pix"</span>/&gt;</span>
            <span class="code-tag">&lt;classes dir=<span class="code-quote">"${dest.dir}"</span>/&gt;</span>
            <span class="code-tag">&lt;webinf dir=<span class="code-quote">"WEB-INF"</span> /&gt;</span>
        <span class="code-tag">&lt;/war&gt;</span>
<span class="code-tag">&lt;/target&gt;</span>


<span class="code-tag">&lt;/project&gt;</span></pre>
</div></div>
<p>移行後のアプリケーションをビルドするには、コマンド行で追加のパラメーターの指定を一切せずに、<b>ant</b> コマンドを実行してください。大学祭アプリケーションのディレクトリー構造のルート・ディレクトリーにcollege_fest.warファイルが作成されます。</p>

<p>生成されたファイルを削除して、クリーンにビルドするには <b>ant</b> の次に <b>ant clean</b> を実行してください。<br/>
<a href="#4.9.JBosstoGeronimo-%E3%82%B5%E3%83%BC%E3%83%96%E3%83%AC%E3%83%83%E3%83%88%E3%81%A8JSP%E3%81%AE%E7%A7%BB%E8%A1%8C-top" title="top on 4.9. JBoss to Geronimo - サーブレットとJSPの移行">Back to Top</a></p>

<h2><a name="4.9.JBosstoGeronimo-%E3%82%B5%E3%83%BC%E3%83%96%E3%83%AC%E3%83%83%E3%83%88%E3%81%A8JSP%E3%81%AE%E7%A7%BB%E8%A1%8C-%E7%A7%BB%E8%A1%8C%E5%BE%8C%E3%81%AE%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AB%E3%83%BB%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AE%E3%83%87%E3%83%97%E3%83%AD%E3%82%A4"></a>移行後のサンプル・アプリケーションのデプロイ</h2>

<p>移行後の大学祭サンプル・アプリケーションをデプロイするために、Geronimoサーバーが起動していることを確認してください。</p>

<p>次に、コマンド行で <tt><b>&lt;geronimo_home&gt;/bin</b></tt> ディレクトリーに移動して、下記のコマンドを入力してください。</p>

<p><tt>deploy &#45;-user system &#45;-password manager deploy &lt;college_fest_home&gt;/college_fest.war</tt></p>

<p>アプリケーションがデプロイされたら、Webブラウザーを開き、以下のURLへアクセスします。</p>

<p><span class="nobr"><a href="http://localhost:8080/college_fest/" title="Visit page outside Confluence" rel="nofollow">http://localhost:8080/college_fest/<sup><img class="rendericon" src="/confluence/images/icons/linkext7.gif" height="7" width="7" align="absmiddle" alt="" border="0"/></sup></a></span></p>

<p>そしてJBoss環境での <a href="#4.9.JBosstoGeronimo-%E3%82%B5%E3%83%BC%E3%83%96%E3%83%AC%E3%83%83%E3%83%88%E3%81%A8JSP%E3%81%AE%E7%A7%BB%E8%A1%8C-test" title="test on 4.9. JBoss to Geronimo - サーブレットとJSPの移行">Testing the application アプリケーションのテスト</a> で行ったステップを繰り返してください。</p>

<p><a href="#4.9.JBosstoGeronimo-%E3%82%B5%E3%83%BC%E3%83%96%E3%83%AC%E3%83%83%E3%83%88%E3%81%A8JSP%E3%81%AE%E7%A7%BB%E8%A1%8C-top" title="top on 4.9. JBoss to Geronimo - サーブレットとJSPの移行">Back to Top</a></p>

<h1><a name="4.9.JBosstoGeronimo-%E3%82%B5%E3%83%BC%E3%83%96%E3%83%AC%E3%83%83%E3%83%88%E3%81%A8JSP%E3%81%AE%E7%A7%BB%E8%A1%8C-%E3%82%B5%E3%83%9E%E3%83%AA%E3%83%BC"></a>サマリー<a name="4.9.JBosstoGeronimo-%E3%82%B5%E3%83%BC%E3%83%96%E3%83%AC%E3%83%83%E3%83%88%E3%81%A8JSP%E3%81%AE%E7%A7%BB%E8%A1%8C-summary"></a></h1>

<p>この記事では、シンプルなサーブレットとJSPをJBossからGeronimoアプリケーション・サーバーに移行する方法を示しました。アプリケーションをビルド、デプロイ、実行してからGeronimo環境へ移行する手順を順番に行いました。</p>

<p>当記事を読み終えた方への特記事項:</p>
<ul>
	<li>Apache GeronimoはJettyとApache Tomcatの2種類のコンテナを提供しています。</li>
	<li>Geronimoへアプリケーションをデプロイするためのデプロイヤー・ツールの使用法を学びました。</li>
	<li>常にデプロイメント・プランが必要というわけではありません。アプリケーションがリソース参照を使用していないなら、Geronimoのデフォルトのデプロイメントを受け入れることもできます。</li>
</ul>
</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