在kafka主题上发送以下特定的json

时间:2016-08-10 04:48:30

标签: java json apache-kafka

JSON

{
    "data": {
        "userName": "abc",
        "message": "Testing service",



            "mobileno": [{
                    "mobilenumber": "90000000000"
                },

                {
                    "mobilenumber": ""
                },

                {
                    "mobilenumber": ""
                },

                {
                    "mobilenumber": ""
                }
            ]
        }
    }

我们必须在kafka主题上发送上面的json,但是我们无法发送特定的json格式。

以下是我们正在尝试的代码:

MobileController类

           @Controller
    public class MobileController {

        @RequestMapping(value = "/mobile", method = RequestMethod.POST)
        public void dataFromEs(@RequestParam("name") String name,
                @RequestParam("message") String message,
                @RequestParam("mobileNo") String[] mobileNo)
                throws JsonProcessingException {
            Properties props = new Properties();

            props.put("metadata.broker.list", "hostname:port");
            props.put("serializer.class", "kafka.serializer.StringEncoder");
            props.put("request.required.acks", "1");

            ProducerConfig producerConfig = new ProducerConfig(props);

            List<KeyedMessage<String, String>> msgList = new ArrayList<KeyedMessage<String, String>>();

            String topic = "qwerty";// topic name
            Data data = new Data();
            data.setUserName(name);
            data.setMobileNo(mobileNo);
            data.setMessage(message);
                              KeyedMessage<String, String> keyedMessage1 = new KeyedMessage<String, String>(
                    topic, data.toString());

            msgList.add(keyedMessage1);

            Producer<String, String> post = new Producer<String, String>(
                    producerConfig);

            // post.send(messages);

            post.send(msgList);

        }
    }

数据类

以下是getter setter类

    import java.util.Arrays;

    public class Data {
    private String userName;
    private String message;
    private String[] mobileNo;
    public String getUserName() {
        return userName;
    }
    public void setUserName(String userName) {
        this.userName = userName;
    }
    public String getMessage() {
        return message;
    }
    public void setMessage(String message) {
        this.message = message;
    }
    public String[] getMobileNo() {
        return mobileNo;
    }
    public void setMobileNo(String[] mobileNo) {
        this.mobileNo = mobileNo;
    }
    @Override
    public String toString() {
        return "{data: {userName:" + userName + ", message:" + message
                + ", mobileNo:mobilenumber" + Arrays.toString(mobileNo) + "}";
    }

    }

我们正在制作一个网络服务,在控制器中我们将拥有用户名,消息和多个手机号码。 即一个用户将向多个手机号码发送消息。任何帮助都会很明显。

0 个答案:

没有答案