<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<title>Service</title>
<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
    try {
        if (location.href.indexOf('is-external=true') == -1) {
            parent.document.title="Service";
        }
    }
    catch(err) {
    }
//-->
var methods = {"i0":10,"i1":9,"i2":9,"i3":9,"i4":9,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../index-all.html">Index</a></li>
<li><a href="../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../javax/xml/ws/ResponseWrapper.html" title="annotation in javax.xml.ws"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../javax/xml/ws/Service.Mode.html" title="enum in javax.xml.ws"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../index.html?javax/xml/ws/Service.html" target="_top">Frames</a></li>
<li><a href="Service.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">javax.xml.ws</div>
<h2 title="Class Service" class="title">Class Service</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>javax.xml.ws.Service</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>public class <span class="typeNameLabel">Service</span>
extends java.lang.Object</pre>
<div class="block"><code>Service</code> objects provide the client view of a Web service.
 <p><code>Service</code> acts as a factory of the following:
 <ul>
 <li>Proxies for a target service endpoint.</li>
 <li>Instances of <a href="../../../javax/xml/ws/Dispatch.html" title="interface in javax.xml.ws"><code>Dispatch</code></a> for
     dynamic message-oriented invocation of a remote
     operation.
 </li>
 </ul>

 <p>The ports available on a service can be enumerated using the
 <code>getPorts</code> method. Alternatively, you can pass a
 service endpoint interface to the unary <code>getPort</code> method
 and let the runtime select a compatible port.

 <p>Handler chains for all the objects created by a <code>Service</code>
 can be set by means of a <code>HandlerResolver</code>.

 <p>An <code>Executor</code> may be set on the service in order
 to gain better control over the threads used to dispatch asynchronous
 callbacks. For instance, thread pooling with certain parameters
 can be enabled by creating a <code>ThreadPoolExecutor</code> and
 registering it with the service.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>1.6, JAX-WS 2.0</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../javax/xml/ws/spi/Provider.html" title="class in javax.xml.ws.spi"><code>Provider</code></a>, 
<a href="../../../javax/xml/ws/handler/HandlerResolver.html" title="interface in javax.xml.ws.handler"><code>HandlerResolver</code></a>, 
<code>Executor</code></dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="nested.class.summary">
<!--   -->
</a>
<h3>Nested Class Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Class and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/xml/ws/Service.Mode.html" title="enum in javax.xml.ws">Service.Mode</a></span></code>
<div class="block">The orientation of a dynamic client or service.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!--   -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier</th>
<th class="colLast" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected </code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/xml/ws/Service.html#Service-java.net.URL-javax.xml.namespace.QName-">Service</a></span>(java.net.URL&nbsp;wsdlDocumentLocation,
       javax.xml.namespace.QName&nbsp;serviceName)</code>
<div class="block">Creates a <code>Service</code>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected </code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/xml/ws/Service.html#Service-java.net.URL-javax.xml.namespace.QName-javax.xml.ws.WebServiceFeature...-">Service</a></span>(java.net.URL&nbsp;wsdlDocumentLocation,
       javax.xml.namespace.QName&nbsp;serviceName,
       <a href="../../../javax/xml/ws/WebServiceFeature.html" title="class in javax.xml.ws">WebServiceFeature</a>...&nbsp;features)</code>
<div class="block">Creates a <code>Service</code>.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!--   -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/xml/ws/Service.html#addPort-javax.xml.namespace.QName-java.lang.String-java.lang.String-">addPort</a></span>(javax.xml.namespace.QName&nbsp;portName,
       java.lang.String&nbsp;bindingId,
       java.lang.String&nbsp;endpointAddress)</code>
<div class="block">Creates a new port for the service.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>static <a href="../../../javax/xml/ws/Service.html" title="class in javax.xml.ws">Service</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/xml/ws/Service.html#create-javax.xml.namespace.QName-">create</a></span>(javax.xml.namespace.QName&nbsp;serviceName)</code>
<div class="block">Creates a <code>Service</code> instance.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>static <a href="../../../javax/xml/ws/Service.html" title="class in javax.xml.ws">Service</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/xml/ws/Service.html#create-javax.xml.namespace.QName-javax.xml.ws.WebServiceFeature...-">create</a></span>(javax.xml.namespace.QName&nbsp;serviceName,
      <a href="../../../javax/xml/ws/WebServiceFeature.html" title="class in javax.xml.ws">WebServiceFeature</a>...&nbsp;features)</code>
<div class="block">Creates a <code>Service</code> instance.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>static <a href="../../../javax/xml/ws/Service.html" title="class in javax.xml.ws">Service</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/xml/ws/Service.html#create-java.net.URL-javax.xml.namespace.QName-">create</a></span>(java.net.URL&nbsp;wsdlDocumentLocation,
      javax.xml.namespace.QName&nbsp;serviceName)</code>
<div class="block">Creates a <code>Service</code> instance.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>static <a href="../../../javax/xml/ws/Service.html" title="class in javax.xml.ws">Service</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/xml/ws/Service.html#create-java.net.URL-javax.xml.namespace.QName-javax.xml.ws.WebServiceFeature...-">create</a></span>(java.net.URL&nbsp;wsdlDocumentLocation,
      javax.xml.namespace.QName&nbsp;serviceName,
      <a href="../../../javax/xml/ws/WebServiceFeature.html" title="class in javax.xml.ws">WebServiceFeature</a>...&nbsp;features)</code>
<div class="block">Creates a <code>Service</code> instance.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="../../../javax/xml/ws/Dispatch.html" title="interface in javax.xml.ws">Dispatch</a>&lt;T&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/xml/ws/Service.html#createDispatch-javax.xml.ws.EndpointReference-java.lang.Class-javax.xml.ws.Service.Mode-javax.xml.ws.WebServiceFeature...-">createDispatch</a></span>(<a href="../../../javax/xml/ws/EndpointReference.html" title="class in javax.xml.ws">EndpointReference</a>&nbsp;endpointReference,
              java.lang.Class&lt;T&gt;&nbsp;type,
              <a href="../../../javax/xml/ws/Service.Mode.html" title="enum in javax.xml.ws">Service.Mode</a>&nbsp;mode,
              <a href="../../../javax/xml/ws/WebServiceFeature.html" title="class in javax.xml.ws">WebServiceFeature</a>...&nbsp;features)</code>
