Axis2
  1. Axis2
  2. AXIS2-1014

org.apache.asix2.saaj.SOAPConnectionImpl does not handle MimeHeaders (SOAPAction)

    Details

    • Type: Bug Bug
    • Status: Resolved
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 1.5.3, 1.6.0
    • Component/s: saaj
    • Labels:
      None

      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

      { url = (endpoint instanceof URL) ? (URL) endpoint : new URL(endpoint.toString()); }

      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

      { requestMsgCtx.setEnvelope(toOMSOAPEnvelope(request)); opClient.addMessageContext(requestMsgCtx); opClient.execute(true); MessageContext msgCtx = opClient.getMessageContext(WSDLConstants.MESSAGE_LABEL_IN_VALUE); //TODO: get attachments return getSOAPMessage(msgCtx.getEnvelope()); }

      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)

      { attachment.setContentId(IDGenerator.generateID()); }

      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

        Activity

        Jian Wu created issue -
        Davanum Srinivas made changes -
        Field Original Value New Value
        Assignee Sanka Samaranayake [ sanka ]
        Davanum Srinivas made changes -
        Assignee Sanka Samaranayake [ sanka ] sumedha rubasinghe [ sumedha ]
        Deepal Jayasinghe made changes -
        Resolution Fixed [ 1 ]
        Status Open [ 1 ] Resolved [ 5 ]
        Andreas Veithen made changes -
        Status Resolved [ 5 ] Reopened [ 4 ]
        Resolution Fixed [ 1 ]
        Assignee sumedha rubasinghe [ sumedha ] Andreas Veithen [ veithen ]
        Andreas Veithen made changes -
        Component/s saaj [ 12312630 ]
        Component/s client-api [ 11539 ]
        Andreas Veithen made changes -
        Status Reopened [ 4 ] Resolved [ 5 ]
        Fix Version/s post-1.5 [ 12313622 ]
        Resolution Fixed [ 1 ]
        Andreas Veithen made changes -
        Fix Version/s 1.5.3 [ 12315367 ]

          People

          • Assignee:
            Andreas Veithen
            Reporter:
            Jian Wu
          • Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development