WebServiceRef
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 techniques can be used to
support multiple threads.
Web service references are resources in the Jakarta EE sense.
The annotations (for example, Addressing
) annotated with
meta-annotation WebServiceFeatureAnnotation
can be used in conjunction with WebServiceRef
.
The created reference MUST be configured with annotation's web service
feature.
For example, in the code below, the injected
StockQuoteProvider
proxy MUST
have WS-Addressing enabled as specified by the
Addressing
annotation.
public class MyClient {
@Addressing
@WebServiceRef(StockQuoteService.class)
private StockQuoteProvider stockQuoteProvider;
...
}
If a Jakarta XML Web Services implementation encounters an unsupported or unrecognized
annotation annotated with the WebServiceFeatureAnnotation
that is specified with WebServiceRef
, an ERROR MUST be given.
- See Also:
-
Optional Element Summary
Modifier and TypeOptional ElementDescriptionA portable JNDI lookup name that resolves to the target web service reference.A product specific name that this resource should be mapped to.The JNDI name of the resource.Class
<?> The Java type of the resource.The service class, always a type extendingjakarta.xml.ws.Service
.A URL pointing to the WSDL document for the web service.
-
Element Details
-
name
String nameThe 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
java:comp/env
namespace.- Returns:
- absolute or relative JNDI name
- Default:
""
-
type
Class<?> typeThe 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.- Returns:
- type of the resource
- Default:
java.lang.Object.class
-
mappedName
String mappedNameA product specific name that this resource should be mapped to. The name of this resource, as defined by thename
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 JNDIjava:comp/env
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 global JNDI name, but may be a name of any form.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.
- Returns:
- product specific resource name
- Default:
""
-
value
The service class, always a type extendingjakarta.xml.ws.Service
. This element MUST be specified whenever the type of the reference is a service endpoint interface.- Returns:
- the service class extending
jakarta.xml.ws.Service
- Default:
jakarta.xml.ws.Service.class
-
wsdlLocation
String wsdlLocationA 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.- Returns:
- a URL pointing to the WSDL document
- Default:
""
-
lookup
String lookupA portable JNDI lookup name that resolves to the target web service reference.- Returns:
- portable JNDI lookup name
- Default:
""
-