Announcement Announcement Module
No announcement yet.
thread safety when using spring WebServiceTemplate and Jaxb2Marshaller Page Title Module
Move Remove Collapse
Conversation Detail Module
  • Filter
  • Time
  • Show
Clear All
new posts

  • thread safety when using spring WebServiceTemplate and Jaxb2Marshaller

    I am using spring WebServiceTemplate as a web service client programmatically i.e. without instantiating a spring container. I am using Jaxb2Marshaller for marshaling/unmarshaling. In my application, I create a single instance of the SaajSoapMessageFactory and one instance of Jaxb2Marshaller. I also create a single instance of the WebServiceTemplate and assign the previously created instances of SaajSoapMessageFactory and Jaxb2Marshaller.

    The WebServiceTemplate I created is used in a multi threaded way i.e. multiple threads can call marshalSendAndReceive at the same time. My question is - is my configuration thread safe? I am concerned about the Jaxb2Marshaller. The javadoc says Jaxb2Marshallers are not necessarily thread safe. How can I use the Jaxb2Marshaller in a thread safe way without reinitializing the Jaxb context?

    As an aside: looking at the example spring-ws configuration in the spring reference[] leads me to believe that the Jaxb2Marshaller is thread safe but the Javadoc seems to contradict that.

  • #2
    In case some one stumbles upon this question, I posted the same question here and got an answer:


    • #3
      It looks like they are thread safe. According to the Spring WS release notes (
      Changes in version 1.0-M1 (12-6-2006)

      Package org.springframework.oxm.jaxb
      * added support for JAXB 2: refactored JaxbMarshaller into AbstractJaxbMarshaller, Jaxb1Marshaller and Jaxb2Marshaller
      * made JaxbMarshallers thread safe
      * added property for a ValidationEventHandler