Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 自动从路径读取JSON_Java_Apache Kafka - Fatal编程技术网

Java 自动从路径读取JSON

Java 自动从路径读取JSON,java,apache-kafka,Java,Apache Kafka,我使用以下代码从项目文件夹中读取JSON,然后执行kafka生产者代码 现在,它处于while循环中,因此代码执行是连续进行的 如果我想替换同一路径中的新“test.json”。预计这一次,代码将自动读取同一项目文件夹中正在更新的新“test.json”。如果在同一路径中有任何新的“test.json”被更新,如何让此代码自动读取 如果我在路径中复制/粘贴一个新的“test.json”,那么下面的现有代码将不会读取 public void doPost(HttpServletRequest re

我使用以下代码从项目文件夹中读取JSON,然后执行kafka生产者代码

现在,它处于
while循环中
,因此代码执行是连续进行的

如果我想替换同一路径中的新“test.json”。预计这一次,代码将自动读取同一项目文件夹中正在更新的新“test.json”。如果在同一路径中有任何新的“test.json”被更新,如何让此代码自动读取

如果我在路径中复制/粘贴一个新的“test.json”,那么下面的现有代码将不会读取

public void doPost(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {

    while (true) {           
        try {           
            URL url = getClass().getResource("test.json");
            File file = new File(url.getPath());
            Properties props = new Properties();            
            props.put("bootstrap.servers", "yupsectory.selet.com:9092");
            props.put("client.id", CLIENT_ID);
            props.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer");
            props.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer");
            String jsonData = readFile(file.getAbsolutePath());
            JSONObject jobj = new JSONObject(jsonData);    
            System.out.println("jarr: " + jobj.getJSONObject("data").toString());    
            Yupsectoryproducer<String, String> producer = new Yupsectoryproducer <>(props);      
            //Use this util to pull the context that needs to be propagated from the HttpServletRequest
            Map<String, String> headermap = YupsectoryContextUtil.buildContextMap(request);
            //Sending a message
            ProducerRecord<String, String> record = new ProducerRecord<String, String>(topic, jobj.getJSONObject("data").toString());
            producer.send(record, headermap);           
            producer.close();                 
        } catch (JSONException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }
}
public void doPost(HttpServletRequest请求,HttpServletResponse响应)
抛出IOException、ServletException{
虽然(正确){
试试{
URL=getClass().getResource(“test.json”);
File File=新文件(url.getPath());
Properties props=新属性();
props.put(“bootstrap.servers”,“yupsectory.selet.com:9092”);
props.put(“client.id”,client\u id);
put(“key.serializer”、“org.apache.kafka.common.serialization.StringSerializer”);
put(“value.serializer”、“org.apache.kafka.common.serialization.StringSerializer”);
字符串jsonData=readFile(file.getAbsolutePath());
JSONObject jobj=新的JSONObject(jsonData);
System.out.println(“jarr:+jobj.getJSONObject(“data”).toString());
Yupsectoryproducer producer=新的Yupsectoryproducer(道具);
//使用此util从HttpServletRequest提取需要传播的上下文
Map headermap=YupsectoryContextUtil.buildContextMap(请求);
//发送消息
ProducerRecord=newproducerrecord(主题,jobj.getJSONObject(“数据”).toString());
制作人。发送(记录,标题映射);
producer.close();
}捕获(JSONException e){
//TODO自动生成的捕捉块
e、 printStackTrace();
}
}
}

手表服务可能会有所帮助。如果您想要更简单的方法,请使用Kafka Connect:@Top.Deck,我尝试了此链接中的示例代码,但在路径中覆盖同一文件时,它不会发出通知。我希望在同一路径中覆盖同一文件时收到文件更新通知。例如:我在路径中有一个名为a.JSON的文件。然后我更新了一个相同的文件(A.json),并在相同的路径中覆盖。我希望现在就可以检测到通知。@Stella这里可能是一个很好的例子: