From 48d37b2bf79bb0661b44a5d3665fb17143e4dcb5 Mon Sep 17 00:00:00 2001 From: zhouxiunai <154707516@qq.com> Date: Fri, 30 Nov 2018 15:03:25 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=96=B0=E5=A2=9E=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=EF=BC=8C=E5=8F=AF=E4=BB=A5=E5=8F=91=E9=80=81json?= =?UTF-8?q?=E6=88=96=E8=80=85xml=E7=B1=BB=E5=9E=8B=E7=9A=84=E6=B6=88?= =?UTF-8?q?=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/KafkaController.java | 31 ++++++++++++++++--- .../service/ExchangeServiceImplTest.java | 28 +++++++++++++++++ 2 files changed, 54 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/gzzn/omms/msgexchangeapi/controller/KafkaController.java b/src/main/java/com/gzzn/omms/msgexchangeapi/controller/KafkaController.java index 793efc83..d341df28 100644 --- a/src/main/java/com/gzzn/omms/msgexchangeapi/controller/KafkaController.java +++ b/src/main/java/com/gzzn/omms/msgexchangeapi/controller/KafkaController.java @@ -1,18 +1,27 @@ package com.gzzn.omms.msgexchangeapi.controller; +import java.util.Map; + import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import com.gzzn.omms.msgexchangeapi.dto.ResponseDto; +import com.gzzn.omms.msgexchangeapi.service.IExchangeService; import com.gzzn.omms.msgexchangeapi.service.IKafkaService; +import com.gzzn.omms.msgexchangeapi.utils.JsonUtil; @RestController @RequestMapping("/kafka") public class KafkaController { @Autowired private IKafkaService kafkaservice; + + @Autowired + IExchangeService exchangeService; /** * 发送消息到kafka指定topic上 @@ -20,9 +29,21 @@ public class KafkaController { * @param topic * @return */ - @GetMapping(value = "/send") - public ResponseDto sendKafka(String msg,String topic) { - kafkaservice.msgSend(topic, msg); - return ResponseDto.success(); + @PostMapping(value = "/topics/{name}/msgs") + public ResponseDto sendJsonToKafka(@PathVariable("name") String topicName,@RequestBody String msg) { + try { + //默认以json 转换 + JsonUtil.getObject(msg, Map.class); + kafkaservice.msgSend(topicName, msg); + } catch (Exception e) { + try { + String jsonStr = exchangeService.xmlToJson(msg); + kafkaservice.msgSend(topicName, jsonStr); + } catch (Exception e2) { + throw new RuntimeException(e2); + } + } //end try + + return ResponseDto.success(); } } diff --git a/src/test/java/com/gzzn/omms/msgexchangeapi/service/ExchangeServiceImplTest.java b/src/test/java/com/gzzn/omms/msgexchangeapi/service/ExchangeServiceImplTest.java index bbf04e3c..fed1d32e 100644 --- a/src/test/java/com/gzzn/omms/msgexchangeapi/service/ExchangeServiceImplTest.java +++ b/src/test/java/com/gzzn/omms/msgexchangeapi/service/ExchangeServiceImplTest.java @@ -1,6 +1,7 @@ package com.gzzn.omms.msgexchangeapi.service; import java.io.IOException; +import java.util.Map; import org.junit.Test; import org.junit.runner.RunWith; @@ -10,6 +11,7 @@ import org.springframework.test.context.junit4.SpringRunner; import com.fasterxml.jackson.core.JsonParseException; import com.fasterxml.jackson.databind.JsonMappingException; +import com.fasterxml.jackson.dataformat.xml.XmlMapper; @RunWith(SpringRunner.class) @SpringBootTest @@ -44,4 +46,30 @@ public class ExchangeServiceImplTest { //assertThat(jsonPath("$.", matcher)). } + + + @Test + public void testXmlToMap() throws JsonParseException, JsonMappingException, IOException + { + String xmlString = "\r\n" + + "\r\n" + + " \r\n" + + " AODB\r\n" + + "282266\r\n" + + "20181121224147\r\n" + + "FLOP\r\n" + + "DELY\r\n" + + "\r\n" + + "\r\n" + + "11485800\r\n" + + "OZ-OZ324-D-22NOV180035-I\r\n" + + " NO REMARKS\r\n" + + "\r\n" + + ""; + + + XmlMapper xmlMapper = new XmlMapper(); + + Map map = xmlMapper.readValue(xmlString,Map.class); + } }