mirror of
https://github.com/fofolee/uTools-Manuals.git
synced 2025-07-06 09:02:49 +08:00
100 lines
5.2 KiB
HTML
100 lines
5.2 KiB
HTML
<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(...) --> 3. creates Endpoint1
|
||
configures Endpoint1
|
||
...
|
||
4. Provider.createEndpoint(...) --> 5. creates EndpointN
|
||
configures EndpointN
|
||
6. Creates ApplicationContext
|
||
7. creates HttpContext1, ... HttpContextN
|
||
8. Endpoint1.publish(HttpContext1) --> 9. creates HttpHandler1
|
||
HttpContext1.setHandler(HttpHandler1)
|
||
...
|
||
10. EndpointN.publish(HttpContextN) --> 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) --> 4. reads request from HttpExchange
|
||
<-- 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> |