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.2: Developing Clients for a JAX-WS Web Service (page edited)
Date Tue, 04 Nov 2008 20:20: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/GMOxDOC22">GMOxDOC22</a> :
            <a href="http://cwiki.apache.org/confluence/display/GMOxDOC22/Developing+Clients+for+a+JAX-WS+Web+Service">Developing Clients for a JAX-WS Web Service</a>
        </span>
    </div>

     <p>
        <a href="http://cwiki.apache.org/confluence/display/GMOxDOC22/Developing+Clients+for+a+JAX-WS+Web+Service">Developing Clients for a JAX-WS Web Service</a>
        has been edited by             <a href="http://cwiki.apache.org/confluence/display/~mcconne">Tim McConnell</a>
            <span class="smallfont">(Nov 04, 2008)</span>.
     </p>
    
     <p>
                 <a href="http://cwiki.apache.org/confluence/pages/diffpagesbyversion.action?pageId=93413&originalVersion=8&revisedVersion=9">(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/GMOxDOC22/Developing+a+simple+Calculator+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/GMOxDOC22/Developing+a+simple+Calculator+Web+Service">Developing a simple Calculator Web Service</a>&nbsp;</td><td width='33%' class='ScrollbarParent'><sup><a href="/confluence/display/GMOxDOC22/Web+services"><img border='0' align='middle' src='/confluence/images/icons/up_16.gif' width='8' height='8'></a></sup><a href="/confluence/display/GMOxDOC22/Web+services">Web services</a></td><td width='33%' class='ScrollbarNextName'>&nbsp;<a href="/confluence/display/GMOxDOC22/Developing+JAX-RPC+Web+Services">Developing JAX-RPC Web Services</a></td><td class='ScrollbarNextIcon'><a href="/confluence/display/GMOxDOC22/Developing+JAX-RPC+Web+Services"><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 Client in Apache Geronimo for a web services which are already deployed on the server</p>

<p>This tutorial will take you through the steps involved in creating a Web based Client and a POJO Client for a JAX-WS web service. Here we will only be needing the WSDL file of the web service deployed for creating the 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 Top Down Web Service from WSDL document which is already deployed on server.</p></td></tr></table>

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

<ol>
	<li>Sun JDK 6.0+ (J2SE 1.6)</li>
	<li>Eclipse IDE for Java EE Developers, which is platform specific</li>
	<li>Apache Geronimo Eclipse Plugin 2.1.x</li>
	<li>Apache Geronimo Server 2.1.x
<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>
<p>Geronimo version 2.1.x, Java 1.5 runtime, and Eclipse Ganymede are used is used in this tutorial but other versions can be used instead (e.g., Geronimo version 2.2, Java 1.6, Eclipse Europa)</p></td></tr></table></li>
</ol>


<p>Details on installing eclipse are provided in the <a href="/confluence/display/GMOxDOC22/Development+environment" title="Development environment">Development environment</a> 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>
<p>This tutorial assumes that you have completed the <a href="/confluence/display/GMOxDOC22/Developing+a+JAX-WS+POJO+Web+Service" title="Developing a JAX-WS POJO Web Service">Developing a JAX&#45;WS POJO Web Service</a> tutorial. Here we will try to develop the client for the web service deployed in the above mentioned tutorial.</p></td></tr></table>

<p>This tutorial will take you through the following steps:</p>
<div>
<ul>
  <li><a href='#DevelopingClientsforaJAX-WSWebService-WebbasedClient'>Web based Client</a>
<ul>
  <li><a href='#DevelopingClientsforaJAX-WSWebService-CreateaDynamicWebProjecttoconsumetheWebService'>Create a Dynamic Web Project to consume the Web Service</a></li>
  <li><a href='#DevelopingClientsforaJAX-WSWebService-CreatingnecessarystubstoconsumeWebService'>Creating necessary stubs to consume Web Service</a></li>
  <li><a href='#DevelopingClientsforaJAX-WSWebService-DevelopingtheWebbasedClient'>Developing the Web based Client</a></li>
  <li><a href='#DevelopingClientsforaJAX-WSWebService-Using%3Cserviceref%3EelementtoconsumeWebService%3A'>Using &lt;service-ref&gt; element to consume Web Service:</a></li>
  <li><a href='#DevelopingClientsforaJAX-WSWebService-DeployingandTestingtheWebClient'>Deploying and Testing the Web Client</a></li>
</ul></li>
  <li><a href='#DevelopingClientsforaJAX-WSWebService-POJOClient'>POJO Client</a>
<ul>
  <li><a href='#DevelopingClientsforaJAX-WSWebService-DevelopingtheClient'>Developing the Client</a></li>
  <li><a href='#DevelopingClientsforaJAX-WSWebService-Addingnecessaryjarfilestotheclasspath'>Adding necessary jar files to the class path</a></li>
  <li><a href='#DevelopingClientsforaJAX-WSWebService-Testing'>Testing</a></li>
</ul></li>
</ul></div>

<h1><a name="DevelopingClientsforaJAX-WSWebService-WebbasedClient"></a>Web based Client</h1>
<p>The following steps will help you in creating a Web based Client for a JAX-WS Web Service which is already deployed on the server.</p>

<h2><a name="DevelopingClientsforaJAX-WSWebService-CreateaDynamicWebProjecttoconsumetheWebService"></a>Create a Dynamic Web Project to consume the Web Service</h2>
<ul>
	<li>From Eclipse main menu, select <b>File-&gt;New-&gt;Other</b>
<br clear="all" /> <br clear="all" /></li>
	<li>In the <b>New</b> dialog, select <b>Web-&gt;Dynamic Web Project</b> and click <b>Next</b>
<br clear="all" /> <br clear="all" /></li>
	<li>Type <b>jaxws-converterclient</b> as the <b>Project Name</b> and click <b>Next</b>
<br clear="all" /> <br clear="all" /></li>
	<li>On the <b>Project Facets</b> page, the default selections are enough.
<br clear="all" /> <br clear="all" /> <img src="/confluence/download/attachments/93413/projectfacets.gif" align="absmiddle" border="0" /> <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" /></li>
	<li>On the <b>Geronimo Deployment Page</b> modify the <b>Group Id</b> to <b>org.apache.geronimo.samples.jaxws</b> and the <b>Artifact Id</b> to <b>jaxws-converterclient</b>.
<br clear="all" /> <br clear="all" /></li>
	<li>Click <b>Finish</b></li>
</ul>


<h2><a name="DevelopingClientsforaJAX-WSWebService-CreatingnecessarystubstoconsumeWebService"></a>Creating necessary stubs to consume Web Service</h2>
<p>We need to create Service Endpoint Interface based on the WSDL document to use it in out JSP's. Luckily in Geronimo this can be automated using the jaxws-tools utility provided by Geronimo.</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>
<p>Please take care that jaxws-tools.bat utility in server's bin directory may not work in old versions of Apache Geronimo. <br/>
Try using the latest version of Geronimo i.e <b>v2.1.1</b> .</p></td></tr></table>

<ul>
	<li>Open a command prompt and point it to the bin directory of server installation.
<br clear="all" /> <br clear="all" /></li>
	<li>We will use the <b>jaxws-tools</b> utility provided in the server's bin directory to generate client stubs.
<br clear="all" /> <br clear="all" /></li>
	<li>Use the following command to generate the necessary stubs that are needed to consume the web service.</li>
</ul>


<div class="code" style="border-style: solid; "><div class="codeHeader" style="border-bottom-style: solid; "><b>Client Stubs Generation</b></div><div class="codeContent">
<pre class="code-java">&lt;%SERVEER_INSTALLATION_BIN_DIR%&gt;:\ jaxws-tools.bat wsimport -s C:\WSDL http:<span class="code-comment">//localhost:8080/jaxws-conveter/converter?wsdl</span></pre>
</div></div>

<ul>
	<li>Now all the stubs should have been created and placed in <b>C:\WSDL</b> directory. We will be needing only the class <b>ConverterPortType</b> for accessing Web Service.
<br clear="all" /> <br clear="all" /> <img src="/confluence/download/attachments/93413/console.gif" align="absmiddle" border="0" /> <br clear="all" /> <br clear="all" /></li>
</ul>


<ul>
	<li>Copy the files <b>Converter.java</b> and <b>ConverterPortType.java</b> and place them in the appropriate folder according to their package declaration</li>
</ul>


<p>Let us walk through the steps that we just completed</p>

<ul>
	<li><b>Converter.java</b> - This file extends the <b>javax.xml.ws.Service</b> and provides method to create a service and retrieve port which is the Service Endpoint Interface for the Web Service deployed.</li>
</ul>


<ul>
	<li><b>ConverterPortType.java</b> - This is the same file that is used to deploy the Web Service. This is the Service Endpoint Interface that is required to access the Web Methods exposed by the Service.</li>
</ul>


<ul>
	<li><b>jaxws-tools.bat wsimport</b> - This is the utility in Geronimo which takes the help of <b>jaxws-tools</b> provided by <b>Sun</b> to create client stubs</li>
</ul>


<h2><a name="DevelopingClientsforaJAX-WSWebService-DevelopingtheWebbasedClient"></a>Developing the Web based Client</h2>
<ul>
	<li>Right Click the <b>jaxws-converterclient</b>, and Select <b>New-&gt;JSP</b>
<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" /></li>
	<li>Add the following code to the <b>index.jsp</b></li>
</ul>


<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">"index.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;br&gt;
&lt;jsp:include page=<span class="code-quote">"result.jsp"</span>&gt;&lt;/jsp:include&gt;
&lt;/center&gt;
&lt;/body&gt;
&lt;/html&gt;</pre>
</div></div>

<ul>
	<li>Right click again and add another jsp named <b>result.jsp</b>
<br clear="all" /> <br clear="all" /> </li>
	<li>Add the following code to <b>result.jsp</b></li>
</ul>


<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.math.BigDecimal"</span>%&gt;
&lt;%@ page <span class="code-keyword">import</span>=<span class="code-quote">"org.apache.geronimo.samples.jaxws.Converter"</span>%&gt;
&lt;%@ page <span class="code-keyword">import</span>=<span class="code-quote">"org.apache.geronimo.samples.jaxws.ConverterPortType"</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);
                        Converter conv = <span class="code-keyword">new</span> Converter();
			ConverterPortType port = conv.getConverterPort();
			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>

