blob: 54450e1bd985cb4abecfdce46d56ede92f6f9d7a [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<title>HttpExchange</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="HttpExchange";
}
}
catch(err) {
}
//-->
var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6,"i14":6,"i15":6,"i16":6,"i17":6,"i18":6,"i19":6,"i20":6,"i21":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract 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/spi/http/HttpContext.html" title="class in javax.xml.ws.spi.http"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../javax/xml/ws/spi/http/HttpHandler.html" title="class in javax.xml.ws.spi.http"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?javax/xml/ws/spi/http/HttpExchange.html" target="_top">Frames</a></li>
<li><a href="HttpExchange.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>Nested&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&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><a href="#field.detail">Field</a>&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.spi.http</div>
<h2 title="Class HttpExchange" class="title">Class HttpExchange</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>javax.xml.ws.spi.http.HttpExchange</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>public abstract class <span class="typeNameLabel">HttpExchange</span>
extends java.lang.Object</pre>
<div class="block">This class encapsulates a HTTP request received and a
response to be generated in one exchange. It provides methods
for examining the request from the client, and for building and
sending the response.
<p>
A <code>HttpExchange</code> must be closed to free or reuse
underlying resources. The effect of failing to close an exchange
is undefined.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>1.7, JAX-WS 2.2</dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Field and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../javax/xml/ws/spi/http/HttpExchange.html#REQUEST_CIPHER_SUITE">REQUEST_CIPHER_SUITE</a></span></code>
<div class="block">Standard property: cipher suite value when the request is received
over HTTPS</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../javax/xml/ws/spi/http/HttpExchange.html#REQUEST_KEY_SIZE">REQUEST_KEY_SIZE</a></span></code>
<div class="block">Standard property: bit size of the algorithm when the request is
received over HTTPS</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../javax/xml/ws/spi/http/HttpExchange.html#REQUEST_X509CERTIFICATE">REQUEST_X509CERTIFICATE</a></span></code>
<div class="block">Standard property: A SSL certificate, if any, associated with the request</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="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../javax/xml/ws/spi/http/HttpExchange.html#HttpExchange--">HttpExchange</a></span>()</code>&nbsp;</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="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract 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>abstract void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../javax/xml/ws/spi/http/HttpExchange.html#addResponseHeader-java.lang.String-java.lang.String-">addResponseHeader</a></span>(java.lang.String&nbsp;name,
java.lang.String&nbsp;value)</code>
<div class="block">Adds a response header with the given name and value.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>abstract void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../javax/xml/ws/spi/http/HttpExchange.html#close--">close</a></span>()</code>
<div class="block">This must be called to end an exchange.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>abstract java.lang.Object</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../javax/xml/ws/spi/http/HttpExchange.html#getAttribute-java.lang.String-">getAttribute</a></span>(java.lang.String&nbsp;name)</code>
<div class="block">Returns an attribute that is associated with this
<code>HttpExchange</code>.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>abstract java.util.Set&lt;java.lang.String&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../javax/xml/ws/spi/http/HttpExchange.html#getAttributeNames--">getAttributeNames</a></span>()</code>
<div class="block">Gives all the attribute names that are associated with
this <code>HttpExchange</code>.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>abstract java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../javax/xml/ws/spi/http/HttpExchange.html#getContextPath--">getContextPath</a></span>()</code>
<div class="block">Returns the context path of all the endpoints in an application.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>abstract <a href="../../../../../javax/xml/ws/spi/http/HttpContext.html" title="class in javax.xml.ws.spi.http">HttpContext</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../javax/xml/ws/spi/http/HttpExchange.html#getHttpContext--">getHttpContext</a></span>()</code>
<div class="block">Returns a <a href="../../../../../javax/xml/ws/spi/http/HttpContext.html" title="class in javax.xml.ws.spi.http"><code>HttpContext</code></a> for this exchange.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>abstract java.net.InetSocketAddress</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../javax/xml/ws/spi/http/HttpExchange.html#getLocalAddress--">getLocalAddress</a></span>()</code>
<div class="block">Returns the unresolved local address on which the request was received.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>abstract java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../javax/xml/ws/spi/http/HttpExchange.html#getPathInfo--">getPathInfo</a></span>()</code>
<div class="block">Returns the extra path information that follows the web service
path but precedes the query string in the request URI and will start
with a "/" character.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>abstract java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../javax/xml/ws/spi/http/HttpExchange.html#getProtocol--">getProtocol</a></span>()</code>
<div class="block">Returns the protocol string from the request in the form
<i>protocol/majorVersion.minorVersion</i>.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>abstract java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../javax/xml/ws/spi/http/HttpExchange.html#getQueryString--">getQueryString</a></span>()</code>
<div class="block">Returns the query string that is contained in the request URI
after the path.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>abstract java.net.InetSocketAddress</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../javax/xml/ws/spi/http/HttpExchange.html#getRemoteAddress--">getRemoteAddress</a></span>()</code>
<div class="block">Returns the unresolved address of the remote entity invoking
this request.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>abstract java.io.InputStream</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../javax/xml/ws/spi/http/HttpExchange.html#getRequestBody--">getRequestBody</a></span>()</code>
<div class="block">Returns a stream from which the request body can be read.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>abstract java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../javax/xml/ws/spi/http/HttpExchange.html#getRequestHeader-java.lang.String-">getRequestHeader</a></span>(java.lang.String&nbsp;name)</code>
<div class="block">Returns the value of the specified request header.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>abstract java.util.Map&lt;java.lang.String,java.util.List&lt;java.lang.String&gt;&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../javax/xml/ws/spi/http/HttpExchange.html#getRequestHeaders--">getRequestHeaders</a></span>()</code>
<div class="block">Returns an immutable Map containing the HTTP headers that were
included with this request.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>abstract java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../javax/xml/ws/spi/http/HttpExchange.html#getRequestMethod--">getRequestMethod</a></span>()</code>
<div class="block">Get the HTTP request method</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>abstract java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../javax/xml/ws/spi/http/HttpExchange.html#getRequestURI--">getRequestURI</a></span>()</code>
<div class="block">Returns the part of the request's URI from the protocol
name up to the query string in the first line of the HTTP request.</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>abstract java.io.OutputStream</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../javax/xml/ws/spi/http/HttpExchange.html#getResponseBody--">getResponseBody</a></span>()</code>
<div class="block">Returns a stream to which the response body must be
written.</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code>abstract java.util.Map&lt;java.lang.String,java.util.List&lt;java.lang.String&gt;&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../javax/xml/ws/spi/http/HttpExchange.html#getResponseHeaders--">getResponseHeaders</a></span>()</code>
<div class="block">Returns a mutable Map into which the HTTP response headers can be stored
and which will be transmitted as part of this response.</div>
</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code>abstract java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../javax/xml/ws/spi/http/HttpExchange.html#getScheme--">getScheme</a></span>()</code>
<div class="block">Returns the name of the scheme used to make this request,
for example: http, or https.</div>
</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code>abstract java.security.Principal</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../javax/xml/ws/spi/http/HttpExchange.html#getUserPrincipal--">getUserPrincipal</a></span>()</code>
<div class="block">Returns the <code>Principal</code> that represents the authenticated
user for this <code>HttpExchange</code>.</div>
</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code>abstract boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../javax/xml/ws/spi/http/HttpExchange.html#isUserInRole-java.lang.String-">isUserInRole</a></span>(java.lang.String&nbsp;role)</code>
<div class="block">Indicates whether an authenticated user is included in the specified
logical "role".</div>
</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code>abstract void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../javax/xml/ws/spi/http/HttpExchange.html#setStatus-int-">setStatus</a></span>(int&nbsp;status)</code>
<div class="block">Sets the HTTP status code for the response.</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">
<!-- ============ FIELD DETAIL =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a name="REQUEST_CIPHER_SUITE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>REQUEST_CIPHER_SUITE</h4>
<pre>public static final&nbsp;java.lang.String REQUEST_CIPHER_SUITE</pre>
<div class="block">Standard property: cipher suite value when the request is received
over HTTPS
<p>Type: String</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../constant-values.html#javax.xml.ws.spi.http.HttpExchange.REQUEST_CIPHER_SUITE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="REQUEST_KEY_SIZE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>REQUEST_KEY_SIZE</h4>
<pre>public static final&nbsp;java.lang.String REQUEST_KEY_SIZE</pre>
<div class="block">Standard property: bit size of the algorithm when the request is
received over HTTPS
<p>Type: Integer</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../constant-values.html#javax.xml.ws.spi.http.HttpExchange.REQUEST_KEY_SIZE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="REQUEST_X509CERTIFICATE">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>REQUEST_X509CERTIFICATE</h4>
<pre>public static final&nbsp;java.lang.String REQUEST_X509CERTIFICATE</pre>
<div class="block">Standard property: A SSL certificate, if any, associated with the request
<p>Type: java.security.cert.X509Certificate[]
The order of this array is defined as being in ascending order of trust.
The first certificate in the chain is the one set by the client, the next
is the one used to authenticate the first, and so on.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../constant-values.html#javax.xml.ws.spi.http.HttpExchange.REQUEST_X509CERTIFICATE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="HttpExchange--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>HttpExchange</h4>
<pre>public&nbsp;HttpExchange()</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="getRequestHeaders--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRequestHeaders</h4>
<pre>public abstract&nbsp;java.util.Map&lt;java.lang.String,java.util.List&lt;java.lang.String&gt;&gt;&nbsp;getRequestHeaders()</pre>
<div class="block">Returns an immutable Map containing the HTTP headers that were
included with this request. The keys in this Map will be the header
names, while the values will be a List of Strings containing each value
that was included (either for a header that was listed several times,
or one that accepts a comma-delimited list of values on a single line).
In either of these cases, the values for the header name will be
presented in the order that they were included in the request.
<p>
The keys in Map are case-insensitive.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>an immutable Map which can be used to access request headers</dd>
</dl>
</li>
</ul>
<a name="getRequestHeader-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRequestHeader</h4>
<pre>public abstract&nbsp;java.lang.String&nbsp;getRequestHeader(java.lang.String&nbsp;name)</pre>
<div class="block">Returns the value of the specified request header. If the request
did not include a header of the specified name, this method returns
null. If there are multiple headers with the same name, this method
returns the first header in the request. The header name is
case-insensitive. This is a convienence method to get a header
(instead of using the <a href="../../../../../javax/xml/ws/spi/http/HttpExchange.html#getRequestHeaders--"><code>getRequestHeaders()</code></a>).</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - the name of the request header</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>returns the value of the requested header,
or null if the request does not have a header of that name</dd>
</dl>
</li>
</ul>
<a name="getResponseHeaders--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getResponseHeaders</h4>
<pre>public abstract&nbsp;java.util.Map&lt;java.lang.String,java.util.List&lt;java.lang.String&gt;&gt;&nbsp;getResponseHeaders()</pre>
<div class="block">Returns a mutable Map into which the HTTP response headers can be stored
and which will be transmitted as part of this response. The keys in the
Map will be the header names, while the values must be a List of Strings
containing each value that should be included multiple times
(in the order that they should be included).
<p>
The keys in Map are case-insensitive.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a mutable Map which can be used to set response headers.</dd>
</dl>
</li>
</ul>
<a name="addResponseHeader-java.lang.String-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addResponseHeader</h4>
<pre>public abstract&nbsp;void&nbsp;addResponseHeader(java.lang.String&nbsp;name,
java.lang.String&nbsp;value)</pre>
<div class="block">Adds a response header with the given name and value. This method
allows a response header to have multiple values. This is a
convenience method to add a response header(instead of using the
<a href="../../../../../javax/xml/ws/spi/http/HttpExchange.html#getResponseHeaders--"><code>getResponseHeaders()</code></a>).</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - the name of the header</dd>
<dd><code>value</code> - the additional header value. If it contains octet string,
it should be encoded according to
RFC 2047 (http://www.ietf.org/rfc/rfc2047.txt)</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../javax/xml/ws/spi/http/HttpExchange.html#getResponseHeaders--"><code>getResponseHeaders()</code></a></dd>
</dl>
</li>
</ul>
<a name="getRequestURI--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRequestURI</h4>
<pre>public abstract&nbsp;java.lang.String&nbsp;getRequestURI()</pre>
<div class="block">Returns the part of the request's URI from the protocol
name up to the query string in the first line of the HTTP request.
Container doesn't decode this string.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the request URI</dd>
</dl>
</li>
</ul>
<a name="getContextPath--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getContextPath</h4>
<pre>public abstract&nbsp;java.lang.String&nbsp;getContextPath()</pre>
<div class="block">Returns the context path of all the endpoints in an application.
This path is the portion of the request URI that indicates the
context of the request. The context path always comes first in a
request URI. The path starts with a "/" character but does not
end with a "/" character. If this method returns "", the request
is for default context. The container does not decode this string.
<p>
Context path is used in computing the endpoint address. See
<a href="../../../../../javax/xml/ws/spi/http/HttpContext.html#getPath--"><code>HttpContext.getPath()</code></a></div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>context path of all the endpoints in an application</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../javax/xml/ws/spi/http/HttpContext.html#getPath--"><code>HttpContext.getPath()</code></a></dd>
</dl>
</li>
</ul>
<a name="getRequestMethod--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRequestMethod</h4>
<pre>public abstract&nbsp;java.lang.String&nbsp;getRequestMethod()</pre>
<div class="block">Get the HTTP request method</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the request method</dd>
</dl>
</li>
</ul>
<a name="getHttpContext--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getHttpContext</h4>
<pre>public abstract&nbsp;<a href="../../../../../javax/xml/ws/spi/http/HttpContext.html" title="class in javax.xml.ws.spi.http">HttpContext</a>&nbsp;getHttpContext()</pre>
<div class="block">Returns a <a href="../../../../../javax/xml/ws/spi/http/HttpContext.html" title="class in javax.xml.ws.spi.http"><code>HttpContext</code></a> for this exchange.
Container matches the request with the associated Endpoint's HttpContext</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the HttpContext for this exchange</dd>
</dl>
</li>
</ul>
<a name="close--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>close</h4>
<pre>public abstract&nbsp;void&nbsp;close()
throws java.io.IOException</pre>
<div class="block">This must be called to end an exchange. Container takes care of
closing request and response streams. This must be called so that
the container can free or reuse underlying resources.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.io.IOException</code> - if any i/o error</dd>
</dl>
</li>
</ul>
<a name="getRequestBody--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRequestBody</h4>
<pre>public abstract&nbsp;java.io.InputStream&nbsp;getRequestBody()
throws java.io.IOException</pre>
<div class="block">Returns a stream from which the request body can be read.
Multiple calls to this method will return the same stream.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the stream from which the request body can be read.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.io.IOException</code> - if any i/o error during request processing</dd>
</dl>
</li>
</ul>
<a name="getResponseBody--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getResponseBody</h4>
<pre>public abstract&nbsp;java.io.OutputStream&nbsp;getResponseBody()
throws java.io.IOException</pre>
<div class="block">Returns a stream to which the response body must be
written. <a href="../../../../../javax/xml/ws/spi/http/HttpExchange.html#setStatus-int-"><code>setStatus(int)</code></a>) must be called prior to calling
this method. Multiple calls to this method (for the same exchange)
will return the same stream.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the stream to which the response body is written</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.io.IOException</code> - if any i/o error during response processing</dd>
</dl>
</li>
</ul>
<a name="setStatus-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setStatus</h4>
<pre>public abstract&nbsp;void&nbsp;setStatus(int&nbsp;status)</pre>
<div class="block">Sets the HTTP status code for the response.
<p>
This method must be called prior to calling <a href="../../../../../javax/xml/ws/spi/http/HttpExchange.html#getResponseBody--"><code>getResponseBody()</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>status</code> - the response code to send</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../javax/xml/ws/spi/http/HttpExchange.html#getResponseBody--"><code>getResponseBody()</code></a></dd>
</dl>
</li>
</ul>
<a name="getRemoteAddress--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRemoteAddress</h4>
<pre>public abstract&nbsp;java.net.InetSocketAddress&nbsp;getRemoteAddress()</pre>
<div class="block">Returns the unresolved address of the remote entity invoking
this request.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the InetSocketAddress of the caller</dd>
</dl>
</li>
</ul>
<a name="getLocalAddress--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getLocalAddress</h4>
<pre>public abstract&nbsp;java.net.InetSocketAddress&nbsp;getLocalAddress()</pre>
<div class="block">Returns the unresolved local address on which the request was received.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the InetSocketAddress of the local interface</dd>
</dl>
</li>
</ul>
<a name="getProtocol--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getProtocol</h4>
<pre>public abstract&nbsp;java.lang.String&nbsp;getProtocol()</pre>
<div class="block">Returns the protocol string from the request in the form
<i>protocol/majorVersion.minorVersion</i>. For example,
"HTTP/1.1"</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the protocol string from the request</dd>
</dl>
</li>
</ul>
<a name="getScheme--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getScheme</h4>
<pre>public abstract&nbsp;java.lang.String&nbsp;getScheme()</pre>
<div class="block">Returns the name of the scheme used to make this request,
for example: http, or https.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>name of the scheme used to make this request</dd>
</dl>
</li>
</ul>
<a name="getPathInfo--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPathInfo</h4>
<pre>public abstract&nbsp;java.lang.String&nbsp;getPathInfo()</pre>
<div class="block">Returns the extra path information that follows the web service
path but precedes the query string in the request URI and will start
with a "/" character.
<p>
This can be used for <a href="../../../../../javax/xml/ws/handler/MessageContext.html#PATH_INFO"><code>MessageContext.PATH_INFO</code></a></div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>decoded extra path information of web service.
It is the path that comes
after the web service path but before the query string in the
request URI
<code>null</code> if there is no extra path in the request URI</dd>
</dl>
</li>
</ul>
<a name="getQueryString--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getQueryString</h4>
<pre>public abstract&nbsp;java.lang.String&nbsp;getQueryString()</pre>
<div class="block">Returns the query string that is contained in the request URI
after the path.
<p>
This can be used for <a href="../../../../../javax/xml/ws/handler/MessageContext.html#QUERY_STRING"><code>MessageContext.QUERY_STRING</code></a></div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>undecoded query string of request URI, or
<code>null</code> if the request URI doesn't have one</dd>
</dl>
</li>
</ul>
<a name="getAttribute-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getAttribute</h4>
<pre>public abstract&nbsp;java.lang.Object&nbsp;getAttribute(java.lang.String&nbsp;name)</pre>
<div class="block">Returns an attribute that is associated with this
<code>HttpExchange</code>. JAX-WS handlers and endpoints may then
access the attribute via <a href="../../../../../javax/xml/ws/handler/MessageContext.html" title="interface in javax.xml.ws.handler"><code>MessageContext</code></a>.
<p>
Servlet containers must expose <a href="../../../../../javax/xml/ws/handler/MessageContext.html#SERVLET_CONTEXT"><code>MessageContext.SERVLET_CONTEXT</code></a>,
<a href="../../../../../javax/xml/ws/handler/MessageContext.html#SERVLET_REQUEST"><code>MessageContext.SERVLET_REQUEST</code></a>, and
<a href="../../../../../javax/xml/ws/handler/MessageContext.html#SERVLET_RESPONSE"><code>MessageContext.SERVLET_RESPONSE</code></a>
as attributes.
<p>If the request has been received by the container using HTTPS, the
following information must be exposed as attributes. These attributes
are <a href="../../../../../javax/xml/ws/spi/http/HttpExchange.html#REQUEST_CIPHER_SUITE"><code>REQUEST_CIPHER_SUITE</code></a>, and <a href="../../../../../javax/xml/ws/spi/http/HttpExchange.html#REQUEST_KEY_SIZE"><code>REQUEST_KEY_SIZE</code></a>.
If there is a SSL certificate associated with the request, it must
be exposed using <a href="../../../../../javax/xml/ws/spi/http/HttpExchange.html#REQUEST_X509CERTIFICATE"><code>REQUEST_X509CERTIFICATE</code></a></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - attribute name</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the attribute value, or <code>null</code> if the attribute doesn't
exist</dd>
</dl>
</li>
</ul>
<a name="getAttributeNames--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getAttributeNames</h4>
<pre>public abstract&nbsp;java.util.Set&lt;java.lang.String&gt;&nbsp;getAttributeNames()</pre>
<div class="block">Gives all the attribute names that are associated with
this <code>HttpExchange</code>.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>set of all attribute names</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../javax/xml/ws/spi/http/HttpExchange.html#getAttribute-java.lang.String-"><code>getAttribute(String)</code></a></dd>
</dl>
</li>
</ul>
<a name="getUserPrincipal--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getUserPrincipal</h4>
<pre>public abstract&nbsp;java.security.Principal&nbsp;getUserPrincipal()</pre>
<div class="block">Returns the <code>Principal</code> that represents the authenticated
user for this <code>HttpExchange</code>.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Principal for an authenticated user, or
<code>null</code> if not authenticated</dd>
</dl>
</li>
</ul>
<a name="isUserInRole-java.lang.String-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>isUserInRole</h4>
<pre>public abstract&nbsp;boolean&nbsp;isUserInRole(java.lang.String&nbsp;role)</pre>
<div class="block">Indicates whether an authenticated user is included in the specified
logical "role".</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>role</code> - specifies the name of the role</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>true</code> if the user making this request belongs to a
given role</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/spi/http/HttpContext.html" title="class in javax.xml.ws.spi.http"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../javax/xml/ws/spi/http/HttpHandler.html" title="class in javax.xml.ws.spi.http"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?javax/xml/ws/spi/http/HttpExchange.html" target="_top">Frames</a></li>
<li><a href="HttpExchange.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>Nested&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&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><a href="#field.detail">Field</a>&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>