<div class="block">Creates a <code>Dispatch</code> instance for use with objects of
 the client's choosing.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code><a href="../../../javax/xml/ws/Dispatch.html" title="interface in javax.xml.ws">Dispatch</a>&lt;java.lang.Object&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/xml/ws/Service.html#createDispatch-javax.xml.ws.EndpointReference-javax.xml.bind.JAXBContext-javax.xml.ws.Service.Mode-javax.xml.ws.WebServiceFeature...-">createDispatch</a></span>(<a href="../../../javax/xml/ws/EndpointReference.html" title="class in javax.xml.ws">EndpointReference</a>&nbsp;endpointReference,
              <a href="../../../javax/xml/bind/JAXBContext.html" title="class in javax.xml.bind">JAXBContext</a>&nbsp;context,
              <a href="../../../javax/xml/ws/Service.Mode.html" title="enum in javax.xml.ws">Service.Mode</a>&nbsp;mode,
              <a href="../../../javax/xml/ws/WebServiceFeature.html" title="class in javax.xml.ws">WebServiceFeature</a>...&nbsp;features)</code>
<div class="block">Creates a <code>Dispatch</code> instance for use with JAXB
 generated objects.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="../../../javax/xml/ws/Dispatch.html" title="interface in javax.xml.ws">Dispatch</a>&lt;T&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/xml/ws/Service.html#createDispatch-javax.xml.namespace.QName-java.lang.Class-javax.xml.ws.Service.Mode-">createDispatch</a></span>(javax.xml.namespace.QName&nbsp;portName,
              java.lang.Class&lt;T&gt;&nbsp;type,
              <a href="../../../javax/xml/ws/Service.Mode.html" title="enum in javax.xml.ws">Service.Mode</a>&nbsp;mode)</code>
<div class="block">Creates a <code>Dispatch</code> instance for use with objects of
 the client's choosing.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="../../../javax/xml/ws/Dispatch.html" title="interface in javax.xml.ws">Dispatch</a>&lt;T&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/xml/ws/Service.html#createDispatch-javax.xml.namespace.QName-java.lang.Class-javax.xml.ws.Service.Mode-javax.xml.ws.WebServiceFeature...-">createDispatch</a></span>(javax.xml.namespace.QName&nbsp;portName,
              java.lang.Class&lt;T&gt;&nbsp;type,
              <a href="../../../javax/xml/ws/Service.Mode.html" title="enum in javax.xml.ws">Service.Mode</a>&nbsp;mode,
              <a href="../../../javax/xml/ws/WebServiceFeature.html" title="class in javax.xml.ws">WebServiceFeature</a>...&nbsp;features)</code>
<div class="block">Creates a <code>Dispatch</code> instance for use with objects of
 the client's choosing.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code><a href="../../../javax/xml/ws/Dispatch.html" title="interface in javax.xml.ws">Dispatch</a>&lt;java.lang.Object&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/xml/ws/Service.html#createDispatch-javax.xml.namespace.QName-javax.xml.bind.JAXBContext-javax.xml.ws.Service.Mode-">createDispatch</a></span>(javax.xml.namespace.QName&nbsp;portName,
              <a href="../../../javax/xml/bind/JAXBContext.html" title="class in javax.xml.bind">JAXBContext</a>&nbsp;context,
              <a href="../../../javax/xml/ws/Service.Mode.html" title="enum in javax.xml.ws">Service.Mode</a>&nbsp;mode)</code>
<div class="block">Creates a <code>Dispatch</code> instance for use with JAXB
 generated objects.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code><a href="../../../javax/xml/ws/Dispatch.html" title="interface in javax.xml.ws">Dispatch</a>&lt;java.lang.Object&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/xml/ws/Service.html#createDispatch-javax.xml.namespace.QName-javax.xml.bind.JAXBContext-javax.xml.ws.Service.Mode-javax.xml.ws.WebServiceFeature...-">createDispatch</a></span>(javax.xml.namespace.QName&nbsp;portName,
              <a href="../../../javax/xml/bind/JAXBContext.html" title="class in javax.xml.bind">JAXBContext</a>&nbsp;context,
              <a href="../../../javax/xml/ws/Service.Mode.html" title="enum in javax.xml.ws">Service.Mode</a>&nbsp;mode,
              <a href="../../../javax/xml/ws/WebServiceFeature.html" title="class in javax.xml.ws">WebServiceFeature</a>...&nbsp;features)</code>
<div class="block">Creates a <code>Dispatch</code> instance for use with JAXB
 generated objects.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>java.util.concurrent.Executor</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/xml/ws/Service.html#getExecutor--">getExecutor</a></span>()</code>
<div class="block">Returns the executor for this <code>Service</code>instance.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code><a href="../../../javax/xml/ws/handler/HandlerResolver.html" title="interface in javax.xml.ws.handler">HandlerResolver</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/xml/ws/Service.html#getHandlerResolver--">getHandlerResolver</a></span>()</code>
<div class="block">Returns the configured handler resolver.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/xml/ws/Service.html#getPort-java.lang.Class-">getPort</a></span>(java.lang.Class&lt;T&gt;&nbsp;serviceEndpointInterface)</code>
<div class="block">The <code>getPort</code> method returns a proxy.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/xml/ws/Service.html#getPort-java.lang.Class-javax.xml.ws.WebServiceFeature...-">getPort</a></span>(java.lang.Class&lt;T&gt;&nbsp;serviceEndpointInterface,
       <a href="../../../javax/xml/ws/WebServiceFeature.html" title="class in javax.xml.ws">WebServiceFeature</a>...&nbsp;features)</code>
<div class="block">The <code>getPort</code> method returns a proxy.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/xml/ws/Service.html#getPort-javax.xml.ws.EndpointReference-java.lang.Class-javax.xml.ws.WebServiceFeature...-">getPort</a></span>(<a href="../../../javax/xml/ws/EndpointReference.html" title="class in javax.xml.ws">EndpointReference</a>&nbsp;endpointReference,
       java.lang.Class&lt;T&gt;&nbsp;serviceEndpointInterface,
       <a href="../../../javax/xml/ws/WebServiceFeature.html" title="class in javax.xml.ws">WebServiceFeature</a>...&nbsp;features)</code>
<div class="block">The <code>getPort</code> method returns a proxy.</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/xml/ws/Service.html#getPort-javax.xml.namespace.QName-java.lang.Class-">getPort</a></span>(javax.xml.namespace.QName&nbsp;portName,
       java.lang.Class&lt;T&gt;&nbsp;serviceEndpointInterface)</code>
<div class="block">The <code>getPort</code> method returns a proxy.</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/xml/ws/Service.html#getPort-javax.xml.namespace.QName-java.lang.Class-javax.xml.ws.WebServiceFeature...-">getPort</a></span>(javax.xml.namespace.QName&nbsp;portName,
       java.lang.Class&lt;T&gt;&nbsp;serviceEndpointInterface,
       <a href="../../../javax/xml/ws/WebServiceFeature.html" title="class in javax.xml.ws">WebServiceFeature</a>...&nbsp;features)</code>
