Class MarshallingHttpMessageConverter
java.lang.Object
org.springframework.http.converter.AbstractHttpMessageConverter<T>
org.springframework.http.converter.xml.AbstractXmlHttpMessageConverter<Object>
org.springframework.http.converter.xml.MarshallingHttpMessageConverter
- All Implemented Interfaces:
HttpMessageConverter<Object>
Implementation of
HttpMessageConverter
that can read and write XML using Spring's Marshaller and Unmarshaller abstractions.
This converter requires a Marshaller and Unmarshaller before it can be used.
These can be injected by the constructor
or bean properties.
By default, this converter supports text/xml and application/xml. This can be
overridden by setting the supportedMediaTypes property.
- Since:
- 3.0
- Author:
- Arjen Poutsma
-
Field Summary
Fields inherited from class org.springframework.http.converter.AbstractHttpMessageConverter
logger -
Constructor Summary
ConstructorsConstructorDescriptionMarshallingHttpMessageConverter(Marshaller marshaller) Construct a newMarshallingMessageConverterwith the givenMarshallerset.MarshallingHttpMessageConverter(Marshaller marshaller, Unmarshaller unmarshaller) Construct a newMarshallingMessageConverterwith the givenMarshallerandUnmarshaller. -
Method Summary
Modifier and TypeMethodDescriptionbooleanThis implementation checks if the given class is supported, and if the supported media types include the given media type.booleanprotected ObjectreadFromSource(Class<?> clazz, HttpHeaders headers, Source source) Abstract template method called fromAbstractHttpMessageConverter.read(Class, HttpInputMessage).voidsetMarshaller(Marshaller marshaller) Set theMarshallerto be used by this message converter.voidsetUnmarshaller(Unmarshaller unmarshaller) Set theUnmarshallerto be used by this message converter.protected booleanIndicates whether the given class is supported by this converter.protected voidwriteToResult(Object o, HttpHeaders headers, Result result) Abstract template method called fromAbstractXmlHttpMessageConverter.writeInternal(Object, HttpOutputMessage).Methods inherited from class org.springframework.http.converter.xml.AbstractXmlHttpMessageConverter
readInternal, transform, writeInternalMethods inherited from class org.springframework.http.converter.AbstractHttpMessageConverter
addDefaultHeaders, canRead, canWrite, getContentLength, getDefaultCharset, getDefaultContentType, getSupportedMediaTypes, read, setDefaultCharset, setSupportedMediaTypes, writeMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.springframework.http.converter.HttpMessageConverter
getSupportedMediaTypes
-
Constructor Details
-
MarshallingHttpMessageConverter
public MarshallingHttpMessageConverter()Construct a newMarshallingHttpMessageConverterwith noMarshallerorUnmarshallerset. The Marshaller and Unmarshaller must be set after construction by invokingsetMarshaller(Marshaller)andsetUnmarshaller(Unmarshaller). -
MarshallingHttpMessageConverter
Construct a newMarshallingMessageConverterwith the givenMarshallerset.If the given
Marshalleralso implements theUnmarshallerinterface, it is used for both marshalling and unmarshalling. Otherwise, an exception is thrown.Note that all
Marshallerimplementations in Spring also implement theUnmarshallerinterface, so that you can safely use this constructor.- Parameters:
marshaller- object used as marshaller and unmarshaller
-
MarshallingHttpMessageConverter
Construct a newMarshallingMessageConverterwith the givenMarshallerandUnmarshaller.- Parameters:
marshaller- the Marshaller to useunmarshaller- the Unmarshaller to use
-
-
Method Details
-
setMarshaller
Set theMarshallerto be used by this message converter. -
setUnmarshaller
Set theUnmarshallerto be used by this message converter. -
canRead
Description copied from class:AbstractHttpMessageConverterThis implementation checks if the given class is supported, and if the supported media types include the given media type.- Specified by:
canReadin interfaceHttpMessageConverter<Object>- Overrides:
canReadin classAbstractHttpMessageConverter<Object>- Parameters:
clazz- the class to test for readabilitymediaType- the media type to read (can benullif not specified); typically the value of aContent-Typeheader.- Returns:
trueif readable;falseotherwise
-
canWrite
Description copied from class:AbstractHttpMessageConverterThis implementation checks if the given class is supported, and if the supported media types include the given media type.- Specified by:
canWritein interfaceHttpMessageConverter<Object>- Overrides:
canWritein classAbstractHttpMessageConverter<Object>- Parameters:
clazz- the class to test for writabilitymediaType- the media type to write (can benullif not specified); typically the value of anAcceptheader.- Returns:
trueif writable;falseotherwise
-
supports
Description copied from class:AbstractHttpMessageConverterIndicates whether the given class is supported by this converter.- Specified by:
supportsin classAbstractHttpMessageConverter<Object>- Parameters:
clazz- the class to test for support- Returns:
trueif supported;falseotherwise
-
readFromSource
protected Object readFromSource(Class<?> clazz, HttpHeaders headers, Source source) throws Exception Description copied from class:AbstractXmlHttpMessageConverterAbstract template method called fromAbstractHttpMessageConverter.read(Class, HttpInputMessage).- Specified by:
readFromSourcein classAbstractXmlHttpMessageConverter<Object>- Parameters:
clazz- the type of object to returnheaders- the HTTP input headerssource- the HTTP input body- Returns:
- the converted object
- Throws:
Exception- in case of I/O or conversion errors
-
writeToResult
Description copied from class:AbstractXmlHttpMessageConverterAbstract template method called fromAbstractXmlHttpMessageConverter.writeInternal(Object, HttpOutputMessage).- Specified by:
writeToResultin classAbstractXmlHttpMessageConverter<Object>- Parameters:
o- the object to write to the output messageheaders- the HTTP output headersresult- the HTTP output body- Throws:
Exception- in case of I/O or conversion errors
-