blob: c8d00426bc83e569918652efdd6458bf28333331 [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>WebServiceRef</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="WebServiceRef";
}
}
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><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/WebServiceProvider.html" title="annotation in javax.xml.ws"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../javax/xml/ws/WebServiceRefs.html" title="annotation 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/WebServiceRef.html" target="_top">Frames</a></li>
<li><a href="WebServiceRef.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>Field&nbsp;|&nbsp;</li>
<li>Required&nbsp;|&nbsp;</li>
<li><a href="#annotation.type.optional.element.summary">Optional</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#annotation.type.element.detail">Element</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="Annotation Type WebServiceRef" class="title">Annotation Type WebServiceRef</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>@Target(value={TYPE,METHOD,FIELD})
@Retention(value=RUNTIME)
@Documented
@Repeatable(value=<a href="../../../javax/xml/ws/WebServiceRefs.html" title="annotation in javax.xml.ws">WebServiceRefs.class</a>)
public @interface <span class="memberNameLabel">WebServiceRef</span></pre>
<div class="block">The <code>WebServiceRef</code> annotation is used to
define a reference to a web service and
(optionally) an injection target for it.
It can be used to inject both service and proxy
instances. These injected references are not thread safe.
If the references are accessed by multiple threads,
usual synchronization techinques can be used to
support multiple threads.
<p>
Web service references are resources in the Java EE 5 sense.
The annotations (for example, <a href="../../../javax/xml/ws/soap/Addressing.html" title="annotation in javax.xml.ws.soap"><code>Addressing</code></a>) annotated with
meta-annotation <a href="../../../javax/xml/ws/spi/WebServiceFeatureAnnotation.html" title="annotation in javax.xml.ws.spi"><code>WebServiceFeatureAnnotation</code></a>
can be used in conjunction with <code>WebServiceRef</code>.
The created reference MUST be configured with annotation's web service
feature.
<p>
For example, in the code below, the injected
<code>StockQuoteProvider</code> proxy MUST
have WS-Addressing enabled as specifed by the
<a href="../../../javax/xml/ws/soap/Addressing.html" title="annotation in javax.xml.ws.soap"><code>Addressing</code></a>
annotation.
<pre><code>
public class MyClient {
@Addressing
@WebServiceRef(StockQuoteService.class)
private StockQuoteProvider stockQuoteProvider;
...
}
</code></pre>
<p>
If a JAX-WS implementation encounters an unsupported or unrecognized
annotation annotated with the <code>WebServiceFeatureAnnotation</code>
that is specified with <code>WebServiceRef</code>, an ERROR MUST be given.</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/annotation/Resource.html" title="annotation in javax.annotation"><code>Resource</code></a>,
<a href="../../../javax/xml/ws/spi/WebServiceFeatureAnnotation.html" title="annotation in javax.xml.ws.spi"><code>WebServiceFeatureAnnotation</code></a></dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== ANNOTATION TYPE OPTIONAL MEMBER SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="annotation.type.optional.element.summary">
<!-- -->
</a>
<h3>Optional Element Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Optional Element Summary table, listing optional elements, and an explanation">
<caption><span>Optional Elements</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Optional Element and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/xml/ws/WebServiceRef.html#lookup--">lookup</a></span></code>
<div class="block">A portable JNDI lookup name that resolves to the target
web service reference.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/xml/ws/WebServiceRef.html#mappedName--">mappedName</a></span></code>
<div class="block">A product specific name that this resource should be mapped to.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/xml/ws/WebServiceRef.html#name--">name</a></span></code>
<div class="block">The JNDI name of the resource.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>java.lang.Class&lt;?&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/xml/ws/WebServiceRef.html#type--">type</a></span></code>
<div class="block">The Java type of the resource.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>java.lang.Class&lt;? extends <a href="../../../javax/xml/ws/Service.html" title="class in javax.xml.ws">Service</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/xml/ws/WebServiceRef.html#value--">value</a></span></code>
<div class="block">The service class, always a type extending
<code>javax.xml.ws.Service</code>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/xml/ws/WebServiceRef.html#wsdlLocation--">wsdlLocation</a></span></code>
<div class="block">A URL pointing to the WSDL document for the web service.</div>
</td>
</tr>
</table>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ ANNOTATION TYPE MEMBER DETAIL =========== -->
<ul class="blockList">
<li class="blockList"><a name="annotation.type.element.detail">
<!-- -->
</a>
<h3>Element Detail</h3>
<a name="name--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>name</h4>
<pre>public abstract&nbsp;java.lang.String&nbsp;name</pre>
<div class="block">The JNDI name of the resource. For field annotations,
the default is the field name. For method annotations,
the default is the JavaBeans property name corresponding
to the method. For class annotations, there is no default
and this MUST be specified.
The JNDI name can be absolute(with any logical namespace) or relative
to JNDI <code>java:comp/env</code> namespace.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>absolute or relative JNDI name</dd>
</dl>
<dl>
<dt>Default:</dt>
<dd>""</dd>
</dl>
</li>
</ul>
</li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="type--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>type</h4>
<pre>public abstract&nbsp;java.lang.Class&lt;?&gt;&nbsp;type</pre>
<div class="block">The Java type of the resource. For field annotations,
the default is the type of the field. For method annotations,
the default is the type of the JavaBeans property.
For class annotations, there is no default and this MUST be
specified.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>type of the resource</dd>
</dl>
<dl>
<dt>Default:</dt>
<dd>java.lang.Object.class</dd>
</dl>
</li>
</ul>
</li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="mappedName--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>mappedName</h4>
<pre>public abstract&nbsp;java.lang.String&nbsp;mappedName</pre>
<div class="block">A product specific name that this resource should be mapped to.
The name of this resource, as defined by the <code>name</code>
element or defaulted, is a name that is local to the application
component using the resource. (When a relative JNDI name
is specified, then it's a name in the JNDI
<code>java:comp/env</code> namespace.) Many application servers
provide a way to map these local names to names of resources
known to the application server. This mapped name is often a
<i>global</i> JNDI name, but may be a name of any form.
<p>
Application servers are not required to support any particular
form or type of mapped name, nor the ability to use mapped names.
The mapped name is product-dependent and often installation-dependent.
No use of a mapped name is portable.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>product specific resource name</dd>
</dl>
<dl>
<dt>Default:</dt>
<dd>""</dd>
</dl>
</li>
</ul>
</li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="value--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>value</h4>
<pre>public abstract&nbsp;java.lang.Class&lt;? extends <a href="../../../javax/xml/ws/Service.html" title="class in javax.xml.ws">Service</a>&gt;&nbsp;value</pre>
<div class="block">The service class, always a type extending
<code>javax.xml.ws.Service</code>. This element MUST be specified
whenever the type of the reference is a service endpoint interface.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the service class extending <code>javax.xml.ws.Service</code></dd>
</dl>
<dl>
<dt>Default:</dt>
<dd>javax.xml.ws.Service.class</dd>
</dl>
</li>
</ul>
</li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="wsdlLocation--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>wsdlLocation</h4>
<pre>public abstract&nbsp;java.lang.String&nbsp;wsdlLocation</pre>
<div class="block">A URL pointing to the WSDL document for the web service.
If not specified, the WSDL location specified by annotations
on the resource type is used instead.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a URL pointing to the WSDL document</dd>
</dl>
<dl>
<dt>Default:</dt>
<dd>""</dd>
</dl>
</li>
</ul>
</li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="lookup--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>lookup</h4>
<pre>public abstract&nbsp;java.lang.String&nbsp;lookup</pre>
<div class="block">A portable JNDI lookup name that resolves to the target
web service reference.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>portable JNDI lookup name</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>1.7, JAX-WS 2.2</dd>
</dl>
<dl>
<dt>Default:</dt>
<dd>""</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/WebServiceProvider.html" title="annotation in javax.xml.ws"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../javax/xml/ws/WebServiceRefs.html" title="annotation 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/WebServiceRef.html" target="_top">Frames</a></li>
<li><a href="WebServiceRef.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>Field&nbsp;|&nbsp;</li>
<li>Required&nbsp;|&nbsp;</li>
<li><a href="#annotation.type.optional.element.summary">Optional</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#annotation.type.element.detail">Element</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>