<div class="block">The <code>getPort</code> method returns a proxy.</div>
</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code>java.util.Iterator&lt;javax.xml.namespace.QName&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/xml/ws/Service.html#getPorts--">getPorts</a></span>()</code>
<div class="block">Returns an <code>Iterator</code> for the list of
 <code>QName</code>s of service endpoints grouped by this
 service</div>
</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code>javax.xml.namespace.QName</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/xml/ws/Service.html#getServiceName--">getServiceName</a></span>()</code>
<div class="block">Gets the name of this service.</div>
</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code>java.net.URL</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/xml/ws/Service.html#getWSDLDocumentLocation--">getWSDLDocumentLocation</a></span>()</code>
<div class="block">Gets the location of the WSDL document for this Service.</div>
</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/xml/ws/Service.html#setExecutor-java.util.concurrent.Executor-">setExecutor</a></span>(java.util.concurrent.Executor&nbsp;executor)</code>
<div class="block">Sets the executor for this <code>Service</code> instance.</div>
</td>
</tr>
<tr id="i22" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/xml/ws/Service.html#setHandlerResolver-javax.xml.ws.handler.HandlerResolver-">setHandlerResolver</a></span>(<a href="../../../javax/xml/ws/handler/HandlerResolver.html" title="interface in javax.xml.ws.handler">HandlerResolver</a>&nbsp;handlerResolver)</code>
<div class="block">Sets the <code>HandlerResolver</code> for this <code>Service</code>
 instance.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!--   -->
</a>
<h3>Constructor Detail</h3>
<a name="Service-java.net.URL-javax.xml.namespace.QName-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>Service</h4>
<pre>protected&nbsp;Service(java.net.URL&nbsp;wsdlDocumentLocation,
                  javax.xml.namespace.QName&nbsp;serviceName)</pre>
<div class="block">Creates a <code>Service</code>.

 The specified WSDL document location and service qualified name MUST
 uniquely identify a <code>wsdl:service</code> element.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>wsdlDocumentLocation</code> - <code>URL</code> for the WSDL document location
                             for the service</dd>
<dd><code>serviceName</code> - <code>QName</code> for the service</dd>
</dl>
</li>
</ul>
<a name="Service-java.net.URL-javax.xml.namespace.QName-javax.xml.ws.WebServiceFeature...-">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>Service</h4>
<pre>protected&nbsp;Service(java.net.URL&nbsp;wsdlDocumentLocation,
                  javax.xml.namespace.QName&nbsp;serviceName,
                  <a href="../../../javax/xml/ws/WebServiceFeature.html" title="class in javax.xml.ws">WebServiceFeature</a>...&nbsp;features)</pre>
<div class="block">Creates a <code>Service</code>. The created instance is
 configured with the web service features.

 The specified WSDL document location and service qualified name MUST
 uniquely identify a <code>wsdl:service</code> element.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>wsdlDocumentLocation</code> - <code>URL</code> for the WSDL document location
                             for the service</dd>
<dd><code>serviceName</code> - <code>QName</code> for the service</dd>
<dd><code>features</code> - Web Service features that must be configured on
        the service. If the provider doesn't understand a feature,
        it must throw a WebServiceException.</dd>
</dl>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a name="getPort-javax.xml.namespace.QName-java.lang.Class-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPort</h4>
<pre>public&nbsp;&lt;T&gt;&nbsp;T&nbsp;getPort(javax.xml.namespace.QName&nbsp;portName,
                     java.lang.Class&lt;T&gt;&nbsp;serviceEndpointInterface)</pre>
<div class="block">The <code>getPort</code> method returns a proxy. A service client
 uses this proxy to invoke operations on the target
 service endpoint. The <code>serviceEndpointInterface</code>
 specifies the service endpoint interface that is supported by
 the created dynamic proxy instance.</div>
<dl>
<dt><span class="paramLabel">Type Parameters:</span></dt>
<dd><code>T</code> - Service endpoint interface.</dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>portName</code> - Qualified name of the service endpoint in
                  the WSDL service description.</dd>
<dd><code>serviceEndpointInterface</code> - Service endpoint interface
                  supported by the dynamic proxy instance.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Object Proxy instance that
                supports the specified service endpoint
                interface.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../javax/xml/ws/WebServiceException.html" title="class in javax.xml.ws">WebServiceException</a></code> - This exception is thrown in the
                  following cases:
                  <UL>
                  <LI>If there is an error in creation of
                      the proxy.
                  <LI>If there is any missing WSDL metadata
                      as required by this method.
                  <LI>If an illegal
                      <code>serviceEndpointInterface</code>
                      or <code>portName</code> is specified.
                  </UL></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><code>Proxy</code>, 
<code>InvocationHandler</code></dd>
</dl>
</li>
</ul>
<a name="getPort-javax.xml.namespace.QName-java.lang.Class-javax.xml.ws.WebServiceFeature...-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPort</h4>
<pre>public&nbsp;&lt;T&gt;&nbsp;T&nbsp;getPort(javax.xml.namespace.QName&nbsp;portName,
                     java.lang.Class&lt;T&gt;&nbsp;serviceEndpointInterface,
                     <a href="../../../javax/xml/ws/WebServiceFeature.html" title="class in javax.xml.ws">WebServiceFeature</a>...&nbsp;features)</pre>
<div class="block">The <code>getPort</code> method returns a proxy. A service client
 uses this proxy to invoke operations on the target
 service endpoint. The <code>serviceEndpointInterface</code>
 specifies the service endpoint interface that is supported by
 the created dynamic proxy instance.</div>
<dl>
<dt><span class="paramLabel">Type Parameters:</span></dt>
<dd><code>T</code> - Service endpoint interface.</dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>portName</code> - Qualified name of the service endpoint in
                  the WSDL service description.</dd>
<dd><code>serviceEndpointInterface</code> - Service endpoint interface
                  supported by the dynamic proxy instance.</dd>
<dd><code>features</code> - A list of WebServiceFeatures to configure on the
                proxy.  Supported features not in the <code>features
                </code> parameter will have their default values.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Object Proxy instance that
                supports the specified service endpoint
                interface.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../javax/xml/ws/WebServiceException.html" title="class in javax.xml.ws">WebServiceException</a></code> - This exception is thrown in the
                  following cases:
                  <UL>
                  <LI>If there is an error in creation of
                      the proxy.
                  <LI>If there is any missing WSDL metadata
                      as required by this method.
                  <LI>If an illegal
                      <code>serviceEndpointInterface</code>
                      or <code>portName</code> is specified.
                  <LI>If a feature is enabled that is not compatible
                      with this port or is unsupported.
                  </UL></dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>1.6, JAX-WS 2.1</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><code>Proxy</code>, 
<code>InvocationHandler</code>, 
<a href="../../../javax/xml/ws/WebServiceFeature.html" title="class in javax.xml.ws"><code>WebServiceFeature</code></a></dd>
</dl>
</li>
</ul>
<a name="getPort-java.lang.Class-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPort</h4>
<pre>public&nbsp;&lt;T&gt;&nbsp;T&nbsp;getPort(java.lang.Class&lt;T&gt;&nbsp;serviceEndpointInterface)</pre>
<div class="block">The <code>getPort</code> method returns a proxy. The parameter
 <code>serviceEndpointInterface</code> specifies the service
 endpoint interface that is supported by the returned proxy.
 In the implementation of this method, the JAX-WS
 runtime system takes the responsibility of selecting a protocol
 binding (and a port) and configuring the proxy accordingly.
 The returned proxy should not be reconfigured by the client.</div>
<dl>
<dt><span class="paramLabel">Type Parameters:</span></dt>
<dd><code>T</code> - Service endpoint interface.</dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>serviceEndpointInterface</code> - Service endpoint interface.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Object instance that supports the
                  specified service endpoint interface.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../javax/xml/ws/WebServiceException.html" title="class in javax.xml.ws">WebServiceException</a></code> - <UL>
                  <LI>If there is an error during creation
                      of the proxy.
                  <LI>If there is any missing WSDL metadata
                      as required by this method.
                  <LI>If an illegal
                      <code>serviceEndpointInterface</code>
                      is specified.
                  </UL></dd>
</dl>
</li>
</ul>
<a name="getPort-java.lang.Class-javax.xml.ws.WebServiceFeature...-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPort</h4>
<pre>public&nbsp;&lt;T&gt;&nbsp;T&nbsp;getPort(java.lang.Class&lt;T&gt;&nbsp;serviceEndpointInterface,
                     <a href="../../../javax/xml/ws/WebServiceFeature.html" title="class in javax.xml.ws">WebServiceFeature</a>...&nbsp;features)</pre>
<div class="block">The <code>getPort</code> method returns a proxy. The parameter
 <code>serviceEndpointInterface</code> specifies the service
 endpoint interface that is supported by the returned proxy.
 In the implementation of this method, the JAX-WS
 runtime system takes the responsibility of selecting a protocol
 binding (and a port) and configuring the proxy accordingly.
 The returned proxy should not be reconfigured by the client.</div>
<dl>
<dt><span class="paramLabel">Type Parameters:</span></dt>
<dd><code>T</code> - Service endpoint interface.</dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>serviceEndpointInterface</code> - Service endpoint interface.</dd>
<dd><code>features</code> - A list of WebServiceFeatures to configure on the
                proxy.  Supported features not in the <code>features
                </code> parameter will have their default values.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Object instance that supports the
                  specified service endpoint interface.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../javax/xml/ws/WebServiceException.html" title="class in javax.xml.ws">WebServiceException</a></code> - <UL>
                  <LI>If there is an error during creation
                      of the proxy.
                  <LI>If there is any missing WSDL metadata
                      as required by this method.
                  <LI>If an illegal
                      <code>serviceEndpointInterface</code>
                      is specified.
                  <LI>If a feature is enabled that is not compatible
                      with this port or is unsupported.
                  </UL></dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>1.6, JAX-WS 2.1</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../javax/xml/ws/WebServiceFeature.html" title="class in javax.xml.ws"><code>WebServiceFeature</code></a></dd>
</dl>
</li>
</ul>
<a name="getPort-javax.xml.ws.EndpointReference-java.lang.Class-javax.xml.ws.WebServiceFeature...-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPort</h4>
<pre>public&nbsp;&lt;T&gt;&nbsp;T&nbsp;getPort(<a href="../../../javax/xml/ws/EndpointReference.html" title="class in javax.xml.ws">EndpointReference</a>&nbsp;endpointReference,
                     java.lang.Class&lt;T&gt;&nbsp;serviceEndpointInterface,
                     <a href="../../../javax/xml/ws/WebServiceFeature.html" title="class in javax.xml.ws">WebServiceFeature</a>...&nbsp;features)</pre>
<div class="block">The <code>getPort</code> method returns a proxy.
 The parameter <code>endpointReference</code> specifies the
 endpoint that will be invoked by the returned proxy.  If there
 are any reference parameters in the
 <code>endpointReference</code>, then those reference
 parameters MUST appear as SOAP headers, indicating them to be
 reference parameters, on all messages sent to the endpoint.
 The <code>endpointReference's</code> address MUST be used
 for invocations on the endpoint.
 The parameter <code>serviceEndpointInterface</code> specifies
 the service endpoint interface that is supported by the
 returned proxy.
 In the implementation of this method, the JAX-WS
 runtime system takes the responsibility of selecting a protocol
 binding (and a port) and configuring the proxy accordingly from
 the WSDL associated with this <code>Service</code> instance or
 from the metadata from the <code>endpointReference</code>.
 If this <code>Service</code> instance has a WSDL and
 the <code>endpointReference</code> metadata
 also has a WSDL, then the WSDL from this instance MUST be used.
 If this <code>Service</code> instance does not have a WSDL and
 the <code>endpointReference</code> does have a WSDL, then the
 WSDL from the <code>endpointReference</code> MAY be used.
 The returned proxy should not be reconfigured by the client.
 If this <code>Service</code> instance has a known proxy
 port that matches the information contained in
 the WSDL,
 then that proxy is returned, otherwise a WebServiceException
 is thrown.
 <p>
 Calling this method has the same behavior as the following
 <pre>
 <code> port = service.getPort(portName, serviceEndpointInterface);</code>
 </pre>
 where the <code>portName</code> is retrieved from the
 metadata of the <code>endpointReference</code> or from the
 <code>serviceEndpointInterface</code> and the WSDL
 associated with this <code>Service</code> instance.</div>
<dl>
<dt><span class="paramLabel">Type Parameters:</span></dt>
<dd><code>T</code> - Service endpoint interface.</dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>endpointReference</code> - The <code>EndpointReference</code>
 for the target service endpoint that will be invoked by the
 returned proxy.</dd>
<dd><code>serviceEndpointInterface</code> - Service endpoint interface.</dd>
<dd><code>features</code> - A list of <code>WebServiceFeatures</code> to configure on the
                proxy.  Supported features not in the <code>features
                </code> parameter will have their default values.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Object Proxy instance that supports the
                  specified service endpoint interface.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../javax/xml/ws/WebServiceException.html" title="class in javax.xml.ws">WebServiceException</a></code> - <UL>
                  <LI>If there is an error during creation
                      of the proxy.
                  <LI>If there is any missing WSDL metadata
                      as required by this method.
                  <LI>If the <code>endpointReference</code> metadata does
                      not match the <code>serviceName</code> of this
                      <code>Service</code> instance.
                  <LI>If a <code>portName</code> cannot be extracted
                      from the WSDL or <code>endpointReference</code> metadata.
                  <LI>If an invalid
                      <code>endpointReference</code>
                      is specified.
                  <LI>If an invalid
                      <code>serviceEndpointInterface</code>
                      is specified.
                  <LI>If a feature is enabled that is not compatible
                      with this port or is unsupported.
                  </UL></dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>1.6, JAX-WS 2.1</dd>
