diff --git a/spring-boot-rest/README.md b/spring-boot-rest/README.md
index 3fbd21f24e..f7f7ec6598 100644
--- a/spring-boot-rest/README.md
+++ b/spring-boot-rest/README.md
@@ -6,3 +6,4 @@ Module for the articles that are part of the Spring REST E-book:
4. [Build a REST API with Spring and Java Config](http://www.baeldung.com/building-a-restful-web-service-with-spring-and-java-based-configuration)
5. [HATEOAS for a Spring REST Service](http://www.baeldung.com/rest-api-discoverability-with-spring)
6. [REST API Discoverability and HATEOAS](http://www.baeldung.com/restful-web-service-discoverability)
+7. [Http Message Converters with the Spring Framework](http://www.baeldung.com/spring-httpmessageconverter-rest)
diff --git a/spring-boot-rest/pom.xml b/spring-boot-rest/pom.xml
index 3c8c4d7486..decaccd148 100644
--- a/spring-boot-rest/pom.xml
+++ b/spring-boot-rest/pom.xml
@@ -25,16 +25,26 @@
com.fasterxml.jackson.dataformat
jackson-dataformat-xml
-
+
+
+ org.springframework
+ spring-oxm
+
+
+ com.thoughtworks.xstream
+ xstream
+ ${xstream.version}
+
+
com.h2database
h2
-
+
org.springframework.boot
spring-boot-starter-data-jpa
-
-
+
+
@@ -67,5 +77,6 @@
com.baeldung.SpringBootRestApplication
27.0.1-jre
+ 1.4.11.1
diff --git a/spring-boot-rest/src/main/java/com/baeldung/persistence/model/Foo.java b/spring-boot-rest/src/main/java/com/baeldung/persistence/model/Foo.java
index 9af3d07bed..f19d1c0e0b 100644
--- a/spring-boot-rest/src/main/java/com/baeldung/persistence/model/Foo.java
+++ b/spring-boot-rest/src/main/java/com/baeldung/persistence/model/Foo.java
@@ -8,6 +8,9 @@ import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
+import com.thoughtworks.xstream.annotations.XStreamAlias;
+
+@XStreamAlias("Foo")
@Entity
public class Foo implements Serializable {
diff --git a/spring-boot-rest/src/main/java/com/baeldung/spring/WebConfig.java b/spring-boot-rest/src/main/java/com/baeldung/spring/WebConfig.java
index 80ee975e84..f581e4ec10 100644
--- a/spring-boot-rest/src/main/java/com/baeldung/spring/WebConfig.java
+++ b/spring-boot-rest/src/main/java/com/baeldung/spring/WebConfig.java
@@ -1,10 +1,49 @@
package com.baeldung.spring;
+import java.util.List;
+
+import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.ImportResource;
+import org.springframework.http.converter.HttpMessageConverter;
+import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
+import org.springframework.http.converter.xml.MarshallingHttpMessageConverter;
+import org.springframework.oxm.xstream.XStreamMarshaller;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
-
@Configuration
+// If we want to enable xml configurations for message-converter:
+// @ImportResource("classpath:WEB-INF/api-servlet.xml")
public class WebConfig implements WebMvcConfigurer {
+ // @Override
+ // public void configureMessageConverters(final List> messageConverters) {
+ // messageConverters.add(new MappingJackson2HttpMessageConverter());
+ // messageConverters.add(createXmlHttpMessageConverter());
+ // }
+ //
+ // private HttpMessageConverter
-
- org.springframework
- spring-oxm
-
commons-fileupload
commons-fileupload
@@ -86,12 +82,6 @@
jackson-dataformat-xml
-
- com.thoughtworks.xstream
- xstream
- ${xstream.version}
-
-
com.google.guava
@@ -281,7 +271,6 @@
1.4
3.1.0
3.5
- 1.4.9
20.0
diff --git a/spring-rest/src/main/java/com/baeldung/sampleapp/config/WebConfig.java b/spring-rest/src/main/java/com/baeldung/sampleapp/config/WebConfig.java
index d5209a520b..dc4fb9c695 100644
--- a/spring-rest/src/main/java/com/baeldung/sampleapp/config/WebConfig.java
+++ b/spring-rest/src/main/java/com/baeldung/sampleapp/config/WebConfig.java
@@ -8,8 +8,6 @@ import org.springframework.context.annotation.Configuration;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder;
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
-import org.springframework.http.converter.xml.MarshallingHttpMessageConverter;
-import org.springframework.oxm.xstream.XStreamMarshaller;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@@ -33,22 +31,12 @@ public class WebConfig implements WebMvcConfigurer {
.dateFormat(new SimpleDateFormat("dd-MM-yyyy hh:mm"));
messageConverters.add(new MappingJackson2HttpMessageConverter(builder.build()));
// messageConverters.add(new MappingJackson2XmlHttpMessageConverter(builder.createXmlMapper(true).build()));
-
- // messageConverters.add(createXmlHttpMessageConverter());
+
// messageConverters.add(new MappingJackson2HttpMessageConverter());
// messageConverters.add(new ProtobufHttpMessageConverter());
}
- private HttpMessageConverter createXmlHttpMessageConverter() {
- final MarshallingHttpMessageConverter xmlConverter = new MarshallingHttpMessageConverter();
-
- final XStreamMarshaller xstreamMarshaller = new XStreamMarshaller();
- xmlConverter.setMarshaller(xstreamMarshaller);
- xmlConverter.setUnmarshaller(xstreamMarshaller);
-
- return xmlConverter;
- }
*/
}
diff --git a/spring-rest/src/main/java/com/baeldung/sampleapp/web/dto/Foo.java b/spring-rest/src/main/java/com/baeldung/sampleapp/web/dto/Foo.java
index 186df8e678..de1d76ed92 100644
--- a/spring-rest/src/main/java/com/baeldung/sampleapp/web/dto/Foo.java
+++ b/spring-rest/src/main/java/com/baeldung/sampleapp/web/dto/Foo.java
@@ -1,8 +1,5 @@
package com.baeldung.sampleapp.web.dto;
-import com.thoughtworks.xstream.annotations.XStreamAlias;
-
-@XStreamAlias("Foo")
public class Foo {
private long id;
private String name;
diff --git a/spring-rest/src/main/webapp/WEB-INF/api-servlet.xml b/spring-rest/src/main/webapp/WEB-INF/api-servlet.xml
index ddb9c91792..3d83ebf6c9 100644
--- a/spring-rest/src/main/webapp/WEB-INF/api-servlet.xml
+++ b/spring-rest/src/main/webapp/WEB-INF/api-servlet.xml
@@ -10,21 +10,11 @@
-
-
-