Description
I looked into org.apache.axis2.saaj.SOAPConnectionImpl.java in the
Axis2 Source Repositoy, as the following code snippet shown, it
never pass down MimeHeaders from SOAPMessage to the ServiceClient,
so all the SOAPMessages with empty SOAPAction as ""
==========================================
public SOAPMessage call(SOAPMessage request, Object endpoint) throws SOAPException {
if (closed)
{ throw new SOAPException("SOAPConnection closed"); } // initialize URL
URL url;
try
catch (MalformedURLException e)
{ throw new SOAPException(e); }// initialize and set Options
Options options = new Options();
options.setTo(new EndpointReference(url.toString()));
// initialize the Sender
OperationClient opClient;
try { serviceClient = new ServiceClient(); opClient = serviceClient.createClient(ServiceClient.ANON_OUT_IN_OP); } catch (AxisFault e) { throw new SOAPException(e); }
opClient.setOptions(options);
if (request.countAttachments() != 0)
{ // SOAPMessage with attachments opClient.getOptions().setProperty(Constants.Configuration.ENABLE_MTOM, Constants.VALUE_TRUE); return handleSOAPMessage(request, opClient); }else
{ // simple SOAPMessage return handleSOAPMessage(request, opClient); }}
private SOAPMessage handleSOAPMessage(SOAPMessage request,
OperationClient opClient) throws SOAPException {
MessageContext requestMsgCtx = new MessageContext();
try
catch (AxisFault e)
{ throw new SOAPException(e); }}
protected org.apache.axiom.soap.SOAPEnvelope toOMSOAPEnvelope(SOAPMessage saajSOAPMsg)
throws SOAPException {
final org.apache.axiom.soap.SOAPEnvelope omSOAPEnv =
SAAJUtil.toOMSOAPEnvelope(saajSOAPMsg.getSOAPPart().getDocumentElement());
System.err.println("#### req OM Soap Env=" + omSOAPEnv);
Map attachmentMap = new HashMap();
final Iterator attachments = saajSOAPMsg.getAttachments();
while (attachments.hasNext()) {
final AttachmentPart attachment = (AttachmentPart) attachments.next();
if (attachment.getContentId() == null ||
attachment.getContentId().trim().length() == 0)
if (attachment.getDataHandler() == null)
{ throw new SOAPException("Attachment with NULL DataHandler"); } attachmentMap.put(attachment.getContentId(), attachment);
}
insertAttachmentNodes(attachmentMap, omSOAPEnv);
// printOMSOAPEnvelope(omSOAPEnv);
return omSOAPEnv;
}
======================================
As suggested by Davanum Srinivas, I file this bug to track this problem