</dl>
</li>
</ul>
<a name="addPort-javax.xml.namespace.QName-java.lang.String-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addPort</h4>
<pre>public&nbsp;void&nbsp;addPort(javax.xml.namespace.QName&nbsp;portName,
                    java.lang.String&nbsp;bindingId,
                    java.lang.String&nbsp;endpointAddress)</pre>
<div class="block">Creates a new port for the service. Ports created in this way contain
 no WSDL port type information and can only be used for creating
 <code>Dispatch</code>instances.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>portName</code> - Qualified name for the target service endpoint.</dd>
<dd><code>bindingId</code> - A String identifier of a binding.</dd>
<dd><code>endpointAddress</code> - Address of the target service endpoint as a URI.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../javax/xml/ws/WebServiceException.html" title="class in javax.xml.ws">WebServiceException</a></code> - If any error in the creation of
 the port.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../javax/xml/ws/soap/SOAPBinding.html#SOAP11HTTP_BINDING"><code>SOAPBinding.SOAP11HTTP_BINDING</code></a>, 
<a href="../../../javax/xml/ws/soap/SOAPBinding.html#SOAP12HTTP_BINDING"><code>SOAPBinding.SOAP12HTTP_BINDING</code></a>, 
<a href="../../../javax/xml/ws/http/HTTPBinding.html#HTTP_BINDING"><code>HTTPBinding.HTTP_BINDING</code></a></dd>
</dl>
</li>
</ul>
<a name="createDispatch-javax.xml.namespace.QName-java.lang.Class-javax.xml.ws.Service.Mode-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createDispatch</h4>
<pre>public&nbsp;&lt;T&gt;&nbsp;<a href="../../../javax/xml/ws/Dispatch.html" title="interface in javax.xml.ws">Dispatch</a>&lt;T&gt;&nbsp;createDispatch(javax.xml.namespace.QName&nbsp;portName,
                                      java.lang.Class&lt;T&gt;&nbsp;type,
                                      <a href="../../../javax/xml/ws/Service.Mode.html" title="enum in javax.xml.ws">Service.Mode</a>&nbsp;mode)</pre>
<div class="block">Creates a <code>Dispatch</code> instance for use with objects of
 the client's choosing.</div>
<dl>
<dt><span class="paramLabel">Type Parameters:</span></dt>
<dd><code>T</code> - The type of the message or payload</dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>portName</code> - Qualified name for the target service endpoint</dd>
<dd><code>type</code> - The class of object used for messages or message
 payloads. Implementations are required to support
 <code>javax.xml.transform.Source</code>, <code>javax.xml.soap.SOAPMessage</code>
 and <code>javax.activation.DataSource</code>, depending on
 the binding in use.</dd>
<dd><code>mode</code> - Controls whether the created dispatch instance is message
 or payload oriented, i.e. whether the client will work with complete
 protocol messages or message payloads. E.g. when using the SOAP
 protocol, this parameter controls whether the client will work with
 SOAP messages or the contents of a SOAP body. Mode MUST be MESSAGE
 when type is SOAPMessage.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Dispatch instance.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../javax/xml/ws/WebServiceException.html" title="class in javax.xml.ws">WebServiceException</a></code> - If any error in the creation of
                  the <code>Dispatch</code> object.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><code>Source</code>, 
<a href="../../../javax/xml/soap/SOAPMessage.html" title="class in javax.xml.soap"><code>SOAPMessage</code></a></dd>
</dl>
</li>
</ul>
<a name="createDispatch-javax.xml.namespace.QName-java.lang.Class-javax.xml.ws.Service.Mode-javax.xml.ws.WebServiceFeature...-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createDispatch</h4>
<pre>public&nbsp;&lt;T&gt;&nbsp;<a href="../../../javax/xml/ws/Dispatch.html" title="interface in javax.xml.ws">Dispatch</a>&lt;T&gt;&nbsp;createDispatch(javax.xml.namespace.QName&nbsp;portName,
                                      java.lang.Class&lt;T&gt;&nbsp;type,
                                      <a href="../../../javax/xml/ws/Service.Mode.html" title="enum in javax.xml.ws">Service.Mode</a>&nbsp;mode,
                                      <a href="../../../javax/xml/ws/WebServiceFeature.html" title="class in javax.xml.ws">WebServiceFeature</a>...&nbsp;features)</pre>
<div class="block">Creates a <code>Dispatch</code> instance for use with objects of
 the client's choosing.</div>
<dl>
<dt><span class="paramLabel">Type Parameters:</span></dt>
<dd><code>T</code> - The type of the message or payload</dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>portName</code> - Qualified name for the target service endpoint</dd>
<dd><code>type</code> - The class of object used for messages or message
 payloads. Implementations are required to support
 <code>javax.xml.transform.Source</code> and <code>javax.xml.soap.SOAPMessage</code>.</dd>
<dd><code>mode</code> - Controls whether the created dispatch instance is message
 or payload oriented, i.e. whether the client will work with complete
 protocol messages or message payloads. E.g. when using the SOAP
 protocol, this parameter controls whether the client will work with
 SOAP messages or the contents of a SOAP body. Mode MUST be <code>MESSAGE</code>
 when type is <code>SOAPMessage</code>.</dd>
<dd><code>features</code> - A list of <code>WebServiceFeatures</code> to configure on the
                proxy.  Supported features not in the <code>features
                </code> parameter will have their default values.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Dispatch instance.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../javax/xml/ws/WebServiceException.html" title="class in javax.xml.ws">WebServiceException</a></code> - If any error in the creation of
                  the <code>Dispatch</code> object or if a
                  feature is enabled that is not compatible with
                  this port or is unsupported.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>1.6, JAX-WS 2.1</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><code>Source</code>, 