<h2><a name="DevelopingClientsforaJAX-WSWebService-Using%3Cserviceref%3EelementtoconsumeWebService%3A"></a>Using &lt;service-ref&gt; element to consume Web Service:</h2>
<ul>
	<li>In our previous <b>result.jsp</b> we accessed the Web Service by instantiating the Service class. This can slightly overhead the client application.
<br clear="all" /> <br clear="all" /></li>
	<li>We can also use <b>JNDI Naming</b> service to directly access our web service without instantiating any Service class.
<br clear="all" /> <br clear="all" /></li>
	<li>We need to add a service-ref element to <b>web.xml</b> to give necessary information about WSDL file location, Service name etc .,</li>
</ul>


<div class="code" style="border-style: solid; "><div class="codeHeader" style="border-bottom-style: solid; "><b>Modified web.xml</b></div><div class="codeContent">
<pre class="code-java">&lt;service-ref&gt;
	&lt;service-ref-name&gt;services/Converter&lt;/service-ref-name&gt;
	&lt;service-<span class="code-keyword">interface</span>&gt;
		org.apache.geronimo.samples.jaxws.Converter
	&lt;/service-<span class="code-keyword">interface</span>&gt;
	&lt;wsdl-file&gt;
		http:<span class="code-comment">//localhost:8080/jaxws-converter/converter?wsdl
