我在测试我的spring云流服务(它写入kafka流)时遇到问题。它的基础是下面的baeldung介绍
这是服务代码(细节省略)
@Service
@EnableBinding(Source.class)
public class KafkaWriterService {
@SendTo(Source.OUTPUT)
public String write(String str) {
return str;
}
}
这是测试
@SpringBootTest
@RunWith(SpringRunner.class)
public class KafkaWriterServiceTest {
@Autowired
private Source source;
@Autowired
private MessageCollector collector;
@Autowired
private KafkaWriterService service;
@Test
public void testMessages() {
BlockingQueue<Message<?>> messages = collector.forChannel(source.output());
service.write("FooBar");
Object payload = messages.poll().getPayload();
System.out.println(payload);
}
很直接,但是当执行测试时,我得到一个nullpointerexception,因为poll返回一个null。
知道问题是什么吗?
谢谢!
1条答案
按热度按时间igsr9ssn1#
更新:
如果您只是想找一个Kafka制作人的例子,那么请对您的服务进行以下更改:
@Service
@EnableBinding({Source.class, Sink.class})
public class KafkaWriterService {
}
@SpringBootTest
@RunWith(SpringRunner.class)
public class KafkaWriterServiceTest {
}