<a href="../../../javax/xml/soap/SOAPMessage.html" title="class in javax.xml.soap"><code>SOAPMessage</code></a>, 
<a href="../../../javax/xml/ws/WebServiceFeature.html" title="class in javax.xml.ws"><code>WebServiceFeature</code></a></dd>
</dl>
</li>
</ul>
<a name="createDispatch-javax.xml.ws.EndpointReference-java.lang.Class-javax.xml.ws.Service.Mode-javax.xml.ws.WebServiceFeature...-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createDispatch</h4>
<pre>public&nbsp;&lt;T&gt;&nbsp;<a href="../../../javax/xml/ws/Dispatch.html" title="interface in javax.xml.ws">Dispatch</a>&lt;T&gt;&nbsp;createDispatch(<a href="../../../javax/xml/ws/EndpointReference.html" title="class in javax.xml.ws">EndpointReference</a>&nbsp;endpointReference,
                                      java.lang.Class&lt;T&gt;&nbsp;type,
                                      <a href="../../../javax/xml/ws/Service.Mode.html" title="enum in javax.xml.ws">Service.Mode</a>&nbsp;mode,
                                      <a href="../../../javax/xml/ws/WebServiceFeature.html" title="class in javax.xml.ws">WebServiceFeature</a>...&nbsp;features)</pre>
<div class="block">Creates a <code>Dispatch</code> instance for use with objects of
 the client's choosing. If there
 are any reference parameters in the
 <code>endpointReference</code>, then those reference
 parameters MUST appear as SOAP headers, indicating them to be
 reference parameters, on all messages sent to the endpoint.
 The <code>endpointReference's</code> address MUST be used
 for invocations on the endpoint.
 In the implementation of this method, the JAX-WS
 runtime system takes the responsibility of selecting a protocol
 binding (and a port) and configuring the dispatch accordingly from
 the WSDL associated with this <code>Service</code> instance or
 from the metadata from the <code>endpointReference</code>.
 If this <code>Service</code> instance has a WSDL and
 the <code>endpointReference</code>
 also has a WSDL in its metadata, then the WSDL from this instance MUST be used.
 If this <code>Service</code> instance does not have a WSDL and
 the <code>endpointReference</code> does have a WSDL, then the
 WSDL from the <code>endpointReference</code> MAY be used.
 An implementation MUST be able to retrieve the <code>portName</code> from the
 <code>endpointReference</code> metadata.
 <p>
 This method behaves the same as calling
 <pre>
 <code> dispatch = service.createDispatch(portName, type, mode, features);</code>
 </pre>
 where the <code>portName</code> is retrieved from the
 WSDL or <code>EndpointReference</code> metadata.</div>
<dl>
<dt><span class="paramLabel">Type Parameters:</span></dt>
<dd><code>T</code> - The type of the message or payload</dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>endpointReference</code> - The <code>EndpointReference</code>
 for the target service endpoint that will be invoked by the
 returned <code>Dispatch</code> object.</dd>
<dd><code>type</code> - The class of object used to messages or message
 payloads. Implementations are required to support
 <code>javax.xml.transform.Source</code> and <code>javax.xml.soap.SOAPMessage</code>.</dd>
<dd><code>mode</code> - Controls whether the created dispatch instance is message
 or payload oriented, i.e. whether the client will work with complete
 protocol messages or message payloads. E.g. when using the SOAP
 protocol, this parameter controls whether the client will work with
 SOAP messages or the contents of a SOAP body. Mode MUST be <code>MESSAGE</code>
 when type is <code>SOAPMessage</code>.</dd>
<dd><code>features</code> - An array of <code>WebServiceFeatures</code> to configure on the
                proxy.  Supported features not in the <code>features
                </code> parameter will have their default values.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Dispatch instance</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../javax/xml/ws/WebServiceException.html" title="class in javax.xml.ws">WebServiceException</a></code> - <UL>
                    <LI>If there is any missing WSDL metadata
                      as required by this method.
                    <li>If the <code>endpointReference</code> metadata does
                      not match the <code>serviceName</code> or <code>portName</code>
                      of a WSDL associated
                      with this <code>Service</code> instance.
                    <li>If the <code>portName</code> cannot be determined
                    from the <code>EndpointReference</code> metadata.
                    <li>If any error in the creation of
                     the <code>Dispatch</code> object.
                    <li>If a feature is enabled that is not
                    compatible with this port or is unsupported.
                  </UL></dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>1.6, JAX-WS 2.1</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><code>Source</code>, 
<a href="../../../javax/xml/soap/SOAPMessage.html" title="class in javax.xml.soap"><code>SOAPMessage</code></a>, 
<a href="../../../javax/xml/ws/WebServiceFeature.html" title="class in javax.xml.ws"><code>WebServiceFeature</code></a></dd>
</dl>
</li>
</ul>
<a name="createDispatch-javax.xml.namespace.QName-javax.xml.bind.JAXBContext-javax.xml.ws.Service.Mode-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createDispatch</h4>
<pre>public&nbsp;<a href="../../../javax/xml/ws/Dispatch.html" title="interface in javax.xml.ws">Dispatch</a>&lt;java.lang.Object&gt;&nbsp;createDispatch(javax.xml.namespace.QName&nbsp;portName,
                                                 <a href="../../../javax/xml/bind/JAXBContext.html" title="class in javax.xml.bind">JAXBContext</a>&nbsp;context,
                                                 <a href="../../../javax/xml/ws/Service.Mode.html" title="enum in javax.xml.ws">Service.Mode</a>&nbsp;mode)</pre>
<div class="block">Creates a <code>Dispatch</code> instance for use with JAXB
 generated objects.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>portName</code> - Qualified name for the target service endpoint</dd>
<dd><code>context</code> - The JAXB context used to marshall and unmarshall
 messages or message payloads.</dd>
<dd><code>mode</code> - Controls whether the created dispatch instance is message
 or payload oriented, i.e. whether the client will work with complete
 protocol messages or message payloads. E.g. when using the SOAP
 protocol, this parameter controls whether the client will work with
 SOAP messages or the contents of a SOAP body.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Dispatch instance.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../javax/xml/ws/WebServiceException.html" title="class in javax.xml.ws">WebServiceException</a></code> - If any error in the creation of
                  the <code>Dispatch</code> object.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../javax/xml/bind/JAXBContext.html" title="class in javax.xml.bind"><code>JAXBContext</code></a></dd>
</dl>
</li>
</ul>
<a name="createDispatch-javax.xml.namespace.QName-javax.xml.bind.JAXBContext-javax.xml.ws.Service.Mode-javax.xml.ws.WebServiceFeature...-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createDispatch</h4>
<pre>public&nbsp;<a href="../../../javax/xml/ws/Dispatch.html" title="interface in javax.xml.ws">Dispatch</a>&lt;java.lang.Object&gt;&nbsp;createDispatch(javax.xml.namespace.QName&nbsp;portName,
                                                 <a href="../../../javax/xml/bind/JAXBContext.html" title="class in javax.xml.bind">JAXBContext</a>&nbsp;context,
                                                 <a href="../../../javax/xml/ws/Service.Mode.html" title="enum in javax.xml.ws">Service.Mode</a>&nbsp;mode,
                                                 <a href="../../../javax/xml/ws/WebServiceFeature.html" title="class in javax.xml.ws">WebServiceFeature</a>...&nbsp;features)</pre>
