protected boolean handleOutbound(MessageContext msgContext)
{
log.debug("handleOutbound");
SOAPAddressingProperties addrProps = (SOAPAddressingProperties)msgContext.get(JAXWSAConstants.CLIENT_ADDRESSING_PROPERTIES);
if (addrProps != null)
{
msgContext.put(JAXWSAConstants.CLIENT_ADDRESSING_PROPERTIES_OUTBOUND, addrProps);
msgContext.setScope(JAXWSAConstants.CLIENT_ADDRESSING_PROPERTIES_OUTBOUND, Scope.APPLICATION);
}
addrProps = (SOAPAddressingProperties)msgContext.get(JAXWSAConstants.CLIENT_ADDRESSING_PROPERTIES_OUTBOUND);
if (addrProps == null)
{
// supply default addressing properties
addrProps = (SOAPAddressingPropertiesImpl)ADDR_BUILDER.newAddressingProperties();
msgContext.put(JAXWSAConstants.CLIENT_ADDRESSING_PROPERTIES_OUTBOUND, addrProps);
msgContext.setScope(JAXWSAConstants.CLIENT_ADDRESSING_PROPERTIES_OUTBOUND, Scope.APPLICATION);
}
if (addrProps.getAction() == null)
{
try
{
OperationMetaData opMetaData = ((CommonMessageContext)msgContext).getOperationMetaData();
addrProps.setAction(ADDR_BUILDER.newURI(opMetaData.getJavaName()));
}
catch (URISyntaxException ex)
{
// ignore
}
}
SOAPMessage soapMessage = ((SOAPMessageContext)msgContext).getMessage();
addrProps.writeHeaders(soapMessage);
return true;
}