diff --git a/springcloud-eureka-seata/account/src/main/java/io/seata/sample/controller/AccountController.java b/springcloud-eureka-seata/account/src/main/java/io/seata/sample/controller/AccountController.java
index 546c341..7a2feb4 100644
--- a/springcloud-eureka-seata/account/src/main/java/io/seata/sample/controller/AccountController.java
+++ b/springcloud-eureka-seata/account/src/main/java/io/seata/sample/controller/AccountController.java
@@ -15,7 +15,7 @@
     @Autowired
     private AccountService accountService;
 
-    @RequestMapping("/reduce")
+    @RequestMapping(value = "/reduce", produces = "application/json")
     public Boolean debit(String userId, int money) {
         accountService.reduce(userId, money);
         return true;
diff --git a/springcloud-eureka-seata/bussiness/pom.xml b/springcloud-eureka-seata/bussiness/pom.xml
index 2d82dfa..acec937 100644
--- a/springcloud-eureka-seata/bussiness/pom.xml
+++ b/springcloud-eureka-seata/bussiness/pom.xml
@@ -33,6 +33,17 @@
         <dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-web</artifactId>
+            <exclusions>
+                <exclusion>
+                    <artifactId>spring-web</artifactId>
+                    <groupId>org.springframework</groupId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <artifactId>spring-web</artifactId>
+            <groupId>org.springframework</groupId>
+            <version>5.1.2.RELEASE</version>
         </dependency>
         <dependency>
             <groupId>org.springframework.boot</groupId>
@@ -42,6 +53,12 @@
         <dependency>
             <groupId>org.springframework.cloud</groupId>
             <artifactId>spring-cloud-starter-openfeign</artifactId>
+            <exclusions>
+                <exclusion>
+                    <artifactId>spring-web</artifactId>
+                    <groupId>org.springframework</groupId>
+                </exclusion>
+            </exclusions>
         </dependency>
         <dependency>
             <groupId>mysql</groupId>
diff --git a/springcloud-eureka-seata/bussiness/src/main/java/io/seata/sample/controller/BusinessController.java b/springcloud-eureka-seata/bussiness/src/main/java/io/seata/sample/controller/BusinessController.java
index a5aa2e0..163550f 100644
--- a/springcloud-eureka-seata/bussiness/src/main/java/io/seata/sample/controller/BusinessController.java
+++ b/springcloud-eureka-seata/bussiness/src/main/java/io/seata/sample/controller/BusinessController.java
@@ -21,7 +21,7 @@
      *
      * @return
      */
-    @RequestMapping("/purchase/commit")
+    @RequestMapping(value = "/purchase/commit", produces = "application/json")
     public String purchaseCommit() {
         try {
             businessService.purchase("U100000", "C100000", 30);
diff --git a/springcloud-eureka-seata/order/src/main/java/io/seata/sample/controller/OrderController.java b/springcloud-eureka-seata/order/src/main/java/io/seata/sample/controller/OrderController.java
index 01ccc56..df298a2 100644
--- a/springcloud-eureka-seata/order/src/main/java/io/seata/sample/controller/OrderController.java
+++ b/springcloud-eureka-seata/order/src/main/java/io/seata/sample/controller/OrderController.java
@@ -16,7 +16,7 @@
     @Autowired
     private OrderService orderService;
 
-    @GetMapping("/create")
+    @GetMapping(value = "/create", produces = "application/json")
     public Boolean create(String userId, String commodityCode, Integer count) {
 
         orderService.create(userId, commodityCode, count);
diff --git a/springcloud-eureka-seata/storage/src/main/java/io/seata/sample/controller/StorageController.java b/springcloud-eureka-seata/storage/src/main/java/io/seata/sample/controller/StorageController.java
index 271b7e3..bf97fee 100644
--- a/springcloud-eureka-seata/storage/src/main/java/io/seata/sample/controller/StorageController.java
+++ b/springcloud-eureka-seata/storage/src/main/java/io/seata/sample/controller/StorageController.java
@@ -2,7 +2,7 @@
 
 import io.seata.sample.service.StorageService;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
 /**
@@ -15,7 +15,7 @@
     @Autowired
     private StorageService storageService;
 
-    @GetMapping(path = "/deduct")
+    @RequestMapping(value = "/deduct", produces = "application/json")
     public Boolean deduct(String commodityCode, Integer count) {
         storageService.deduct(commodityCode, count);
         return true;
