<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<title>jakarta.xml.ws.spi.http</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="jakarta.xml.ws.spi.http";
        }
    }
    catch(err) {
    }
//-->
</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 class="navBarCell1Rev">Package</li>
<li>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="../../../../../jakarta/xml/ws/spi/package-summary.html">Prev&nbsp;Package</a></li>
<li><a href="../../../../../jakarta/xml/ws/wsaddressing/package-summary.html">Next&nbsp;Package</a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?jakarta/xml/ws/spi/http/package-summary.html" target="_top">Frames</a></li>
<li><a href="package-summary.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>
<a name="skip.navbar.top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="header">
<h1 title="Package" class="title">Package&nbsp;jakarta.xml.ws.spi.http</h1>
<div class="docSummary">
<div class="block">Provides HTTP SPI that is used for portable deployment of Jakarta XML Web Services
  in containers (for example servlet containers).</div>
</div>
<p>See:&nbsp;<a href="#package.description">Description</a></p>
</div>
<div class="contentContainer">
<ul class="blockList">
<li class="blockList">
<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Class Summary table, listing classes, and an explanation">
<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Class</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../jakarta/xml/ws/spi/http/HttpContext.html" title="class in jakarta.xml.ws.spi.http">HttpContext</a></td>
<td class="colLast">
<div class="block">HttpContext represents a mapping between the root URI path of a web
 service to a <a href="../../../../../jakarta/xml/ws/spi/http/HttpHandler.html" title="class in jakarta.xml.ws.spi.http"><code>HttpHandler</code></a> which is invoked to handle requests
 destined for that path on the associated container.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../jakarta/xml/ws/spi/http/HttpExchange.html" title="class in jakarta.xml.ws.spi.http">HttpExchange</a></td>
<td class="colLast">
<div class="block">This class encapsulates a HTTP request received and a 
 response to be generated in one exchange.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../jakarta/xml/ws/spi/http/HttpHandler.html" title="class in jakarta.xml.ws.spi.http">HttpHandler</a></td>
<td class="colLast">
<div class="block">A handler which is invoked to process HTTP requests.</div>
</td>
</tr>
</tbody>
</table>
</li>
</ul>
<a name="package.description">
<!--   -->
</a>
<h2 title="Package jakarta.xml.ws.spi.http Description">Package jakarta.xml.ws.spi.http Description</h2>
<div class="block">Provides HTTP SPI that is used for portable deployment of Jakarta XML Web Services
  in containers (for example servlet containers). This SPI
  is not for end developers but provides a way for the container
  developers to deploy Jakarta XML Web Services portably.

  <p>
  References in this document to JAX-WS refer to the Jakarta XML Web Services unless otherwise noted.<br>
  References in this document to SAAJ refer to the Jakarta SOAP with Attachments unless otherwise noted.<br>
  References in this document to JAXB refer to the Jakarta XML Binding unless otherwise noted.<br>
  References in this document to JWS refer to the Jakarta Web Services Metadata unless otherwise noted.

  <p>
  The portable deployment is done as below:
  <ol>
  <li>Container creates <a href="../../../../../jakarta/xml/ws/Endpoint.html" title="class in jakarta.xml.ws"><code>Endpoint</code></a> objects for an
  application. The necessary information to create Endpoint objects
  may be got from web service deployment descriptor files.</li>
  <li>Container needs to create <a href="../../../../../jakarta/xml/ws/spi/http/HttpContext.html" title="class in jakarta.xml.ws.spi.http"><code>HttpContext</code></a>
  objects for the deployment. For example, a HttpContext could be
  created using servlet configuration(for e.g url-pattern) for the
  web service in servlet container case.</li>
  <li>Then publishes all the endpoints using
  <a href="../../../../../jakarta/xml/ws/Endpoint.html#publish-jakarta.xml.ws.spi.http.HttpContext-"><code>Endpoint.publish(HttpContext)</code></a>. During publish(),
  JAX-WS runtime registers a <a href="../../../../../jakarta/xml/ws/spi/http/HttpHandler.html" title="class in jakarta.xml.ws.spi.http"><code>HttpHandler</code></a>
  callback to handle incoming requests or
  <a href="../../../../../jakarta/xml/ws/spi/http/HttpExchange.html" title="class in jakarta.xml.ws.spi.http"><code>HttpExchange</code></a> objects. The HttpExchange
  object encapsulates a HTTP request and a response.
  </ol>

  <pre>
  Container                               JAX-WS runtime
  ---------                               --------------
  1. Creates Invoker1, ... InvokerN
  2. Provider.createEndpoint(...)     --&gt; 3. creates Endpoint1
     configures Endpoint1
     ...
  4. Provider.createEndpoint(...)     --&gt; 5. creates EndpointN
     configures EndpointN
  6. Creates ApplicationContext
  7. creates HttpContext1, ... HttpContextN
  8. Endpoint1.publish(HttpContext1)  --&gt; 9. creates HttpHandler1
                                          HttpContext1.setHandler(HttpHandler1)
     ...
 10. EndpointN.publish(HttpContextN)  --&gt; 11. creates HttpHandlerN
                                         HttpContextN.setHandler(HttpHandlerN)

  </pre>

  The request processing is done as below(for every request):
  <pre>
  Container                               JAX-WS runtime
  ---------                               --------------
  1. Creates a HttpExchange
  2. Gets handler from HttpContext
  3. HttpHandler.handle(HttpExchange) --&gt; 4. reads request from HttpExchange
                                      &lt;-- 5. Calls Invoker
  6. Invokes the actual instance
                                          7. Writes the response to HttpExchange
  </pre>

  <p>
  The portable undeployment is done as below:
  <pre>
  Container
  ---------
  1.  @preDestroy on instances
  2. Endpoint1.stop()
  ...
  3. EndpointN.stop()
  </pre></div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>1.7, JAX-WS 2.2</dd>
</dl>
</div>
<!-- ======= 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 class="navBarCell1Rev">Package</li>
<li>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="../../../../../jakarta/xml/ws/spi/package-summary.html">Prev&nbsp;Package</a></li>
<li><a href="../../../../../jakarta/xml/ws/wsaddressing/package-summary.html">Next&nbsp;Package</a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?jakarta/xml/ws/spi/http/package-summary.html" target="_top">Frames</a></li>
<li><a href="package-summary.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>
<a name="skip.navbar.bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>
