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

Impossible to add custom error handling during JAXB marshalling/unmarshalling.

    Details

    • Type: Improvement
    • Status: Closed
    • Priority: Critical
    • Resolution: Fixed
    • Affects Version/s: 2.0 GA, 2.0.1, 2.0.2
    • Fix Version/s: 2.0.3
    • Component/s: Core

      Description

      Class "org.springframework.ws.server.endpoint.adapter.method.jaxb.AbstractJaxb2PayloadMethodProcessor" has private access methods "createUnmarshaller(..)" and "createMarshaller(..)" therefore developers (e.g. me) who might need to define custom validation (using "javax.xml.bind.ValidationEventHandler") cannot do it in easy way.

      Usually, developer doesn't need to override default marshalling or unmarshalling validation behavior but the validator has a problem with "XmlGregorianCalendar" unmarshalling, it simply ignores the error (because it is warning for some reason) and it is impossible to get an exception without replacing default validator.

      It would be very good if these methods ("createUnmarshaller(..)" and "createMarshaller(..)") had "protected" access modifier. In this case the methods should accept "JAXBContext" as a parameter instead of "Class<?>" to keep "getJaxbContext(..)" private.

      Another option is adding additional setters for validation handler and many other JAXB options. It seems not so scalable but more strict.

        Activity

        victor_cr Victor Polischuk created issue -
        arjen.poutsma Arjen Poutsma made changes -
        Field Original Value New Value
        Fix Version/s 2.0.3 [ 12197 ]
        Assignee Arjen Poutsma [ arjen.poutsma ]
        arjen.poutsma Arjen Poutsma made changes -
        Status Open [ 1 ] In Progress [ 3 ]
        arjen.poutsma Arjen Poutsma made changes -
        Resolution Fixed [ 1 ]
        Status In Progress [ 3 ] Resolved [ 5 ]
        Hide
        arjen.poutsma Arjen Poutsma added a comment -

        Fixed by adding protected create(Un)Marshaller methods, as suggested.

        Show
        arjen.poutsma Arjen Poutsma added a comment - Fixed by adding protected create(Un)Marshaller methods, as suggested.
        Hide
        arjen.poutsma Arjen Poutsma added a comment -

        Closing old issues

        Show
        arjen.poutsma Arjen Poutsma added a comment - Closing old issues
        arjen.poutsma Arjen Poutsma made changes -
        Status Resolved [ 5 ] Closed [ 6 ]
        Transition Time In Source Status Execution Times Last Executer Last Execution Date
        Open Open In Progress In Progress
        85d 21h 54m 1 Arjen Poutsma 06/Oct/11 4:11 AM
        In Progress In Progress Resolved Resolved
        7m 51s 1 Arjen Poutsma 06/Oct/11 4:19 AM
        Resolved Resolved Closed Closed
        211d 2h 44m 1 Arjen Poutsma 04/May/12 7:03 AM

          People

          • Assignee:
            arjen.poutsma Arjen Poutsma
            Reporter:
            victor_cr Victor Polischuk
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: