Class W3CEndpointReferenceBuilder

java.lang.Object
jakarta.xml.ws.wsaddressing.W3CEndpointReferenceBuilder

public final class W3CEndpointReferenceBuilder extends Object
This class is used to build W3CEndpointReference instances. The intended use of this class is for an application component, for example a factory component, to create an W3CEndpointReference for a web service endpoint published by the same Jakarta EE application. It can also be used to create W3CEndpointReferences for a Java SE based endpoint by providing the address property.

When creating a W3CEndpointReference for an endpoint that is not published by the same Jakarta EE application, the address property MUST be specified.

When creating a W3CEndpointReference for an endpoint published by the same Jakarta EE application, the address property MAY be null but then the serviceName and endpointName MUST specify an endpoint published by the same Jakarta EE application.

When the wsdlDocumentLocation is specified it MUST refer to a valid WSDL document and the serviceName and endpointName (if specified) MUST match a service and port in the WSDL document.

  • Constructor Details

    • W3CEndpointReferenceBuilder

      public W3CEndpointReferenceBuilder()
      Creates a new W3CEndpointReferenceBuilder instance.
  • Method Details

    • address

      public W3CEndpointReferenceBuilder address(String address)
      Sets the address to the W3CEndpointReference instance's wsa:Address.

      The address MUST be set to a non-null value when building a W3CEndpointReference for a web service endpoint that is not published by the same Jakarta EE application or when running on Java SE.

      Parameters:
      address - The address of the endpoint to be targeted by the returned W3CEndpointReference.
      Returns:
      A W3CEndpointReferenceBuilder instance with the address set to the wsa:Address.
    • interfaceName

      public W3CEndpointReferenceBuilder interfaceName(QName interfaceName)
      Sets the interfaceName as the wsam:InterfaceName element in the wsa:Metadata element.

      See 2.1 Referencing WSDL Metadata from an EPR for more details.

      Parameters:
      interfaceName - The port type name of the endpoint to be targeted by the returned W3CEndpointReference.
      Returns:
      A W3CEndpointReferenceBuilder instance with the interfaceName as wsam:InterfaceName element added to the wsa:Metadata element
    • serviceName

      public W3CEndpointReferenceBuilder serviceName(QName serviceName)
      Sets the serviceName as the wsam:ServiceName element in the wsa:Metadata element.

      See 2.1 Referencing WSDL Metadata from an EPR for more details.

      Parameters:
      serviceName - The service name of the endpoint to be targeted by the returned W3CEndpointReference. This property may also be used with the endpointName (portName) property to look up the address of a web service endpoint that is published by the same Jakarta EE application.
      Returns:
      A W3CEndpointReferenceBuilder instance with the serviceName as wsam:ServiceName element added to the wsa:Metadata element
    • endpointName

      public W3CEndpointReferenceBuilder endpointName(QName endpointName)
      Sets the endpointName as wsam:ServiceName/@EndpointName in the wsa:Metadata element. This method can only be called after the serviceName(QName) method has been called.

      See 2.1 Referencing WSDL Metadata from an EPR for more details.

      Parameters:
      endpointName - The name of the endpoint to be targeted by the returned W3CEndpointReference. The endpointName (portName) property may also be used with the serviceName property to look up the address of a web service endpoint published by the same Jakarta EE application.
      Returns:
      A W3CEndpointReferenceBuilder instance with the endpointName as wsam:ServiceName/@EndpointName in the wsa:Metadata element.
      Throws:
      IllegalStateException - if the serviceName has not been set
      IllegalArgumentException - if the endpointName's Namespace URI doesn't match serviceName's Namespace URI
    • wsdlDocumentLocation

      public W3CEndpointReferenceBuilder wsdlDocumentLocation(String wsdlDocumentLocation)
      Sets the wsdlDocumentLocation that will be referenced as wsa:Metadata/@wsdl:wsdlLocation. The namespace name for the wsdl:wsdlLocation's value can be taken from the WSDL itself.

      See 2.1 Referencing WSDL Metadata from an EPR for more details.

      Parameters:
      wsdlDocumentLocation - The location of the WSDL document to be referenced in the wsa:Metadata of the W3CEndpointReference.
      Returns:
      A W3CEndpointReferenceBuilder instance with the wsdlDocumentLocation that is to be referenced.
    • referenceParameter

      public W3CEndpointReferenceBuilder referenceParameter(Element referenceParameter)
      Adds the referenceParameter to the W3CEndpointReference instance wsa:ReferenceParameters element.
      Parameters:
      referenceParameter - The element to be added to the wsa:ReferenceParameters element.
      Returns:
      A W3CEndpointReferenceBuilder instance with the referenceParameter added to the wsa:ReferenceParameters element.
      Throws:
      IllegalArgumentException - if referenceParameter is null.
    • metadata

      public W3CEndpointReferenceBuilder metadata(Element metadataElement)
      Adds the metadataElement to the W3CEndpointReference instance's wsa:Metadata element.
      Parameters:
      metadataElement - The element to be added to the wsa:Metadata element.
      Returns:
      A W3CEndpointReferenceBuilder instance with the metadataElement added to the wsa:Metadata element.
      Throws:
      IllegalArgumentException - if metadataElement is null.
    • element

      public W3CEndpointReferenceBuilder element(Element element)
      Adds an extension element to the W3CEndpointReference instance's wsa:EndpointReference element.
      Parameters:
      element - The extension element to be added to the W3CEndpointReference
      Returns:
      A W3CEndpointReferenceBuilder instance with the extension element added to the W3CEndpointReference instance.
      Throws:
      IllegalArgumentException - if element is null.
    • attribute

      public W3CEndpointReferenceBuilder attribute(QName name, String value)
      Adds an extension attribute to the W3CEndpointReference instance's wsa:EndpointReference element.
      Parameters:
      name - The name of the extension attribute to be added to the W3CEndpointReference
      value - extension attribute value
      Returns:
      A W3CEndpointReferenceBuilder instance with the extension attribute added to the W3CEndpointReference instance.
      Throws:
      IllegalArgumentException - if name or value is null.
    • build

      public W3CEndpointReference build()
      Builds a W3CEndpointReference from the accumulated properties set on this W3CEndpointReferenceBuilder instance.

      This method can be used to create a W3CEndpointReference for any endpoint by specifying the address property along with any other desired properties. This method can also be used to create a W3CEndpointReference for an endpoint that is published by the same Jakarta EE application. This method can automatically determine the address of an endpoint published by the same Jakarta EE application that is identified by the serviceName and endpointName properties. If the address is null and the serviceName and endpointName do not identify an endpoint published by the same Jakarta EE application, a java.lang.IllegalStateException MUST be thrown.

      Returns:
      W3CEndpointReference from the accumulated properties set on this W3CEndpointReferenceBuilder instance. This method never returns null.
      Throws:
      IllegalStateException -
      • If the address, serviceName and endpointName are all null.
      • If the serviceName service is null and the endpointName is NOT null.
      • If the address property is null and the serviceName and endpointName do not specify a valid endpoint published by the same Jakarta EE application.
      • If the serviceName is NOT null and is not present in the specified WSDL.
      • If the endpointName port is not null and it is not present in serviceName service in the WSDL.
      • If the wsdlDocumentLocation is NOT null and does not represent a valid WSDL.
      WebServiceException - If an error occurs while creating the W3CEndpointReference.