uTools-Manuals/docs/java/javax/xml/ws/spi/http/package-summary.html

100 lines
5.2 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<div class="header">
<h1 class="title" title="Package">Package javax.xml.ws.spi.http</h1>
<div class="docSummary">
<div class="block">
提供HTTP SPI用于在容器中轻松部署JAX-WS Web服务例如
</div>
</div>
<p>See: <a href="#package.description">描述</a></p>
</div><div class="contentContainer">
<ul class="blockList">
<li class="blockList">
<table border="0" cellpadding="3" cellspacing="0" class="typeSummary" summary="Class Summary table, listing classes, and an explanation">
<caption>
<span>类摘要</span>
<span class="tabEnd"> </span>
</caption>
<tbody>
<tr>
<th class="colFirst" scope="col"></th>
<th class="colLast" scope="col">描述</th>
</tr>
</tbody>
<tbody>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../javax/xml/ws/spi/http/HttpContext.html" title="class in javax.xml.ws.spi.http">HttpContext</a></td>
<td class="colLast">
<div class="block">
<span>的HttpContext表示Web服务到的根URI路径之间的映射<a href="../../../../../javax/xml/ws/spi/http/HttpHandler.html" title="javax.xml.ws.spi.http中的类"><code>HttpHandler</code></a>被调用来处理目的地为相关的容器上的路径的请求。</span>
</div> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../javax/xml/ws/spi/http/HttpExchange.html" title="class in javax.xml.ws.spi.http">HttpExchange</a></td>
<td class="colLast">
<div class="block">
此类封装了收到的HTTP请求和在一个交换中生成的响应。
</div> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../javax/xml/ws/spi/http/HttpHandler.html" title="class in javax.xml.ws.spi.http">HttpHandler</a></td>
<td class="colLast">
<div class="block">
被调用以处理HTTP请求的处理程序。
</div> </td>
</tr>
</tbody>
</table> </li>
</ul>
<a name="package.description">
<!-- --> </a>
<h2 title="Package javax.xml.ws.spi.http Description">Package javax.xml.ws.spi.http Description</h2>
<div class="block">
<span>提供用于在容器例如servlet容器中便携式部署JAX-WS Web服务的HTTP SPI。</span>
<span>此SPI不适用于最终开发人员但为容器开发人员提供可移植部署JAX-WS服务的方式。</span>
<p> <span>便携式部署完成如下:</span> </p>
<ol>
<li> <span>容器为<a href="../../../../../javax/xml/ws/Endpoint.html" title="javax.xml.ws中的类">应用</a>程序创建<a href="../../../../../javax/xml/ws/Endpoint.html" title="javax.xml.ws中的类"><code>Endpoint</code></a>对象。</span> <span>创建端点对象的必要信息可能来自Web服务部署描述符文件。</span> </li>
<li> <span>容器需要创建<a href="../../../../../javax/xml/ws/spi/http/HttpContext.html" title="javax.xml.ws.spi.http中的类"><code>HttpContext</code></a>对象进行部署。</span> <span>例如可以使用servlet配置例如url-pattern在servlet容器情况下为Web服务创建HttpContext。</span> </li>
<li> <span>然后使用<a href="../../../../../javax/xml/ws/Endpoint.html#publish-javax.xml.ws.spi.http.HttpContext-"><code>Endpoint.publish(HttpContext)</code></a>发布所有<a href="../../../../../javax/xml/ws/Endpoint.html#publish-javax.xml.ws.spi.http.HttpContext-">端点</a></span> <span>在publish期间JAX-WS运行时注册一个<a href="../../../../../javax/xml/ws/spi/http/HttpHandler.html" title="javax.xml.ws.spi.http中的类"><code>HttpHandler</code></a>回调来处理传入请求或<a href="../../../../../javax/xml/ws/spi/http/HttpExchange.html" title="javax.xml.ws.spi.http中的类"><code>HttpExchange</code></a>对象。</span> <span>HttpExchange对象封装了HTTP请求和响应。</span> </li>
</ol>
<pre> <span>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)</span> </pre>
<span>请求处理完成如下(对于每个请求):</span>
<pre> <span>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</span> </pre>
<p> <span>便携式取消部署完成如下:</span> </p>
<pre> <span>Container
---------
1. @preDestroy on instances
2. Endpoint1.stop()
...
3. EndpointN.stop()</span> </pre>
</div>
<dl>
<dt>
<span class="simpleTagLabel">从以下版本开始:</span>
</dt>
<dd>
JAX-WS 2.2
</dd>
</dl>
</div>