</span>	&lt;/wsdl-file&gt;
&lt;/service-ref&gt;</pre>
</div></div>

<ul>
	<li>Let us walkthrough the elements that we added to <b>web.xml</b>
	<ul>
		<li><b>service-ref-name</b> - This is the name by which JNDI identifies our deployed service. The location that these services are located are <b>java:comp/env/&lt;service-ref-name&gt;</b></li>
		<li><b>service-interface</b> - This is the interface which client uses to access the web service and create necessary stubs under covers. This interface should compulsorily extend either <b>javax.xml.ws.Service</b> or <b>javax.xml.rpc.Service</b>. Observer that this is not the Service-Endpoint Interface that we used to deploy the service.</li>
		<li><b>wsdl-file</b> - The location of WSDL file specified the location of deployed web service. Suppose the web service is deployed at *<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>, then the WSDL file is located at *<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></li>
	</ul>
	</li>
	<li>The changes required in accessing the service are as follows:</li>
</ul>


<div class="code" style="border-style: solid; "><div class="codeHeader" style="border-bottom-style: solid; "><b>Modified result.jsp</b></div><div class="codeContent">
<pre class="code-java">........
Context ctx= <span class="code-keyword">new</span> InitialContext();
<span class="code-object">Object</span> obj = ctx.lookup(<span class="code-quote">"java:comp/env/services/Converter"</span>);
Converter service= (Converter) obj;
ConverterPortType port = service.getConverterPort();
BigDecimal rupees =port.dollarToRupees(dollars);
........</pre>
</div></div>

