- java.lang.Object
-
- com.sun.xml.ws.rx.util.Communicator
-
public final class Communicator extends Object
Transmits standalone protocol messages over the wire. Provides also some additional utility methods for creating and unmarshalling JAXWSMessageandHeaderobjects. 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)
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classCommunicator.Builder
-
Field Summary
Fields Modifier and Type Field Description QNamesoapMustUnderstandAttributeName
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static Communicator.Builderbuilder(String name)voidclose()com.sun.xml.ws.api.message.PacketcreateEmptyRequestPacket(boolean expectReply)Creates a new empty request packetcom.sun.xml.ws.api.message.PacketcreateEmptyRequestPacket(String requestWsaAction, boolean expectReply)Creates a new empty request packet with an empty message that has WS-A action setcom.sun.xml.ws.api.message.PacketcreateEmptyResponsePacket(com.sun.xml.ws.api.message.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.com.sun.xml.ws.api.message.PacketcreateNullResponsePacket(com.sun.xml.ws.api.message.Packet requestPacket)Creates a null (no message) response packet based for the supplied request packet.com.sun.xml.ws.api.message.PacketcreateRequestPacket(com.sun.xml.ws.api.message.Message message, String wsaAction, boolean expectReply)com.sun.xml.ws.api.message.PacketcreateRequestPacket(com.sun.xml.ws.api.message.Packet originalRequestPacket, Object jaxbElement, String wsaAction, boolean expectReply)com.sun.xml.ws.api.message.PacketcreateRequestPacket(Object jaxbElement, String wsaAction, boolean expectReply)com.sun.xml.ws.api.message.PacketcreateResponsePacket(com.sun.xml.ws.api.message.Packet requestPacket, com.sun.xml.ws.api.message.Message message, String responseWsaAction)Creates new response packet based for the supplied request packet with the provided response WS-Addressing action set.com.sun.xml.ws.api.message.PacketcreateResponsePacket(com.sun.xml.ws.api.message.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.com.sun.xml.ws.api.addressing.AddressingVersiongetAddressingVersion()com.sun.xml.ws.api.ComponentgetContainer()com.sun.xml.ws.api.EndpointAddressgetDestinationAddress()Provides the destination endpoint reference thisCommunicatoris pointing to.com.sun.xml.ws.api.SOAPVersiongetSoapVersion()StringgetWsaAction(com.sun.xml.ws.api.message.Packet packet)Returns the value of WS-AddressingActionheader of a message stored in thePacket.StringgetWsaTo(com.sun.xml.ws.api.message.Packet packet)Returns the value of WS-AddressingToheader of a message stored in thePacket.booleanisClosed()com.sun.xml.ws.api.message.Packetsend(com.sun.xml.ws.api.message.Packet request)Sends the requestPacketand returns the corresponding responsePacket.voidsendAsync(com.sun.xml.ws.api.message.Packet request, com.sun.xml.ws.api.pipe.Fiber.CompletionCallback completionCallbackHandler)Asynchronously sends the requestPacketvoidsendAsync(com.sun.xml.ws.api.message.Packet request, com.sun.xml.ws.api.pipe.Fiber.CompletionCallback completionCallbackHandler, com.sun.xml.ws.api.pipe.FiberContextSwitchInterceptor interceptor)voidsetDestinationAddress(com.sun.xml.ws.api.EndpointAddress newValue)voidsetDestinationAddressFrom(com.sun.xml.ws.api.message.Packet packet)com.sun.xml.ws.api.message.PacketsetEmptyRequestMessage(com.sun.xml.ws.api.message.Packet request, String wsaAction)Creates a new JAX-WSMessageobject that doesn't have any payload and sets it as the current packet content as a request message.com.sun.xml.ws.api.message.PacketsetEmptyResponseMessage(com.sun.xml.ws.api.message.Packet response, com.sun.xml.ws.api.message.Packet request, String wsaAction)Overwrites theMessageof the response packet with a newly created emptyMessageinstance.SecurityTokenReferenceTypetryStartSecureConversation(com.sun.xml.ws.api.message.Packet request)If security is enabled, tries to initate secured conversation and obtain the security token reference.
-
-
-
Field Detail
-
soapMustUnderstandAttributeName
public final QName soapMustUnderstandAttributeName
-
-
Method Detail
-
builder
public static Communicator.Builder builder(String name)
-
createRequestPacket
public final com.sun.xml.ws.api.message.Packet createRequestPacket(Object jaxbElement, String wsaAction, boolean expectReply)
-
createRequestPacket
public final com.sun.xml.ws.api.message.Packet createRequestPacket(com.sun.xml.ws.api.message.Message message, String wsaAction, boolean expectReply)
-
createRequestPacket
public final com.sun.xml.ws.api.message.Packet createRequestPacket(com.sun.xml.ws.api.message.Packet originalRequestPacket, Object jaxbElement, String wsaAction, boolean expectReply)
-
createEmptyRequestPacket
public com.sun.xml.ws.api.message.Packet createEmptyRequestPacket(boolean expectReply)
Creates a new empty request packet- Returns:
- a new empty request packet
-
createEmptyRequestPacket
public com.sun.xml.ws.api.message.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 com.sun.xml.ws.api.message.Packet createResponsePacket(@NotNull com.sun.xml.ws.api.message.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 toresponseWsaAction- WS-Addressing action header value to be setisClientResponse- determines whether the response is technically a client request- Returns:
- newly created response packet
-
createResponsePacket
public com.sun.xml.ws.api.message.Packet createResponsePacket(com.sun.xml.ws.api.message.Packet requestPacket, com.sun.xml.ws.api.message.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 toresponseWsaAction- WS-Addressing action header value to be set- Returns:
- newly created response packet
-
createEmptyResponsePacket
public com.sun.xml.ws.api.message.Packet createEmptyResponsePacket(com.sun.xml.ws.api.message.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 toresponseWsaAction- WS-Addressing action header value to be set- Returns:
- newly created empty (no SOAP body payload) response packet
-
createNullResponsePacket
public com.sun.xml.ws.api.message.Packet createNullResponsePacket(com.sun.xml.ws.api.message.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 com.sun.xml.ws.api.message.Packet setEmptyRequestMessage(com.sun.xml.ws.api.message.Packet request, String wsaAction)Creates a new JAX-WSMessageobject 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
PacketAdapterinstance
-
setEmptyResponseMessage
public final com.sun.xml.ws.api.message.Packet setEmptyResponseMessage(com.sun.xml.ws.api.message.Packet response, com.sun.xml.ws.api.message.Packet request, String wsaAction)Overwrites theMessageof the response packet with a newly created emptyMessageinstance. UnlikePacket.setMessage(Message), this method fills in theMessage's WS-Addressing headers correctly, based on the provided request packet WS-Addressing headers.- Parameters:
requestAdapter-wsaAction-- Returns:
-
getWsaAction
public String getWsaAction(com.sun.xml.ws.api.message.Packet packet)
Returns the value of WS-AddressingActionheader of a message stored in thePacket.- Parameters:
packet- JAX-WS RI packet- Returns:
- Value of WS-Addressing
Actionheader,nullif the header is not present
-
getWsaTo
public String getWsaTo(com.sun.xml.ws.api.message.Packet packet)
Returns the value of WS-AddressingToheader of a message stored in thePacket.- Parameters:
packet- JAX-WS RI packet- Returns:
- Value of WS-Addressing
Toheader,nullif the header is not present
-
tryStartSecureConversation
public SecurityTokenReferenceType tryStartSecureConversation(com.sun.xml.ws.api.message.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
nullif there is no SC configured - Throws:
WSTrustException
-
send
public com.sun.xml.ws.api.message.Packet send(@NotNull com.sun.xml.ws.api.message.Packet request)Sends the requestPacketand returns the corresponding responsePacket. This method should be used for Req-Res MEP- Parameters:
request-Packetcontaining the message to be send- Returns:
- response
Messagewrapped in a responsePacketreceived
-
sendAsync
public void sendAsync(@NotNull com.sun.xml.ws.api.message.Packet request, @Nullable com.sun.xml.ws.api.pipe.Fiber.CompletionCallback completionCallbackHandler)Asynchronously sends the requestPacket- Parameters:
request-Packetcontaining the message to be sendcompletionCallbackHandler- completion callback handler to process the response. May benull. In such case a generic completion callback handler will be used.
-
sendAsync
public void sendAsync(@NotNull com.sun.xml.ws.api.message.Packet request, @Nullable com.sun.xml.ws.api.pipe.Fiber.CompletionCallback completionCallbackHandler, @Nullable com.sun.xml.ws.api.pipe.FiberContextSwitchInterceptor interceptor)
-
getDestinationAddress
@Nullable public com.sun.xml.ws.api.EndpointAddress getDestinationAddress()
Provides the destination endpoint reference thisCommunicatoris pointing to. May returnnull(typically when used on the server side).- Returns:
- destination endpoint reference or
nullin case the destination address has not been specified when constructing thisCommunicatorinstance.
-
setDestinationAddress
public void setDestinationAddress(com.sun.xml.ws.api.EndpointAddress newValue)
-
setDestinationAddressFrom
public void setDestinationAddressFrom(com.sun.xml.ws.api.message.Packet packet)
-
getAddressingVersion
public com.sun.xml.ws.api.addressing.AddressingVersion getAddressingVersion()
-
getSoapVersion
public com.sun.xml.ws.api.SOAPVersion getSoapVersion()
-
close
public void close()
-
isClosed
public boolean isClosed()
-
getContainer
public com.sun.xml.ws.api.Component getContainer()
-
-