繁体   English   中英

Apache-Pulsar 模式没有方法 builder()

[英]Apache-Pulsar schema doesn't have method builder()

我试图在struct/SchemaDefinition下复制这里的示例。 我想将消息的模式定义为名为Davis的 class,其定义如下:

package com.example.streaming;

import lombok.Builder;
import lombok.AllArgsConstructor;
import lombok.NoArgsConstructor;

import java.sql.Timestamp;

@Builder
@AllArgsConstructor
@NoArgsConstructor
public class Davis {
    Timestamp timestamp;
    float temperature;
}

我已经从Lombok project导入了注释,我不知道这是否正确,但是 Pulsar 的文档在这里有点差..
我的制作人class是这样的

import org.apache.pulsar.client.api.*;
import org.apache.pulsar.client.impl.schema.JSONSchema;
import java.io.IOException;

public class DavisProducer {

    public static void main(String[] args) throws IOException {
        PulsarGetPropertyValues properties = new PulsarGetPropertyValues();
        properties.getPropValues();

        PulsarClient client = PulsarClient.builder()
                .serviceUrl(properties.getProperty("pulsar.service_url"))
                .authentication(
                        AuthenticationFactory.token(properties.getProperty("pulsar.token"))
                )
                .build();

        Producer<Davis> producer = client.newProducer(JSONSchema.of(Davis.class))
                .topic(properties.getProperty("pulsar.topic"))
                .create();

        // Send a message to the topic
        producer.newMessage().value(Davis.builder()
                .timestamp(sometimestamp)
                .temp_out((float) 18.5556)
                .build()).send();

        producer.close();

        client.close();

    }
}

代码无法编译,因为Davis没有方法builder() 我错过了什么?

问题是 Lombok 项目未作为compileOnly依赖项包含在 Gradle (v7.1) 中。

https://stackoverflow.com/a/55227788/14314060找到了答案

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM