Class Communicator


  • public final class Communicator
    extends Object
    Transmits standalone protocol messages over the wire. Provides also some additional utility methods for creating and unmarshalling JAXWS Message and Header objects. WARNING: This class is a private utility class used by WS-RX implementation. Any usage outside the intended scope is strongly discouraged. The API exposed by this class may be changed, replaced or removed without any advance notice.
    Author:
    Marek Potociar (marek.potociar at oracle.com)
    • Field Detail

      • soapMustUnderstandAttributeName

        public final QName soapMustUnderstandAttributeName
    • Method Detail

      • createRequestPacket

        public final Packet createRequestPacket​(Object jaxbElement,
                                                String wsaAction,
                                                boolean expectReply)
      • createRequestPacket

        public final Packet createRequestPacket​(Message message,
                                                String wsaAction,
                                                boolean expectReply)
      • createRequestPacket

        public final Packet createRequestPacket​(Packet originalRequestPacket,
                                                Object jaxbElement,
                                                String wsaAction,
                                                boolean expectReply)
      • createEmptyRequestPacket

        public Packet createEmptyRequestPacket​(boolean expectReply)
        Creates a new empty request packet
        Returns:
        a new empty request packet
      • createEmptyRequestPacket

        public Packet createEmptyRequestPacket​(String requestWsaAction,
                                               boolean expectReply)
        Creates a new empty request packet with an empty message that has WS-A action set
        Returns:
        a new empty request packet
      • createResponsePacket

        public Packet createResponsePacket​(@NotNull
                                           Packet requestPacket,
                                           Object jaxbElement,
                                           String responseWsaAction,
                                           boolean isClientResponse)
        Creates new response packet based for the supplied request packet with the provided response WS-Addressing action set.
        Parameters:
        requestPacket - original request the newly created response belongs to
        responseWsaAction - WS-Addressing action header value to be set
        isClientResponse - determines whether the response is technically a client request
        Returns:
        newly created response packet
      • createResponsePacket

        public Packet createResponsePacket​(Packet requestPacket,
                                           Message message,
                                           String responseWsaAction)
        Creates new response packet based for the supplied request packet with the provided response WS-Addressing action set.
        Parameters:
        requestPacket - original request the newly created response belongs to
        responseWsaAction - WS-Addressing action header value to be set
        Returns:
        newly created response packet
      • createEmptyResponsePacket

        public Packet createEmptyResponsePacket​(Packet requestPacket,
                                                String responseWsaAction)
        Creates an empty (no SOAP body payload) new response packet based for the supplied request packet with the provided response WS-Addressing action set.
        Parameters:
        requestPacket - original request the newly created response belongs to
        responseWsaAction - WS-Addressing action header value to be set
        Returns:
        newly created empty (no SOAP body payload) response packet
      • createNullResponsePacket

        public Packet createNullResponsePacket​(Packet requestPacket)
        Creates a null (no message) response packet based for the supplied request packet.
        Parameters:
        requestPacket - original request the newly created response belongs to
        Returns:
        newly created null (no message) response packet
      • setEmptyRequestMessage

        public final Packet setEmptyRequestMessage​(Packet request,
                                                   String wsaAction)
        Creates a new JAX-WS Message object that doesn't have any payload and sets it as the current packet content as a request message.
        Parameters:
        wsaAction - WS-Addressing action header to set
        Returns:
        the updated Packet instance
      • setEmptyResponseMessage

        public final Packet setEmptyResponseMessage​(Packet response,
                                                    Packet request,
                                                    String wsaAction)
        Overwrites the Message of the response packet with a newly created empty Message instance. Unlike Packet.setMessage(Message), this method fills in the Message's WS-Addressing headers correctly, based on the provided request packet WS-Addressing headers.
        Parameters:
        request -
        wsaAction -
        Returns:
      • getWsaAction

        public String getWsaAction​(Packet packet)
        Returns the value of WS-Addressing Action header of a message stored in the Packet.
        Parameters:
        packet - JAX-WS RI packet
        Returns:
        Value of WS-Addressing Action header, null if the header is not present
      • getWsaTo

        public String getWsaTo​(Packet packet)
        Returns the value of WS-Addressing To header of a message stored in the Packet.
        Parameters:
        packet - JAX-WS RI packet
        Returns:
        Value of WS-Addressing To header, null if the header is not present
      • tryStartSecureConversation

        public SecurityTokenReferenceType tryStartSecureConversation​(Packet request)
                                                              throws WSTrustException
        If security is enabled, tries to initate secured conversation and obtain the security token reference.
        Returns:
        security token reference of the initiated secured conversation, or null if there is no SC configured
        Throws:
        WSTrustException
      • send

        public Packet send​(@NotNull
                           Packet request)
        Sends the request Packet and returns the corresponding response Packet. This method should be used for Req-Res MEP
        Parameters:
        request - Packet containing the message to be send
        Returns:
        response Message wrapped in a response Packet received
      • sendAsync

        public void sendAsync​(@NotNull
                              Packet request,
                              @Nullable
                              Fiber.CompletionCallback completionCallbackHandler)
        Asynchronously sends the request Packet
        Parameters:
        request - Packet containing the message to be send
        completionCallbackHandler - completion callback handler to process the response. May be null. In such case a generic completion callback handler will be used.
      • getDestinationAddress

        @Nullable
        public EndpointAddress getDestinationAddress()
        Provides the destination endpoint reference this Communicator is pointing to. May return null (typically when used on the server side).
        Returns:
        destination endpoint reference or null in case the destination address has not been specified when constructing this Communicator instance.
      • setDestinationAddress

        public void setDestinationAddress​(EndpointAddress newValue)
      • setDestinationAddressFrom

        public void setDestinationAddressFrom​(Packet packet)
      • close

        public void close()
      • isClosed

        public boolean isClosed()
      • getContainer

        public Component getContainer()