<div class="block">Creates a <code>Dispatch</code> instance for use with JAXB
 generated objects.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>portName</code> - Qualified name for the target service endpoint</dd>
<dd><code>context</code> - The JAXB context used to marshall and unmarshall
 messages or message payloads.</dd>
<dd><code>mode</code> - Controls whether the created dispatch instance is message
 or payload oriented, i.e. whether the client will work with complete
 protocol messages or message payloads. E.g. when using the SOAP
 protocol, this parameter controls whether the client will work with
 SOAP messages or the contents of a SOAP body.</dd>
<dd><code>features</code> - A list of <code>WebServiceFeatures</code> to configure on the
                proxy.  Supported features not in the <code>features
                </code> parameter will have their default values.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Dispatch instance.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../javax/xml/ws/WebServiceException.html" title="class in javax.xml.ws">WebServiceException</a></code> - If any error in the creation of
                  the <code>Dispatch</code> object or if a
                  feature is enabled that is not compatible with
                  this port or is unsupported.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>1.6, JAX-WS 2.1</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../javax/xml/bind/JAXBContext.html" title="class in javax.xml.bind"><code>JAXBContext</code></a>, 
<a href="../../../javax/xml/ws/WebServiceFeature.html" title="class in javax.xml.ws"><code>WebServiceFeature</code></a></dd>
</dl>
</li>
</ul>
<a name="createDispatch-javax.xml.ws.EndpointReference-javax.xml.bind.JAXBContext-javax.xml.ws.Service.Mode-javax.xml.ws.WebServiceFeature...-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createDispatch</h4>
<pre>public&nbsp;<a href="../../../javax/xml/ws/Dispatch.html" title="interface in javax.xml.ws">Dispatch</a>&lt;java.lang.Object&gt;&nbsp;createDispatch(<a href="../../../javax/xml/ws/EndpointReference.html" title="class in javax.xml.ws">EndpointReference</a>&nbsp;endpointReference,
                                                 <a href="../../../javax/xml/bind/JAXBContext.html" title="class in javax.xml.bind">JAXBContext</a>&nbsp;context,
                                                 <a href="../../../javax/xml/ws/Service.Mode.html" title="enum in javax.xml.ws">Service.Mode</a>&nbsp;mode,
                                                 <a href="../../../javax/xml/ws/WebServiceFeature.html" title="class in javax.xml.ws">WebServiceFeature</a>...&nbsp;features)</pre>
<div class="block">Creates a <code>Dispatch</code> instance for use with JAXB
 generated objects. If there
 are any reference parameters in the
 <code>endpointReference</code>, then those reference
 parameters MUST appear as SOAP headers, indicating them to be
 reference parameters, on all messages sent to the endpoint.
 The <code>endpointReference's</code> address MUST be used
 for invocations on the endpoint.
 In the implementation of this method, the JAX-WS
 runtime system takes the responsibility of selecting a protocol
 binding (and a port) and configuring the dispatch accordingly from
 the WSDL associated with this <code>Service</code> instance or
 from the metadata from the <code>endpointReference</code>.
 If this <code>Service</code> instance has a WSDL and
 the <code>endpointReference</code>
 also has a WSDL in its metadata, then the WSDL from this instance
 MUST be used.
 If this <code>Service</code> instance does not have a WSDL and
 the <code>endpointReference</code> does have a WSDL, then the
 WSDL from the <code>endpointReference</code> MAY be used.
 An implementation MUST be able to retrieve the <code>portName</code> from the
 <code>endpointReference</code> metadata.
 <p>
 This method behavies the same as calling
 <pre>
 <code> dispatch = service.createDispatch(portName, context, mode, features);</code>
 </pre>
 where the <code>portName</code> is retrieved from the
 WSDL or <code>endpointReference</code> metadata.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>endpointReference</code> - The <code>EndpointReference</code>
 for the target service endpoint that will be invoked by the
 returned <code>Dispatch</code> object.</dd>
<dd><code>context</code> - The JAXB context used to marshall and unmarshall
 messages or message payloads.</dd>
<dd><code>mode</code> - Controls whether the created dispatch instance is message
 or payload oriented, i.e. whether the client will work with complete
 protocol messages or message payloads. E.g. when using the SOAP
 protocol, this parameter controls whether the client will work with
 SOAP messages or the contents of a SOAP body.</dd>
<dd><code>features</code> - An array of <code>WebServiceFeatures</code> to configure on the
                proxy.  Supported features not in the <code>features
                </code> parameter will have their default values.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Dispatch instance</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../javax/xml/ws/WebServiceException.html" title="class in javax.xml.ws">WebServiceException</a></code> - <UL>
                    <li>If there is any missing WSDL metadata
                      as required by this method.
                    <li>If the <code>endpointReference</code> metadata does
                    not match the <code>serviceName</code> or <code>portName</code>
                    of a WSDL associated
                    with this <code>Service</code> instance.
                    <li>If the <code>portName</code> cannot be determined
                    from the <code>EndpointReference</code> metadata.
                    <li>If any error in the creation of
                    the <code>Dispatch</code> object.
                    <li>if a feature is enabled that is not
                    compatible with this port or is unsupported.
                  </UL></dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>1.6, JAX-WS 2.1</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../javax/xml/bind/JAXBContext.html" title="class in javax.xml.bind"><code>JAXBContext</code></a>, 
<a href="../../../javax/xml/ws/WebServiceFeature.html" title="class in javax.xml.ws"><code>WebServiceFeature</code></a></dd>
</dl>
</li>
</ul>
<a name="getServiceName--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getServiceName</h4>
<pre>public&nbsp;javax.xml.namespace.QName&nbsp;getServiceName()</pre>
<div class="block">Gets the name of this service.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Qualified name of this service</dd>
</dl>
</li>
</ul>
<a name="getPorts--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPorts</h4>
<pre>public&nbsp;java.util.Iterator&lt;javax.xml.namespace.QName&gt;&nbsp;getPorts()</pre>
<div class="block">Returns an <code>Iterator</code> for the list of
 <code>QName</code>s of service endpoints grouped by this
 service</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Returns <code>java.util.Iterator</code> with elements
         of type <code>javax.xml.namespace.QName</code>.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../javax/xml/ws/WebServiceException.html" title="class in javax.xml.ws">WebServiceException</a></code> - If this Service class does not
         have access to the required WSDL metadata.</dd>
</dl>
</li>
</ul>
<a name="getWSDLDocumentLocation--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getWSDLDocumentLocation</h4>
<pre>public&nbsp;java.net.URL&nbsp;getWSDLDocumentLocation()</pre>
<div class="block">Gets the location of the WSDL document for this Service.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>URL for the location of the WSDL document for
         this service.</dd>
