diff --git a/extensions/spring-web/deployment/src/main/java/io/quarkus/spring/web/deployment/SpringWebProcessor.java b/extensions/spring-web/deployment/src/main/java/io/quarkus/spring/web/deployment/SpringWebProcessor.java
index 61b68f5e6167e..de194b9e3c385 100644
--- a/extensions/spring-web/deployment/src/main/java/io/quarkus/spring/web/deployment/SpringWebProcessor.java
+++ b/extensions/spring-web/deployment/src/main/java/io/quarkus/spring/web/deployment/SpringWebProcessor.java
@@ -287,6 +287,10 @@ public void registerProviders(BeanArchiveIndexBuildItem beanArchiveIndexBuildIte
useAllAvailable = true;
break OUTER;
}
+ if (collectProviders(providersToRegister, categorizedContextResolvers, instance, "produces")) {
+ useAllAvailable = true;
+ break OUTER;
+ }
if (collectProviders(providersToRegister, categorizedReaders, instance, "consumes")) {
useAllAvailable = true;
diff --git a/integration-tests/spring-web/pom.xml b/integration-tests/spring-web/pom.xml
index 309dd9734bcc2..edeeb7e964e09 100644
--- a/integration-tests/spring-web/pom.xml
+++ b/integration-tests/spring-web/pom.xml
@@ -23,6 +23,10 @@
io.quarkus
quarkus-undertow
+
+ io.quarkus
+ quarkus-resteasy-jaxb
+
io.quarkus
quarkus-spring-di
diff --git a/integration-tests/spring-web/src/main/java/io/quarkus/it/spring/web/Book.java b/integration-tests/spring-web/src/main/java/io/quarkus/it/spring/web/Book.java
new file mode 100644
index 0000000000000..a893ed259da9b
--- /dev/null
+++ b/integration-tests/spring-web/src/main/java/io/quarkus/it/spring/web/Book.java
@@ -0,0 +1,24 @@
+package io.quarkus.it.spring.web;
+
+import javax.xml.bind.annotation.XmlRootElement;
+
+@XmlRootElement
+public class Book {
+
+ private String name;
+
+ public Book() {
+ }
+
+ public Book(String name) {
+ this.name = name;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+}
diff --git a/integration-tests/spring-web/src/main/java/io/quarkus/it/spring/web/BookController.java b/integration-tests/spring-web/src/main/java/io/quarkus/it/spring/web/BookController.java
new file mode 100644
index 0000000000000..7d2351bcb14b4
--- /dev/null
+++ b/integration-tests/spring-web/src/main/java/io/quarkus/it/spring/web/BookController.java
@@ -0,0 +1,14 @@
+package io.quarkus.it.spring.web;
+
+import org.springframework.http.MediaType;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+public class BookController {
+
+ @GetMapping(produces = MediaType.APPLICATION_XML_VALUE, path = "/book")
+ public Book someBook() {
+ return new Book("Guns germs and steel");
+ }
+}
diff --git a/integration-tests/spring-web/src/test/java/io/quarkus/it/spring/web/SpringControllerTest.java b/integration-tests/spring-web/src/test/java/io/quarkus/it/spring/web/SpringControllerTest.java
index 2383590700d34..8d12461c8a247 100644
--- a/integration-tests/spring-web/src/test/java/io/quarkus/it/spring/web/SpringControllerTest.java
+++ b/integration-tests/spring-web/src/test/java/io/quarkus/it/spring/web/SpringControllerTest.java
@@ -204,4 +204,13 @@ public void testResponseEntityWithIllegalArgumentException() {
.body(containsString("hello from error"))
.statusCode(402);
}
+
+ @Test
+ public void testMethodReturningXmlContent() {
+ RestAssured.when().get("/book")
+ .then()
+ .statusCode(200)
+ .contentType("application/xml")
+ .body(containsString("steel"));
+ }
}