<h2><a name="DevelopingClientsforaJAX-WSWebService-DeployingandTestingtheWebClient"></a>Deploying and Testing the Web Client</h2>
<h3><a name="DevelopingClientsforaJAX-WSWebService-Deploy"></a>Deploy</h3>
<ul>
	<li>Right click on the <b>Apache Geronimo</b> Server Runtime present in the servers view and select <b>Add and Remove Projects</b>
<br clear="all" /> <br clear="all" /></li>
	<li>Add <b>jaxws-converterclient</b> to configured projects list and then click <b>Finish</b>
<br clear="all" /> <br clear="all" /></li>
	<li>Wait for some time till the server status changes to <b>Synchronized</b></li>
</ul>


<h3><a name="DevelopingClientsforaJAX-WSWebService-Testing"></a>Testing</h3>
<ul>
	<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" /> <img src="/confluence/download/attachments/93413/runonserver.gif" align="absmiddle" border="0" /> <br clear="all" /> <br clear="all" /></li>
	<li>In the popup, check the check box <b>Always use this server when running the project</b> and then click <b>Finish</b>
<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" /></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" /> <img src="/confluence/download/attachments/93413/weboutput.gif" align="absmiddle" border="0" /> <br clear="all" /> <br clear="all" /></li>
</ul>


<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> 

<h1><a name="DevelopingClientsforaJAX-WSWebService-POJOClient"></a>POJO Client</h1>

<p>Here we will have a look on how to create a plain old java client for consuming the web service.</p>

<h2><a name="DevelopingClientsforaJAX-WSWebService-DevelopingtheClient"></a>Developing the Client</h2>
<ul>
	<li>Create a Java Project
	<ul>
		<li>Select File-&gt;New-&gt;Project
<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" /></li>
		<li>Name the project as <b>jaxws-converterpojoclient</b> and click <b>Finish</b> in the <b>New Java Project</b> dialog.
<br clear="all" /> <br clear="all" /></li>
	</ul>
	</li>
	<li>Copy the files <b>Converter.java</b> and <b>ConverterPortType.java</b> into the appropriate package.
<br clear="all" /> <br clear="all" /></li>
	<li>Add another class with the name <b>ConverterClient.java</b> in the same package.
<br clear="all" /> <br clear="all" /></li>
	<li>Add the following code to the ConverterClient.java</li>
</ul>


<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">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);
			Converter conv = <span class="code-keyword">new</span> Converter();
			ConverterPortType port = conv.getConverterPort();
			BigDecimal result = port.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 = port.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>

<h2><a name="DevelopingClientsforaJAX-WSWebService-Addingnecessaryjarfilestotheclasspath"></a>Adding necessary jar files to the class path</h2>

<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 and understand SOAP messages sent by web service.</p></td></tr></table>

<ul>
	<li>Right click the <b>jaxws-converterpojoclient</b> project and then select <b>Properties</b>
<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" /> <img src="/confluence/download/attachments/93413/buildpath.gif" align="absmiddle" border="0" /> <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>
</ul>


<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(Axis2)</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-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>

<p>Also add Server Runtime Library to class path which reduces the effort for adding some more jars.</p>

<p>Note that these jars are used when JAX-WS Engine is configured as Axis2. If JAX-WS engine is configured as CXF the jars may differ slightly.</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. But you should copy all the files generated by wsimport command into appropriate packages as Runtime Modeller in Java 6 is slightly different.</p></td></tr></table> 

<h2><a name="DevelopingClientsforaJAX-WSWebService-Testing"></a>Testing</h2>

<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" /></li>
	<li>Now enter the amount in the console window of Eclipse
<br clear="all" /> <br clear="all" /></li>
	<li>The output will be shown which is retrieved by accessing the methods of Web service.
<br clear="all" /> <br clear="all" /> <img src="/confluence/download/attachments/93413/output.gif" align="absmiddle" border="0" /> <br clear="all" /> <br clear="all" /></li>
</ol>


<p>This completes the development and deployment of clients for consuming a Web Service. Even though this tutorial demonstrated for one particular Web Service, the method can be extended for any deployed web service.</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