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: Developing a JAX-WS POJO Web Service (page edited)
Date Thu, 26 Jun 2008 08:04: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/Developing+a+JAX-WS+POJO+Web+Service">Developing a JAX-WS POJO Web Service</a>
        </span>
    </div>

     <p>
        <a href="http://cwiki.apache.org/confluence/display/GMOxDOC21/Developing+a+JAX-WS+POJO+Web+Service">Developing a JAX-WS POJO Web Service</a>
        has been edited by             <a href="http://cwiki.apache.org/confluence/display/~sainathdreams@gmail.com">Sainath Chowdary</a>
            <span class="smallfont">(Jun 26, 2008)</span>.
     </p>
    
     <p>
                 <a href="http://cwiki.apache.org/confluence/pages/diffpagesbyversion.action?pageId=88900&originalVersion=9&revisedVersion=10">(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/Developing+a+JAX-WS+EJB+Stateless+Session+Bean+Web+Service"><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/Developing+a+JAX-WS+EJB+Stateless+Session+Bean+Web+Service">Developing a JAX-WS EJB Stateless Session Bean Web Service</a>&nbsp;</td><td width='33%' class='ScrollbarParent'><sup><a href="/confluence/display/GMOxDOC21/Web+services"><img border='0' align='middle' src='/confluence/images/icons/up_16.gif' width='8' height='8'></a></sup><a href="/confluence/display/GMOxDOC21/Web+services">Web services</a></td><td width='33%' class='ScrollbarNextName'>&nbsp;<a href="/confluence/display/GMOxDOC21/Developing+a+simple+Calculator+Web+Service">Developing a simple Calculator Web Service</a></td><td class='ScrollbarNextIcon'><a href="/confluence/display/GMOxDOC21/Developing+a+simple+Calculator+Web+Service"><img border='0' align='middle' src='/confluence/images/icons/forwd_16.gif' width='16' height='16'></a></td></tr></table></div>
<p>This tutorial will take you through the steps required in developing, deploying and testing a Web Service in Apache Geronimo. After completing this tutorial you should be able to understand how to develop simple JAX-WS compliant web services in Apache Geronimo using Eclipse development environment.</p>

<p>This application has a Java class which contains two functions, one which converts amount in Dollars to Rupees and the other which converts Rupees to Euros. We will expose these two methods as the services provided by our deployed Web Service.</p>

<p>We will also two types of clients to access the Web service. One is Web based client and the other one is a Java client.</p>

<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">Types of Web Services</b><br />
<p>For new users, Web Services can be created in two ways.</p>

<ul>
	<li>Bottom Up Web Service - creating web services from Java classes.</li>
	<li>Top Down Web Service - creating web services from WSDL document.</li>
</ul>


<p>This tutorial will help you in creating a Bottom Up Web Service from a Java class which will be exposed as a servlet to the client applications.</p></td></tr></table> 

<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. This tutorial will take you through the following steps:</p>
<div>
<ul>
  <li><a href='#DevelopingaJAX-WSPOJOWebService-SettingUpEclipseforApplicationDevelopment'>Setting Up Eclipse for Application Development</a></li>
  <li><a href='#DevelopingaJAX-WSPOJOWebService-CreatingtheWebServicesImplementationcode'>Creating the Web Services Implementation code</a></li>
  <li><a href='#DevelopingaJAX-WSPOJOWebService-SettingUptheDeploymentDescriptorandDeploymentPlan'>Setting Up the Deployment Descriptor and Deployment Plan</a></li>
  <li><a href='#DevelopingaJAX-WSPOJOWebService-DeployandTesttheWebService'>Deploy and Test the Web Service</a>
<ul>
  <li><a href='#DevelopingaJAX-WSPOJOWebService-Deploy'>Deploy</a></li>
  <li><a href='#DevelopingaJAX-WSPOJOWebService-Testing'>Testing</a></li>
</ul></li>
  <li><a href='#DevelopingaJAX-WSPOJOWebService-Developingaclient'>Developing a client</a>
<ul>
  <li><a href='#DevelopingaJAX-WSPOJOWebService-WebbasedClient'>Web based Client</a></li>
  <li><a href='#DevelopingaJAX-WSPOJOWebService-POJOClient'>POJO Client</a></li>
</ul></li>
</ul></div>


<h1><a name="DevelopingaJAX-WSPOJOWebService-SettingUpEclipseforApplicationDevelopment"></a>Setting Up Eclipse for Application Development</h1>
<ol>
	<li>Create a Dynamic Web Project
	<ul>
		<li>Select <b>File-&gt;New-&gt;Project</b>
<br clear="all" /> <br clear="all" /> <br clear="all" /> <img src="/confluence/download/attachments/88900/1.gif" align="absmiddle" border="0" /> <br clear="all" /> <br clear="all" /> <br clear="all" /> </li>
		<li>In the popup window, Select <b>Web-&gt;Dynamic Web Project</b> category and click <b>Next</b>
<br clear="all" /> <br clear="all" /> <br clear="all" /> <img src="/confluence/download/attachments/88900/2.gif" align="absmiddle" border="0" /> <br clear="all" /> <br clear="all" /> <br clear="all" /></li>
		<li>Type <b>jaxws-converter</b> as the <b>Project Name</b> and click <b>Next</b>..
<br clear="all" /> <br clear="all" /> <br clear="all" /> <img src="/confluence/download/attachments/88900/3.gif" align="absmiddle" border="0" /> <br clear="all" /> <br clear="all" /> <br clear="all" /></li>
		<li>The default options should work in the case of Geronimo as it has axis2 web container already running, click <b>Next</b>
<br clear="all" /> <br clear="all" /> <br clear="all" /> <img src="/confluence/download/attachments/88900/4.gif" align="absmiddle" border="0" /> <br clear="all" /> <br clear="all" /> <br clear="all" /></li>
		<li>Make sure that the check box <b>Generate Deployment Descriptor</b> is selected and click <b>Next</b>
<br clear="all" /> <br clear="all" /> <br clear="all" /> <img src="/confluence/download/attachments/88900/5.gif" align="absmiddle" border="0" /> <br clear="all" /> <br clear="all" /> <br clear="all" /></li>
		<li>Modify the <b>Group Id</b> to <b>org.apache.geronimo.samples.jaxws</b> and the <b>artifact id</b> to <b>jaxws-converter</b>.
<br clear="all" /> <br clear="all" /> <br clear="all" /> <img src="/confluence/download/attachments/88900/6.gif" align="absmiddle" border="0" /> <br clear="all" /> <br clear="all" /> <br clear="all" /></li>
		<li>Click <b>Finish</b></li>
	</ul>
	</li>
</ol>


<p>This completes the configuration of Eclipse for application development.</p>

<h1><a name="DevelopingaJAX-WSPOJOWebService-CreatingtheWebServicesImplementationcode"></a>Creating the Web Services Implementation code</h1>

<p>To deploy the Converter service we are going to create a POJO interface and a class and expose it as a servlet. The steps required are:</p>
<ol>
	<li>Right click on <b>JavaRsources:src</b> and select <b>New-&gt;Package</b>
<br clear="all" /> <br clear="all" /> <br clear="all" /> <img src="/confluence/download/attachments/88900/7.gif" align="absmiddle" border="0" /> <br clear="all" /> <br clear="all" /> <br clear="all" /></li>
	<li>Name the package to <b>org.apache.geronimo.samples.jaxws</b> and click <b>Finish</b>
<br clear="all" /> <br clear="all" /> <br clear="all" /> <img src="/confluence/download/attachments/88900/8.gif" align="absmiddle" border="0" /> <br clear="all" /> <br clear="all" /> <br clear="all" /></li>
	<li>Right click on the new package and select <b>New-&gt;Interface</b>
<br clear="all" /> <br clear="all" /> <br clear="all" /> <img src="/confluence/download/attachments/88900/interface1.gif" align="absmiddle" border="0" /> <br clear="all" /> <br clear="all" /> <br clear="all" /></li>
	<li>Name the interface as <b>Converter</b> and click <b>Finish</b>
<br clear="all" /> <br clear="all" /> <br clear="all" /> <img src="/confluence/download/attachments/88900/interface2.gif" align="absmiddle" border="0" /> <br clear="all" /> <br clear="all" /> <br clear="all" /></li>
	<li>Add the following code to the Converter class
<div class="code" style="border-style: solid; "><div class="codeHeader" style="border-bottom-style: solid; "><b>Converter.java</b></div><div class="codeContent">
<pre class="code-java"><span class="code-keyword">package</span> org.apache.geronimo.samples.jaxws;

<span class="code-keyword">import</span> java.math.BigDecimal;
<span class="code-keyword">import</span> javax.jws.WebService;

@WebService(name=<span class="code-quote">"ConverterPortType"</span>,
        targetNamespace = <span class="code-quote">"http:<span class="code-comment">//jaxws.samples.geronimo.apache.org"</span>)
</span><span class="code-keyword">public</span> <span class="code-keyword">interface</span> Converter {
	
	<span class="code-keyword">public</span> BigDecimal dollarToRupees(BigDecimal dollars);
	<span class="code-keyword">public</span> BigDecimal rupeesToEuro(BigDecimal rupees);

}</pre>
</div></div></li>
</ol>


<ol>
	<li>Right click on the new package and select <b>New-&gt;Class</b>
<br clear="all" /> <br clear="all" /> <br clear="all" /> <img src="/confluence/download/attachments/88900/9.gif" align="absmiddle" border="0" /> <br clear="all" /> <br clear="all" /> <br clear="all" /></li>
	<li>Name the class as <b>ConverterService</b> and click <b>Finish</b>
<br clear="all" /> <br clear="all" /> <br clear="all" /> <img src="/confluence/download/attachments/88900/10.gif" align="absmiddle" border="0" /> <br clear="all" /> <br clear="all" /> <br clear="all" /></li>
	<li>Add the following code to the ConverterService class
<div class="code" style="border-style: solid; "><div class="codeHeader" style="border-bottom-style: solid; "><b>ConverterService.java</b></div><div class="codeContent">
<pre class="code-java"><span class="code-keyword">package</span> org.apache.geronimo.samples.jaxws;

<span class="code-keyword">import</span> java.math.BigDecimal;

<span class="code-keyword">import</span> javax.jws.WebService;

@WebService(serviceName = <span class="code-quote">"Converter"</span>,
        portName=<span class="code-quote">"ConverterPort"</span>,
        endpointInterface = <span class="code-quote">"org.apache.geronimo.samples.jaxws.Converter"</span>,
        targetNamespace = <span class="code-quote">"http:<span class="code-comment">//jaxws.samples.geronimo.apache.org"</span>
</span>        )
<span class="code-keyword">public</span> class ConverterService{
	<span class="code-keyword">private</span> BigDecimal rupeeRate = <span class="code-keyword">new</span> BigDecimal(<span class="code-quote">"40.58"</span>);
	<span class="code-keyword">private</span> BigDecimal euroRate = <span class="code-keyword">new</span> BigDecimal(<span class="code-quote">"0.018368"</span>);

	<span class="code-keyword">public</span> BigDecimal dollarToRupees(BigDecimal dollars) {
		BigDecimal result = dollars.multiply(rupeeRate);
		<span class="code-keyword">return</span> result.setScale(2, BigDecimal.ROUND_UP);
	}

	<span class="code-keyword">public</span> BigDecimal rupeesToEuro(BigDecimal rupees) {
		BigDecimal result = rupees.multiply(euroRate);
		<span class="code-keyword">return</span> result.setScale(2, BigDecimal.ROUND_UP);
	}
}</pre>
</div></div></li>
</ol>


<p>Let us try to understand each annotation</p>
<ul>
	<li><b>@WebService</b>- This annotation can be used with a Java class as well as with interface. In our case we used it with both interface as well as the POJO. This annotation declares the POJO as a WebService. @WebService annotation is utilized in generating the WSDL file.
	<ul>
		<li><b>serviceName</b> is same as the WSDL element service</li>
		<li><b>name</b> is same as the WSDL element &lt;portType name&gt;</li>
		<li><b>endpointInterface</b> suggests the user defined name for the Service Endpoint Interface(SEI).</li>
		<li><b>portName</b> is the element portName</li>
		<li><b>targetNamespace</b> is the XML namespace of the WSDL and some of the XML elements generated from the WebService</li>
	</ul>
	</li>
	<li><b>@WebMethod</b>- This annotation is applied to a method to expose it as a WebService method. In case you have multiple methods you can use this annotation to selectively expose methods as WebService method. If you donot use this annotation all the public methods will be exposed as WebService.</li>
	<li><b>@WebParam</b>- This annotation is used along with @WebMethod annotation to define the WebService. It is used to customize parameter used in the message part of the wsdl.</li>
</ul>


<p>This completes the development of the Web Service Implementation code.</p>

<h1><a name="DevelopingaJAX-WSPOJOWebService-SettingUptheDeploymentDescriptorandDeploymentPlan"></a>Setting Up the Deployment Descriptor and Deployment Plan</h1>

<p>For the client applications to enquire about the services provided we need to create a WSDL file which provides the mapping between services exposed by web service and functions in the Java class</p>

<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">Some Typical Web Services Terminology</b><br />
<p>For new users, the terms that are most commonly used in Web Services are</p>

<ul>
	<li>Web Services Description Language (WSDL) - The WSDL defines services as collections of network endpoints, or ports</li>
	<li>Simple Object Access Protocol (SOAP) - SOAP is a protocol for exchanging XML-based messages over computer networks, normally using HTTP/HTTPS.</li>
	<li>Universal Description, Discovery and Integration (UDDI) - UDDI is a directory service where businesses can register and search for Web services</li>
</ul>

</td></tr></table> 

<ol>
	<li>Expand <b>WEB-INF</b> directory and add the following code to web.xml
<div class="code"><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>
&lt;web-app <span class="code-keyword">xmlns:xsi</span>=<span class="code-quote">"http://www.w3.org/2001/XMLSchema-instance"</span>
	xmlns=<span class="code-quote">"http://java.sun.com/xml/ns/javaee"</span>
	<span class="code-keyword">xmlns:web</span>=<span class="code-quote">"http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"</span>
	xsi:schemaLocation=<span class="code-quote">"http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"</span>
	id=<span class="code-quote">"WebApp_ID"</span> version=<span class="code-quote">"2.5"</span>&gt;
	<span class="code-tag">&lt;display-name&gt;</span>Converter<span class="code-tag">&lt;/display-name&gt;</span>
	<span class="code-tag">&lt;servlet&gt;</span>
		<span class="code-tag">&lt;display-name&gt;</span>Converter<span class="code-tag">&lt;/display-name&gt;</span>
		<span class="code-tag">&lt;servlet-name&gt;</span>Converter<span class="code-tag">&lt;/servlet-name&gt;</span>
		<span class="code-tag">&lt;servlet-class&gt;</span>
			org.apache.geronimo.samples.jaxws.ConverterService
		<span class="code-tag">&lt;/servlet-class&gt;</span>
	<span class="code-tag">&lt;/servlet&gt;</span>

	<span class="code-tag">&lt;servlet-mapping&gt;</span>
		<span class="code-tag">&lt;servlet-name&gt;</span>Converter<span class="code-tag">&lt;/servlet-name&gt;</span>
		<span class="code-tag">&lt;url-pattern&gt;</span>/converter<span class="code-tag">&lt;/url-pattern&gt;</span>
	<span class="code-tag">&lt;/servlet-mapping&gt;</span>

<span class="code-tag">&lt;/web-app&gt;</span></pre>
</div></div></li>
</ol>


<p>This completes the setting up of Deployment descriptor and Deployment Plan.</p>

<h1><a name="DevelopingaJAX-WSPOJOWebService-DeployandTesttheWebService"></a>Deploy and Test the Web Service</h1>
<p>Now, we will look into the steps involved in deploying and testing our web service without any clients.</p>

<h2><a name="DevelopingaJAX-WSPOJOWebService-Deploy"></a>Deploy</h2>
<ol>
	<li>Right click on the <b>Apache Geronimo</b> Server Runtime present in the servers view and select <b>Add or Remove Projects</b>
<br clear="all" /> <br clear="all" /> <br clear="all" /> <img src="/confluence/download/attachments/88900/11.gif" align="absmiddle" border="0" /> <br clear="all" /> <br clear="all" /> <br clear="all" /></li>
	<li>In the popup dialog, select the <b>jaxws-converter</b> project and click <b>Add</b>
<br clear="all" /> <br clear="all" /> <br clear="all" /> <img src="/confluence/download/attachments/88900/12.gif" align="absmiddle" border="0" /> <br clear="all" /> <br clear="all" /> <br clear="all" /></li>
	<li>Make sure that <b>jaxws-converter</b> is in the <b>configured projects</b> list and then click <b>Finish</b>
<br clear="all" /> <br clear="all" /> <br clear="all" /> <img src="/confluence/download/attachments/88900/13.gif" align="absmiddle" border="0" /> <br clear="all" /> <br clear="all" /> <br clear="all" /></li>
	<li>Wait for some time till the server status is changed to synchronized.</li>
</ol>


<h2><a name="DevelopingaJAX-WSPOJOWebService-Testing"></a>Testing</h2>
<ol>
	<li>Once the application is deployed on to the server, Launch a browser and go to the following url.<br/>
<span class="nobr"><a href="http://localhost:8080/jaxws-converter/converter" title="Visit page outside Confluence" rel="nofollow">http://localhost:8080/jaxws-converter/converter<sup><img class="rendericon" src="/confluence/images/icons/linkext7.gif" height="7" width="7" align="absmiddle" alt="" border="0"/></sup></a></span></li>
	<li>Now you should see the screen telling that this is Converter Web Service
<br clear="all" /> <br clear="all" /> <br clear="all" /> <img src="/confluence/download/attachments/88900/14.gif" align="absmiddle" border="0" /> <br clear="all" /> <br clear="all" /> <br clear="all" />
<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">WSDL File</b><br />
<p>You can also view the WSDL file generated by Geronimo based on the annotations specified by going to the following url<br/>
<span class="nobr"><a href="http://localhost:8080/jaxws-converter/converter?wsdl" title="Visit page outside Confluence" rel="nofollow">http://localhost:8080/jaxws-converter/converter?wsdl<sup><img class="rendericon" src="/confluence/images/icons/linkext7.gif" height="7" width="7" align="absmiddle" alt="" border="0"/></sup></a></span></p></td></tr></table> </li>
</ol>


<h3><a name="DevelopingaJAX-WSPOJOWebService-UsingWebServicesExplorerinEclipse"></a>Using Web Services Explorer in Eclipse</h3>
<ol>
	<li>Go to <b>Eclipse</b> and <b>Run-&gt;Launch the Web Services Explorer</b> from the main menu.
<br clear="all" /> <br clear="all" /> <br clear="all" /> <img src="/confluence/download/attachments/88900/15.gif" align="absmiddle" border="0" /> <br clear="all" /> <br clear="all" /> <br clear="all" /></li>
	<li>Click the <b>WSDL</b> icon to go to the <b>WSDL main page</b>.
<br clear="all" /> <br clear="all" /> <br clear="all" /> <img src="/confluence/download/attachments/88900/16.gif" align="absmiddle" border="0" /> <br clear="all" /> <br clear="all" /> <br clear="all" /></li>
	<li>Click the <b>WSDL main</b> link to enter the URL of WSDL document.
<br clear="all" /> <br clear="all" /> <br clear="all" /> <img src="/confluence/download/attachments/88900/17.gif" align="absmiddle" border="0" /> <br clear="all" /> <br clear="all" /> <br clear="all" /></li>
	<li>Enter the URL of our WSDL document i.e <span class="nobr"><a href="http://localhost:8080/jaxws-converter/converter?wsdl" title="Visit page outside Confluence" rel="nofollow">http://localhost:8080/jaxws-converter/converter?wsdl<sup><img class="rendericon" src="/confluence/images/icons/linkext7.gif" height="7" width="7" align="absmiddle" alt="" border="0"/></sup></a></span> in the form and click <b>Go</b>
<br clear="all" /> <br clear="all" /> <br clear="all" /> <img src="/confluence/download/attachments/88900/18.gif" align="absmiddle" border="0" /> <br clear="all" /> <br clear="all" /> <br clear="all" /></li>
	<li>Now you can see the methods that are exposed by our Web Service.
<br clear="all" /> <br clear="all" /> <br clear="all" /> <img src="/confluence/download/attachments/88900/19.gif" align="absmiddle" border="0" /> <br clear="all" /> <br clear="all" /> <br clear="all" /></li>
	<li>Clicking on any method takes us to a page with form asking for input parameters.If you dont see any field to enter input arguments click <b>Add</b>.
<br clear="all" /> <br clear="all" /> <br clear="all" /> <img src="/confluence/download/attachments/88900/20.gif" align="absmiddle" border="0" /> <br clear="all" /> <br clear="all" /> <br clear="all" /></li>
	<li>Enter any argument and examine the status frame at the bottom to see the result.
<br clear="all" /> <br clear="all" /> <br clear="all" /> <img src="/confluence/download/attachments/88900/21.gif" align="absmiddle" border="0" /> <br clear="all" /> <br clear="all" /> <br clear="all" /></li>
</ol>


<p>This concludes our deploy and test section.</p>

<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">Generated files by Geronimo</b><br />
<p>For our convenience Geronimo automatically generates the required files to deploy the Web Services. The WSDL file is created by Geronimo after processing the annotations in our source file.</p>

<p>You can see the Geronimo created files in the directory <b>&lt;INSTALL_DIR&gt;/repository/org/apache/geronimo/samples/jaxws/jaxws-converter/1.0/jaxws-converter-1.0.car/</b>, at this location you can find a new directory which geronimo created for deploying the web service which contains the WSDL file and other required stubs.</p></td></tr></table>
<p><br clear="all" /></p>
<table cellpadding='5' width='85%' cellspacing='8px' class='tipMacro' border="0" align='center'><colgroup><col width='24'><col></colgroup><tr><td valign='top'><img src="/confluence/images/icons/emoticons/check.gif" width="16" height="16" align="absmiddle" alt="" border="0"></td><td><b class="strong">How Geronimo creates the WSDL and other required files?</b><br />
<p>Geronimo has a inbuilt plugin names <b>jaxws-builder</b> which helps in creating the WSDL and other required files to deploy the web service by using the <b>jaxws-tools</b> provided by <b>Sun</b></p>

<p>Try looking into source of <b>jaxws-builder</b> to better understand how the necessary files are getting created.</p></td></tr></table>

<h1><a name="DevelopingaJAX-WSPOJOWebService-Developingaclient"></a>Developing a client</h1>
<p>Now, we will focus on developing a client for our application. We will develop two types of clients to demonstrate how web services can be consumed in both cases.</p>
<ul>
	<li>A Web based client</li>
	<li>POJO client</li>
</ul>


<h2><a name="DevelopingaJAX-WSPOJOWebService-WebbasedClient"></a>Web based Client</h2>
<p>Now we will go through the steps involved in creating a client for consuming the web service just deployed.</p>

<h3><a name="DevelopingaJAX-WSPOJOWebService-DevelopingtheWebbasedClient"></a>Developing the Web based Client</h3>
<ol>
	<li>Right Click the <b>jaxws-converter</b>, and Select <b>New-&gt;JSP</b>
<br clear="all" /> <br clear="all" /> <br clear="all" /> <img src="/confluence/download/attachments/88900/22.gif" align="absmiddle" border="0" /> <br clear="all" /> <br clear="all" /> <br clear="all" /></li>
	<li>Name the jsp as <b>index.jsp</b> and click <b>Finish</b>
<br clear="all" /> <br clear="all" /> <br clear="all" /> <img src="/confluence/download/attachments/88900/23.gif" align="absmiddle" border="0" /> <br clear="all" /> <br clear="all" /> <br clear="all" /></li>
	<li>Add the following code to the <b>index.jsp</b></li>
</ol>


<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;html&gt;
&lt;head&gt;
&lt;title&gt;Converter&lt;/title&gt;
&lt;meta content=<span class="code-quote">"text/html; CHARSET=iso-8859-1"</span> http-equiv=<span class="code-quote">"Content-Type"</span>&gt;
&lt;/head&gt;

&lt;body&gt;
&lt;center&gt;
&lt;h3&gt;This from invokes a Web Service.&lt;/h3&gt;
&lt;br&gt;
Please type an amount and click submit to see the result.
&lt;form action=<span class="code-quote">"result.jsp"</span>&gt;Amount(in Dollars): &lt;input type=<span class="code-quote">"text"</span>
	name=<span class="code-quote">"amount"</span>&gt; &lt;input type=<span class="code-quote">"submit"</span> value=<span class="code-quote">"Submit"</span>&gt;&lt;/form&gt;
&lt;br&gt;
&lt;/center&gt;
&lt;/body&gt;
&lt;/html&gt;</pre>
</div></div>

<ol>
	<li>Right click again and add another jsp named <b>result.jsp</b>
<br clear="all" /> <br clear="all" /> <br clear="all" /> <img src="/confluence/download/attachments/88900/24.gif" align="absmiddle" border="0" /> <br clear="all" /> <br clear="all" /> <br clear="all" /></li>
	<li>Add the following code to <b>result.jsp</b></li>
</ol>


<div class="code" style="border-style: solid; "><div class="codeHeader" style="border-bottom-style: solid; "><b>result.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;%@page <span class="code-keyword">import</span>=<span class="code-quote">"java.net.URL"</span>%&gt;
&lt;%@page <span class="code-keyword">import</span>=<span class="code-quote">"javax.xml.namespace.QName"</span>%&gt;
&lt;%@page <span class="code-keyword">import</span>=<span class="code-quote">"java.math.BigDecimal"</span>%&gt;
&lt;%@ page <span class="code-keyword">import</span>=<span class="code-quote">"javax.xml.ws.Service"</span>%&gt;
&lt;%@ page <span class="code-keyword">import</span>=<span class="code-quote">"org.apache.geronimo.samples.jaxws.Converter"</span>%&gt;
&lt;html&gt;
&lt;head&gt;
&lt;title&gt;Converter&lt;/title&gt;
&lt;meta content=<span class="code-quote">"text/html; CHARSET=iso-8859-1"</span> http-equiv=<span class="code-quote">"Content-Type"</span>&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;%
	<span class="code-object">String</span> amount = request.getParameter(<span class="code-quote">"amount"</span>);

	<span class="code-keyword">if</span> (amount != <span class="code-keyword">null</span> &amp;&amp; amount.trim().length() &gt; 0) {

		out.println(<span class="code-quote">"&lt;center&gt;"</span>);

		<span class="code-keyword">try</span> {
			BigDecimal dollars = <span class="code-keyword">new</span> BigDecimal(amount);
			URL url = <span class="code-keyword">new</span> URL(
					<span class="code-quote">"http:<span class="code-comment">//localhost:8080/jaxws-converter/converter?wsdl"</span>);
</span>			QName qname = <span class="code-keyword">new</span> QName(
					<span class="code-quote">"http:<span class="code-comment">//jaxws.samples.geronimo.apache.org"</span>,
</span>					<span class="code-quote">"Converter"</span>);
			Service service = Service.create(url, qname);
			Converter conv = (Converter) service
					.getPort(Converter.class);
			BigDecimal rupees = conv.dollarToRupees(dollars);
			BigDecimal euros = conv.rupeesToEuro(rupees);

			out.println(dollars + <span class="code-quote">" Dollars equals to "</span> + rupees
					+ <span class="code-quote">" Rupees"</span>);
			out.println(<span class="code-quote">"&lt;br&gt;"</span>);
			out.println(rupees + <span class="code-quote">" Rupees equals to "</span> + euros
					+ <span class="code-quote">" Euros"</span>);

		} <span class="code-keyword">catch</span> (Exception e) {
			out.println(<span class="code-quote">"Error: "</span> + e.getMessage());
		}

		out.println(<span class="code-quote">"&lt;center&gt;"</span>);
	}
%&gt;
&lt;/body&gt;
&lt;/html&gt;</pre>
</div></div>

<p>This concludes the development section of our web based client.</p>

<h3><a name="DevelopingaJAX-WSPOJOWebService-DeployingandTestingtheWebClient"></a>Deploying and Testing the Web Client</h3>

<h4><a name="DevelopingaJAX-WSPOJOWebService-Deploy"></a>Deploy</h4>
<ol>
	<li>Right now our server status might be reporting that we need to republish.
<br clear="all" /> <br clear="all" /> <br clear="all" /> <img src="/confluence/download/attachments/88900/25.gif" align="absmiddle" border="0" /> <br clear="all" /> <br clear="all" /> <br clear="all" /></li>
	<li>Right click on the <b>Apache Geronimo</b> Server Runtime present in the servers view and select <b>Publish</b>
<br clear="all" /> <br clear="all" /> <br clear="all" /> <img src="/confluence/download/attachments/88900/26.gif" align="absmiddle" border="0" /> <br clear="all" /> <br clear="all" /> <br clear="all" /></li>
	<li>Wait for some time till the server status changes to <b>Synchronized</b></li>
</ol>


<h4><a name="DevelopingaJAX-WSPOJOWebService-Testing"></a>Testing</h4>
<ol>
	<li>Right click the <b>index.jsp</b> present under WebContent directory of our project and select <b>Run As-&gt;Run On Server</b>
<br clear="all" /> <br clear="all" /> <br clear="all" /> <img src="/confluence/download/attachments/88900/27.gif" align="absmiddle" border="0" /> <br clear="all" /> <br clear="all" /> <br clear="all" /></li>
	<li>In the popup, check the check box <b>Always use this servr when running the project</b> and then click <b>Finish</b>
<br clear="all" /> <br clear="all" /> <br clear="all" /> <img src="/confluence/download/attachments/88900/28.gif" align="absmiddle" border="0" /> <br clear="all" /> <br clear="all" /> <br clear="all" /></li>
	<li>Now Eclipse will try to open the jsp in a web browser which shows you a form to enter amount in Dollars.
<br clear="all" /> <br clear="all" /> <br clear="all" /> <img src="/confluence/download/attachments/88900/29.gif" align="absmiddle" border="0" /> <br clear="all" /> <br clear="all" /> <br clear="all" /></li>
	<li>Enter any amount and press <b>submit</b>, the jsp should display the result that is returned by the web service.
<br clear="all" /> <br clear="all" /> <br clear="all" /> <img src="/confluence/download/attachments/88900/30.gif" align="absmiddle" border="0" /> <br clear="all" /> <br clear="all" /> <br clear="all" /></li>
</ol>


<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">Converter</b><br />
<p>Note that we accessed the webservice in the jsp by creating a <b>service</b>, and then retrieving the <b>Converter</b> port from the WSDL document.</p></td></tr></table>

<h2><a name="DevelopingaJAX-WSPOJOWebService-POJOClient"></a>POJO Client</h2>
<p>Here we will have a look on how to create a plain old java client for consuming the web service.</p>

<h3><a name="DevelopingaJAX-WSPOJOWebService-DevelopingtheClient"></a>Developing the Client</h3>
<ol>
	<li>Create a Java Project
	<ul>
		<li>Select File-&gt;New-&gt;Project
<br clear="all" /> <br clear="all" /> <br clear="all" /> <img src="/confluence/download/attachments/88900/1.gif" align="absmiddle" border="0" /> <br clear="all" /> <br clear="all" /> <br clear="all" /></li>
		<li>In the popup window select <b>Java-&gt;Java Project</b> and then click <b>Next</b>
<br clear="all" /> <br clear="all" /> <br clear="all" /> <img src="/confluence/download/attachments/88900/31.gif" align="absmiddle" border="0" /> <br clear="all" /> <br clear="all" /> <br clear="all" /></li>
		<li>Name the project as <b>jaxws-converterclient</b> and then click <b>Next</b>
<br clear="all" /> <br clear="all" /> <br clear="all" /> <img src="/confluence/download/attachments/88900/32.gif" align="absmiddle" border="0" /> <br clear="all" /> <br clear="all" /> <br clear="all" /></li>
		<li>Now go to the <b>Projects</b> tab and click <b>Add</b>
<br clear="all" /> <br clear="all" /> <br clear="all" /> <img src="/confluence/download/attachments/88900/33.gif" align="absmiddle" border="0" /> <br clear="all" /> <br clear="all" /> <br clear="all" /></li>
		<li>Select the <b>jaxws-converter</b> project in the next page and click <b>Ok</b>
<br clear="all" /> <br clear="all" /> <br clear="all" /> <img src="/confluence/download/attachments/88900/34.gif" align="absmiddle" border="0" /> <br clear="all" /> <br clear="all" /> <br clear="all" /></li>
		<li>Now click <b>Finish</b> in the <b>New Java Project</b> dialog.</li>
	</ul>
	</li>
</ol>


<ol>
	<li>Right click the <b>src</b> directory and select <b>New-&gt;Package</b>
<br clear="all" /> <br clear="all" /> <br clear="all" /> <img src="/confluence/download/attachments/88900/35.gif" align="absmiddle" border="0" /> <br clear="all" /> <br clear="all" /> <br clear="all" /></li>
	<li>Name the package as <b>org.apache.geronimo.samples.jaxws</b> and click <b>Finish</b>
<br clear="all" /> <br clear="all" /> <br clear="all" /> <img src="/confluence/download/attachments/88900/36.gif" align="absmiddle" border="0" /> <br clear="all" /> <br clear="all" /> <br clear="all" /></li>
	<li>Right click the newly created package and select <b>New-&gt;Class</b>
<br clear="all" /> <br clear="all" /> <br clear="all" /> <img src="/confluence/download/attachments/88900/37.gif" align="absmiddle" border="0" /> <br clear="all" /> <br clear="all" /> <br clear="all" /></li>
	<li>Name the class as <b>ConverterClient</b> and click <b>Finish</b>
<br clear="all" /> <br clear="all" /> <br clear="all" /> <img src="/confluence/download/attachments/88900/38.gif" align="absmiddle" border="0" /> <br clear="all" /> <br clear="all" /> <br clear="all" /></li>
	<li>Add the following code to the ConverterClient.java</li>
</ol>


<div class="code" style="border-style: solid; "><div class="codeHeader" style="border-bottom-style: solid; "><b>ConverterClient.java</b></div><div class="codeContent">
<pre class="code-java"><span class="code-keyword">package</span> org.apache.geronimo.samples.jaxws;

<span class="code-keyword">import</span> java.io.BufferedReader;
<span class="code-keyword">import</span> java.io.InputStreamReader;
<span class="code-keyword">import</span> java.math.BigDecimal;
<span class="code-keyword">import</span> java.net.URL;

<span class="code-keyword">import</span> javax.xml.namespace.QName;
<span class="code-keyword">import</span> javax.xml.ws.Service;

<span class="code-keyword">public</span> class ConverterClient {
	<span class="code-keyword">public</span> <span class="code-keyword">static</span> void main(<span class="code-object">String</span> args[]) {
		<span class="code-keyword">try</span> {
			BufferedReader dataIn = <span class="code-keyword">new</span> BufferedReader(<span class="code-keyword">new</span> InputStreamReader(<span class="code-object">System</span>.in));
			<span class="code-object">System</span>.out.println(<span class="code-quote">"enter a amount to convert:"</span>);
			<span class="code-object">String</span> number = <span class="code-keyword">new</span> <span class="code-object">String</span>();
			number = dataIn.readLine();
			BigDecimal amount  = <span class="code-keyword">new</span> BigDecimal(number);
	        URL url = <span class="code-keyword">new</span> URL(<span class="code-quote">"http:<span class="code-comment">//localhost:8080/jaxws-converter/converter?wsdl"</span>);
</span>			QName qname = <span class="code-keyword">new</span> QName(<span class="code-quote">"http:<span class="code-comment">//jaxws.samples.geronimo.apache.org"</span>,<span class="code-quote">"Converter"</span>);
</span>			Service service = Service.create(url, qname);
			Converter conv =(Converter)service.getPort(Converter.class);
			BigDecimal result = conv.dollarToRupees(amount);
			<span class="code-object">System</span>.out.println(amount+<span class="code-quote">" dollars equals to "</span>+result+<span class="code-quote">" rupees"</span>);
			BigDecimal result1 = conv.rupeesToEuro(result);
			<span class="code-object">System</span>.out.println(result+<span class="code-quote">" rupees equals to "</span>+result1+<span class="code-quote">" euros"</span>);
		} <span class="code-keyword">catch</span> (Exception e) {
			e.printStackTrace();
		}
	}

}</pre>
</div></div>

<p>This completes the development section of our POJO client</p>

<h3><a name="DevelopingaJAX-WSPOJOWebService-Addingnecessaryjarfilestotheclasspath"></a>Adding necessary jar files to the class path</h3>

<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><b class="strong">Errors in Java Project</b><br />
<p>Now our Java project might show many errors and even if we resolve the errors the application may not run properly. This is due to the missing jar files required to access web service in class path</p></td></tr></table>

<ol>
	<li>Right click the <b>jaxws-converterclient</b> project and then select <b>Properties</b>
<br clear="all" /> <br clear="all" /> <br clear="all" /> <img src="/confluence/download/attachments/88900/39.gif" align="absmiddle" border="0" /> <br clear="all" /> <br clear="all" /> <br clear="all" /></li>
	<li>Select <b>Java Build Path</b> and then go to <b>Libraries</b> tab
<br clear="all" /> <br clear="all" /> <br clear="all" /> <img src="/confluence/download/attachments/88900/40.gif" align="absmiddle" border="0" /> <br clear="all" /> <br clear="all" /> <br clear="all" /></li>
	<li>Click on <b>Add External JARS</b> and then add the <b>axis2-adb-1.3.jar</b> from the location <b>&lt;GERONIMO_INSTALL_DIR&gt;/repository/org/apache/axis2/axis2-adb/1.3/</b> and then click <b>Open</b>
<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">Version Numbers</b><br />
<p>The version numbers may differ slightly. It wont matter much.</p></td></tr></table> </li>
	<li>Repeat the above step for the following external JARS</li>
</ol>


<div class="panel" style="border-style: solid; border-color: #ccc; "><div class="panelHeader" style="border-bottom-style: solid; border-bottom-color: #ccc; background-color: #F7D6C1; "><b>External JARS Required</b></div><div class="panelContent" style="background-color: #FFFFCE; ">
<p><b>axis2-adb-1.3.jar</b> - &lt;GERONIMO_INSTALL_DIR&gt;/repository/org/apache/axis2/axis2-adb/1.3/axis2-adb-1.3.jar<br/>
<b>axis2-java2wsdl-1.3.jar</b> - &lt;GERONIMO_INSTALL_DIR&gt;\repository\org\apache\axis2\axis2-java2wsdl\1.3\axis2-java2wsdl-1.3.jar<br/>
<b>axis2-jaxws-1.3.jar</b> - &lt;GERONIMO_INSTALL_DIR&gt;\repository\org\apache\axis2\axis2-jaxws\1.3\axis2-jaxws-1.3.jar<br/>
<b>axis2-jaxws-api-1.3.jar</b> - &lt;GERONIMO_INSTALL_DIR&gt;\repository\org\apache\axis2\axis2-jaxws-api\1.3\axis2-jaxws-api-1.3.jar<br/>
<b>axis2-kernel-1.3.jar</b> - &lt;GERONIMO_INSTALL_DIR&gt;\repository\org\apache\axis2\axis2-kernel\1.3\axis2-kernel-1.3.jar<br/>
<b>axis2-metadata-1.3.jar</b> - &lt;GERONIMO_INSTALL_DIR&gt;\repository\org\apache\axis2\axis2-metadata\1.3\axis2-metadata-1.3.jar<br/>
<b>axis2-saaj-1.3.jar</b> - &lt;GERONIMO_INSTALL_DIR&gt;\repository\org\apache\axis2\axis2-saaj\1.3\axis2-saaj-1.3.jar<br/>
<b>axiom-api-1.2.5.jar</b> - &lt;GERONIMO_INSTALL_DIR&gt;\repository\org\apache\ws\commons\axiom\axiom-api\1.2.5\axiom-api-1.2.5.jar<br/>
<b>axiom-dom-1.2.5.jar</b> - &lt;GERONIMO_INSTALL_DIR&gt;\repository\org\apache\ws\commons\axiom\axiom-dom\1.2.5\axiom-dom-1.2.5.jar<br/>
<b>axiom-impl-1.2.5.jar</b> - &lt;GERONIMO_INSTALL_DIR&gt;\repository\org\apache\ws\commons\axiom\axiom-impl\1.2.5\axiom-impl-1.2.5.jar<br/>
<b>XmlSchema-1.3.1.jar</b> - &lt;GERONIMO_INSTALL_DIR&gt;\repository\org\apache\ws\commons\schema\XmlSchema\1.3.1\XmlSchema-1.3.1.jar<br/>
<b>neethi-2.0.jar</b> - &lt;GERONIMO_INSTALL_DIR&gt;\repository\org\apache\neethi\neethi\2.0\neethi-2.0.jar<br/>
<b>wsdl4j-1.6.1.jar</b> - &lt;GERONIMO_INSTALL_DIR&gt;\repository\wsdl4j\wsdl4j\1.6.1\wsdl4j-1.6.1.jar<br/>
<b>xml-resolver-1.1.jar</b> - &lt;GERONIMO_INSTALL_DIR&gt;\repository\xml-resolver\xml-resolver\1.1\xml-resolver-1.1.jar<br/>
<b>xml-beans-2.3.0.jar</b> - &lt;GERONIMO_INSTALL_DIR&gt;\repository\org\apache\xmlbeans\xmlbeans\2.3.0\xmlbeans-2.3.0.jar<br/>
<b>commons-codec-1.3.jar</b> - &lt;GERONIMO_INSTALL_DIR&gt;\repository\commons-codec\commons-codec\1.3\commons-codec-1.3.jar<br/>
<b>commons-httpclient-3.0.1.jar</b> - &lt;GERONIMO_INSTALL_DIR&gt;\repository\commons-httpclient\commons-httpclient\3.0.1\commons-httpclient-3.0.1.jar<br/>
<b>wstx-asl-3.2.1.jar</b> - &lt;GERONIMO_INSTALL_DIR&gt;\repository\woodstox\wstx-asl\3.2.1\wstx-asl-3.2.1.jar</p>
</div></div>

<p>This completes the adding external JARs to the project</p>
<table cellpadding='5' width='85%' cellspacing='8px' class='tipMacro' border="0" align='center'><colgroup><col width='24'><col></colgroup><tr><td valign='top'><img src="/confluence/images/icons/emoticons/check.gif" width="16" height="16" align="absmiddle" alt="" border="0"></td><td><b class="strong">JRE 6</b><br />
<p>If you are running Java 6 you don't need to worry about the external JARs as they are all inbuilt into JRE 6.</p></td></tr></table> 

<h3><a name="DevelopingaJAX-WSPOJOWebService-Testing"></a>Testing</h3>

<ol>
	<li>Now Right click the <b>ConverterClient.class</b> and select <b>Run As-&gt;Run as Java Application</b>
<br clear="all" /> <br clear="all" /> <br clear="all" /> <img src="/confluence/download/attachments/88900/42.gif" align="absmiddle" border="0" /> <br clear="all" /> <br clear="all" /> <br clear="all" /></li>
	<li>Now enter the amount in the console window of Eclipse</li>
	<li>The output will be shown which is retrieved by accessing the methods of Web service.
<br clear="all" /> <br clear="all" /> <br clear="all" /> <img src="/confluence/download/attachments/88900/43.gif" align="absmiddle" border="0" /> <br clear="all" /> <br clear="all" /> <br clear="all" /></li>
</ol>


<p>This completes the process of deploying the web services in Geronimo and developing different types of clients. Completing this tutorial should give you a solid understanding about the deployment and consumption of Web Services in Apache Geronimo.<br/>
Also Look at the way Geronimo simplified our lives by creating all the necessary files automatically when we deploy the application.</p></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