我有一个基于kafka的带有smallryeReact式消息传递的quarkus项目。因为我想使用“复杂的pojo”,所以我需要一个自定义的反序列化程序。
我想创建这两个类cdibean,这样我就可以注入并使用我的定制记录器,这是一个cdibean。有办法做到这一点吗?
现在,我的注入记录器对象只是空的:
import org.apache.kafka.common.serialization.Serializer;
import javax.enterprise.context.ApplicationScoped;
import javax.inject.Inject;
@ApplicationScoped
public class MySerializer implements Serializer<MyDto>
{
@Inject MyLogger logger;
@Override public byte[] serialize(String topicName, MyDto myDto)
{
// this causes a java.lang.NullPointerException
logger.info("serializing");
...
}
}
1条答案
按热度按时间ny6fqffe1#
据我所知,您只能向kafka注册一个类名,它将在内部创建该类,即不使用cdi。
可能的解决方法:使注册对象成为CDIBean的薄 Package 器,并将工作委托给该bean:
... 并相应地重命名原来的cdi类。