javax.xml.ws

## Annotation Type WebServiceRef

-     @Target(value={TYPE,METHOD,FIELD})
       @Retention(value=RUNTIME)
       @Documented
      public @interface WebServiceRef

  The `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 techinques can be used to support multiple threads.

  Web service references are resources in the Java EE 5 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 specifed by the `Addressing` annotation.

          public class MyClient {
             @Addressing
             @WebServiceRef(StockQuoteService.class)
             private StockQuoteProvider stockQuoteProvider;
             ...
          }

  If a JAX-WS implementation encounters an unsupported or unrecognized annotation annotated with the `WebServiceFeatureAnnotation` that is specified with `WebServiceRef`, an ERROR MUST be given.

  Since:
    JAX-WS 2.0
  See Also:
    `Resource`, `WebServiceFeatureAnnotation`

- - ### Optional Element Summary

    Optional Elements
    Modifier and Type | Optional Element | Description
    --- | --- | ---
    `String` | `lookup` | A portable JNDI lookup name that resolves to the target web service reference.
    `String` | `mappedName` | A product specific name that this resource should be mapped to.
    `String` | `name` | The JNDI name of the resource.
    `Class<?>` | `type` | The Java type of the resource.
    `Class<? extends Service>` | `value` | The service class, alwiays a type extending `javax.xml.ws.Service`.
    `String` | `wsdlLocation` | A URL pointing to the WSDL document for the web service.

- - ### Element Detail

    - #### name

          public abstract String name

      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 `java:comp/env` namespace.
      Default:
        ""

  - - #### type

          public abstract Class<?> type

      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.
      Default:
        java.lang.Object.class

  - - #### mappedName

          public abstract String mappedName

      A product specific name that this resource should be mapped to. The name of this resource, as defined by the `name` 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 `java: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.

      Default:
        ""

  - - #### value

          public abstract Class<? extends Service> value

      The service class, alwiays a type extending `javax.xml.ws.Service`. This element MUST be specified whenever the type of the reference is a service endpoint interface.
      Default:
        javax.xml.ws.Service.class

  - - #### wsdlLocation

          public abstract String wsdlLocation

      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.
      Default:
        ""

  - - #### lookup

          public abstract String lookup

      A portable JNDI lookup name that resolves to the target web service reference.
      Since:
        JAX-WS 2.2
      Default:
        ""

Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2026, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.