Uploaded image for project: 'Spring Web Services'
  1. Spring Web Services
  2. SWS-806

@ symbol in the content-id is converted to %40. The receiving web server is not able to handle it

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Major
    • Resolution: Works as Designed
    • Affects Version/s: 1.5.6
    • Fix Version/s: 2.1.2
    • Component/s: XML
    • Labels:
      None

      Description

      Hi,

      Spring ws version :1.5.6
      Marshaller: Jaxb2Marshaller

      Problem description: I am sending a series of Spring MTOM attachments to a webservice.In the Content-Id inside the "XOP" tag in the request XML there is a special character '@' which is encoded as % + ASCII hexadecimal
      The web service provider is not able to handle this.

      Please refer the following XML for issue.
      <ns10:FingerImpressionImage>

      • <<ns6:BinaryBase64Object>
        <<xop:Include href="cid:be434728-da9e-4b88-858f-065cc11074a0%40niem.gov" xmlns:xop="http://www.w3.org/2004/08/xop/include" />
        </ns6:BinaryBase64Object>

      — ------=_Part_4_1104626135.1351225350567
      Content-Type: application/octet-stream
      Content-Transfer-Encoding: binary
      Content-Id: <[email protected]>

      My question is as follows
      1. Is this an issue or is that a standard process of encoding the Content-Id
      2. Can I stop encoding from happening.
      3. How is the Content-Id in Spring generated. How can i stop using Spring from using @niem.gov in the Content-Id.
      4. In which jar file is the code for Content-Id.
      5. Should this be handled at the service provider or consumer side.
      6. How can i get around this problem?

        Activity

        jashandeep Jashandeep Singh Dhillon created issue -
        arjen.poutsma Arjen Poutsma made changes -
        Field Original Value New Value
        Assignee Arjen Poutsma [ arjen.poutsma ]
        arjen.poutsma Arjen Poutsma made changes -
        Fix Version/s 2.1.2 [ 13606 ]
        arjen.poutsma Arjen Poutsma made changes -
        Status Open [ 1 ] In Progress [ 3 ]
        Hide
        arjen.poutsma Arjen Poutsma added a comment -

        Hi,

        Let me try and answer your questions:

        1. This is a standard process. Content-IDs are URIs, and therefor need to be encoded.
        2. You currently can't. However, if you want to customize the marshalling process, take a look at the Jaxb2AttachmentMarshaller and Jaxb2AttachmentUnmarshaller classes inside org.springframework.oxm.jaxb.Jaxb2Marshaller. Note that these classes are in the Spring Framework, not Spring Web Services.
        3. It is generated from the element name space that the attachment is attached to. So in your case, niem.gov is probably the namespace of the XML element of the attachment.
        4. Not sure I understand this question. Spring-WS is correct here, and has no problem interacting with other WS implementations doing MTOM. See the mton sample, for instance, which has a JAX-WS client.
        5. Like I said in 2, take a look at the Jaxb2Marshaller in SPR, and create a custom subclass.

        Show
        arjen.poutsma Arjen Poutsma added a comment - Hi, Let me try and answer your questions: 1. This is a standard process. Content-IDs are URIs, and therefor need to be encoded. 2. You currently can't. However, if you want to customize the marshalling process, take a look at the Jaxb2AttachmentMarshaller and Jaxb2AttachmentUnmarshaller classes inside org.springframework.oxm.jaxb.Jaxb2Marshaller. Note that these classes are in the Spring Framework, not Spring Web Services. 3. It is generated from the element name space that the attachment is attached to. So in your case, niem.gov is probably the namespace of the XML element of the attachment. 4. Not sure I understand this question. Spring-WS is correct here, and has no problem interacting with other WS implementations doing MTOM. See the mton sample, for instance, which has a JAX-WS client. 5. Like I said in 2, take a look at the Jaxb2Marshaller in SPR, and create a custom subclass.
        arjen.poutsma Arjen Poutsma made changes -
        Status In Progress [ 3 ] Resolved [ 5 ]
        Resolution Works as Designed [ 9 ]
        arjen.poutsma Arjen Poutsma logged work - 03/Dec/12 5:56 AM
        • Time Spent:
          1h 7m
           
          <No comment>
        arjen.poutsma Arjen Poutsma made changes -
        Time Spent 1h 7m [ 4020 ]
        Worklog Id 29813 [ 29813 ]
        Transition Time In Source Status Execution Times Last Executer Last Execution Date
        Open Open In Progress In Progress
        33d 8h 47m 1 Arjen Poutsma 03/Dec/12 4:49 AM
        In Progress In Progress Resolved Resolved
        1h 6m 1 Arjen Poutsma 03/Dec/12 5:56 AM

          People

          • Assignee:
            arjen.poutsma Arjen Poutsma
            Reporter:
            jashandeep Jashandeep Singh Dhillon
          • Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Time Tracking

              Estimated:
              Original Estimate - Not Specified
              Not Specified
              Remaining:
              Remaining Estimate - Not Specified
              Not Specified
              Logged:
              Time Spent - 1h 7m
              1h 7m