au.gov.nehta.vendorlibrary.pcehr.clients.common.handler
Class ConfigurableMTOMHandler

java.lang.Object
  extended by au.gov.nehta.vendorlibrary.pcehr.clients.common.handler.ConfigurableMTOMHandler
All Implemented Interfaces:
IMTOMHandler, javax.xml.ws.handler.Handler<javax.xml.ws.handler.soap.SOAPMessageContext>, javax.xml.ws.handler.soap.SOAPHandler<javax.xml.ws.handler.soap.SOAPMessageContext>

public class ConfigurableMTOMHandler
extends java.lang.Object
implements IMTOMHandler

This SOAP handler functions to workaround limitations of SOAPHandlers that breaks MTOM, resulting in binary SOAP message attachments being inlined into a single SOAP MIME part as a Base64 encoded string.If a SOAP handler is specified in the handler chain of a JAX-WS client or service, JAX-WS will call the SOAP handler before a SOAP message is sent and after a SOAP message has been received.


Field Summary
static java.lang.String INCLUDE_ELEM
          Include XML element local name.
static java.lang.String XOP_INCLUDE
          XOP include attribute string format (reference ID is denoted by '%s'.
 
Constructor Summary
ConfigurableMTOMHandler(java.lang.String requestType, java.lang.String requestNamespace, java.lang.String mtomElement)
          A short hand version of ConfigurableMTOMHandler(requestType, requestNamespace, element, elementNamespace) where both elements share the same XML name space
ConfigurableMTOMHandler(java.lang.String requestType, java.lang.String xmlRequestNamespace, java.lang.String mtomElement, java.lang.String xmlElementNamespace)
          ConfigurableMTOMHandler A Jax WS request Handler to ensure certain Base64 elements added as binary attachments.
 
Method Summary
 void close(javax.xml.ws.handler.MessageContext context)
          Does nothing
Not utilised for dumping SOAP message.
 java.util.Set<javax.xml.namespace.QName> getHeaders()
          Does nothing returns null.
Ignore processing of SOAP header as the primary intention is just to 'Dump' the SOAP message
 boolean handleFault(javax.xml.ws.handler.soap.SOAPMessageContext context)
          Ignore Fault and continues with processing logical handling of message.
 boolean handleMessage(javax.xml.ws.handler.soap.SOAPMessageContext context)
          Updates the request to ensure byte content is correctly passed as a MTOM part.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

INCLUDE_ELEM

public static final java.lang.String INCLUDE_ELEM
Include XML element local name.

See Also:
Constant Field Values

XOP_INCLUDE

public static final java.lang.String XOP_INCLUDE
XOP include attribute string format (reference ID is denoted by '%s'.

See Also:
Constant Field Values
Constructor Detail

ConfigurableMTOMHandler

public ConfigurableMTOMHandler(java.lang.String requestType,
                               java.lang.String xmlRequestNamespace,
                               java.lang.String mtomElement,
                               java.lang.String xmlElementNamespace)
ConfigurableMTOMHandler A Jax WS request Handler to ensure certain Base64 elements added as binary attachments.

Parameters:
requestType - the XML element for the Enclosing request. eg: "ProvideAndRegisterDocumentSetRequest" or "registerPCEHR"
xmlRequestNamespace - the XML name space for the requestType eg: "urn:ihe:iti:xds-b:2007"
mtomElement - the element containing bas64 content to be XOP included as a binary attachment eg: "Document"
the - XML name space of the mtomElement eg: "urn:ihe:iti:xds-b:2007"

ConfigurableMTOMHandler

public ConfigurableMTOMHandler(java.lang.String requestType,
                               java.lang.String requestNamespace,
                               java.lang.String mtomElement)
A short hand version of ConfigurableMTOMHandler(requestType, requestNamespace, element, elementNamespace) where both elements share the same XML name space

Parameters:
requestType - the XML element for the Enclosing request. eg: "ProvideAndRegisterDocumentSetRequest" or "registerPCEHR"
xmlRequestNamespace - the XML name space for both supplied element names eg: "urn:ihe:iti:xds-b:2007"
mtomElement - the element containing bas64 content to be XOP included as a binary attachment eg: "Document"
Method Detail

handleMessage

public final boolean handleMessage(javax.xml.ws.handler.soap.SOAPMessageContext context)
Updates the request to ensure byte content is correctly passed as a MTOM part.

Specified by:
handleMessage in interface javax.xml.ws.handler.Handler<javax.xml.ws.handler.soap.SOAPMessageContext>
Parameters:
context - the incoming / outgoing soap message context
Returns:
true Always returns true.
See Also:
Handler.handleMessage(javax.xml.ws.handler.MessageContext)

handleFault

public final boolean handleFault(javax.xml.ws.handler.soap.SOAPMessageContext context)
Ignore Fault and continues with processing logical handling of message.

Specified by:
handleFault in interface javax.xml.ws.handler.Handler<javax.xml.ws.handler.soap.SOAPMessageContext>
Parameters:
context - the incoming / outgoing soap message context
Returns:
true if the handle signature check is successful.
See Also:
Handler.handleFault(javax.xml.ws.handler.MessageContext)

close

public void close(javax.xml.ws.handler.MessageContext context)
Does nothing
Not utilised for dumping SOAP message.

Specified by:
close in interface javax.xml.ws.handler.Handler<javax.xml.ws.handler.soap.SOAPMessageContext>
Parameters:
context - @see javax.xml.ws.handler.Handler#close(javax.xml.ws.handler.MessageContext)

getHeaders

public final java.util.Set<javax.xml.namespace.QName> getHeaders()
Does nothing returns null.
Ignore processing of SOAP header as the primary intention is just to 'Dump' the SOAP message

Specified by:
getHeaders in interface javax.xml.ws.handler.soap.SOAPHandler<javax.xml.ws.handler.soap.SOAPMessageContext>
Returns:
@see javax.xml.ws.handler.soap.SOAPHandler#getHeaders()