</dl>
</li>
</ul>
<a name="getHandlerResolver--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getHandlerResolver</h4>
<pre>public&nbsp;<a href="../../../javax/xml/ws/handler/HandlerResolver.html" title="interface in javax.xml.ws.handler">HandlerResolver</a>&nbsp;getHandlerResolver()</pre>
<div class="block">Returns the configured handler resolver.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>HandlerResolver The <code>HandlerResolver</code> being
         used by this <code>Service</code> instance, or <code>null</code>
         if there isn't one.</dd>
</dl>
</li>
</ul>
<a name="setHandlerResolver-javax.xml.ws.handler.HandlerResolver-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setHandlerResolver</h4>
<pre>public&nbsp;void&nbsp;setHandlerResolver(<a href="../../../javax/xml/ws/handler/HandlerResolver.html" title="interface in javax.xml.ws.handler">HandlerResolver</a>&nbsp;handlerResolver)</pre>
<div class="block">Sets the <code>HandlerResolver</code> for this <code>Service</code>
 instance.
 <p>
 The handler resolver, if present, will be called once for each
 proxy or dispatch instance that is created, and the handler chain
 returned by the resolver will be set on the instance.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>handlerResolver</code> - The <code>HandlerResolver</code> to use
        for all subsequently created proxy/dispatch objects.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../javax/xml/ws/handler/HandlerResolver.html" title="interface in javax.xml.ws.handler"><code>HandlerResolver</code></a></dd>
</dl>
</li>
</ul>
<a name="getExecutor--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getExecutor</h4>
<pre>public&nbsp;java.util.concurrent.Executor&nbsp;getExecutor()</pre>
<div class="block">Returns the executor for this <code>Service</code>instance.

 The executor is used for all asynchronous invocations that
 require callbacks.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The <code>java.util.concurrent.Executor</code> to be
         used to invoke a callback.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><code>Executor</code></dd>
</dl>
</li>
</ul>
<a name="setExecutor-java.util.concurrent.Executor-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setExecutor</h4>
<pre>public&nbsp;void&nbsp;setExecutor(java.util.concurrent.Executor&nbsp;executor)</pre>
<div class="block">Sets the executor for this <code>Service</code> instance.

 The executor is used for all asynchronous invocations that
 require callbacks.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>executor</code> - The <code>java.util.concurrent.Executor</code>
        to be used to invoke a callback.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.SecurityException</code> - If the instance does not support
         setting an executor for security reasons (e.g. the
         necessary permissions are missing).</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><code>Executor</code></dd>
</dl>
</li>
</ul>
<a name="create-java.net.URL-javax.xml.namespace.QName-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>create</h4>
<pre>public static&nbsp;<a href="../../../javax/xml/ws/Service.html" title="class in javax.xml.ws">Service</a>&nbsp;create(java.net.URL&nbsp;wsdlDocumentLocation,
                             javax.xml.namespace.QName&nbsp;serviceName)</pre>
<div class="block">Creates a <code>Service</code> instance.

 The specified WSDL document location and service qualified name MUST
 uniquely identify a <code>wsdl:service</code> element.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>wsdlDocumentLocation</code> - <code>URL</code> for the WSDL document location
                             for the service</dd>
<dd><code>serviceName</code> - <code>QName</code> for the service</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Service instance</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../javax/xml/ws/WebServiceException.html" title="class in javax.xml.ws">WebServiceException</a></code> - If any error in creation of the
                    specified service.</dd>
</dl>
</li>
</ul>
<a name="create-java.net.URL-javax.xml.namespace.QName-javax.xml.ws.WebServiceFeature...-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>create</h4>
<pre>public static&nbsp;<a href="../../../javax/xml/ws/Service.html" title="class in javax.xml.ws">Service</a>&nbsp;create(java.net.URL&nbsp;wsdlDocumentLocation,
                             javax.xml.namespace.QName&nbsp;serviceName,
                             <a href="../../../javax/xml/ws/WebServiceFeature.html" title="class in javax.xml.ws">WebServiceFeature</a>...&nbsp;features)</pre>
<div class="block">Creates a <code>Service</code> instance. The created instance is
 configured with the web service features.

 The specified WSDL document location and service qualified name MUST
 uniquely identify a <code>wsdl:service</code> element.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>wsdlDocumentLocation</code> - <code>URL</code> for the WSDL document location
                             for the service</dd>
<dd><code>serviceName</code> - <code>QName</code> for the service</dd>
<dd><code>features</code> - Web Service features that must be configured on
        the service. If the provider doesn't understand a feature,
        it must throw a WebServiceException.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Service instance configured with requested web service features</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../javax/xml/ws/WebServiceException.html" title="class in javax.xml.ws">WebServiceException</a></code> - If any error in creation of the
                    specified service.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>1.7, JAX-WS 2.2</dd>
</dl>
</li>
</ul>
<a name="create-javax.xml.namespace.QName-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>create</h4>
<pre>public static&nbsp;<a href="../../../javax/xml/ws/Service.html" title="class in javax.xml.ws">Service</a>&nbsp;create(javax.xml.namespace.QName&nbsp;serviceName)</pre>
<div class="block">Creates a <code>Service</code> instance.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>serviceName</code> - <code>QName</code> for the service</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Service instance</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../javax/xml/ws/WebServiceException.html" title="class in javax.xml.ws">WebServiceException</a></code> - If any error in creation of the
                    specified service</dd>
</dl>
</li>
</ul>
<a name="create-javax.xml.namespace.QName-javax.xml.ws.WebServiceFeature...-">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>create</h4>
<pre>public static&nbsp;<a href="../../../javax/xml/ws/Service.html" title="class in javax.xml.ws">Service</a>&nbsp;create(javax.xml.namespace.QName&nbsp;serviceName,
                             <a href="../../../javax/xml/ws/WebServiceFeature.html" title="class in javax.xml.ws">WebServiceFeature</a>...&nbsp;features)</pre>
<div class="block">Creates a <code>Service</code> instance. The created instance is
 configured with the web service features.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>serviceName</code> - <code>QName</code> for the service</dd>
<dd><code>features</code> - Web Service features that must be configured on
        the service. If the provider doesn't understand a feature,
        it must throw a WebServiceException.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Service instance configured with requested web service features</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../javax/xml/ws/WebServiceException.html" title="class in javax.xml.ws">WebServiceException</a></code> - If any error in creation of the
                    specified service</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>1.7, JAX-WS 2.2</dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../index-all.html">Index</a></li>
<li><a href="../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../javax/xml/ws/ResponseWrapper.html" title="annotation in javax.xml.ws"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../javax/xml/ws/Service.Mode.html" title="enum in javax.xml.ws"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../index.html?javax/xml/ws/Service.html" target="_top">Frames</a></li>
<li><a href="Service.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>
