在基于quarkus的代码中的CrudRepository上调用findAll方法时,出现异常。
这是我的数据库配置。
quarkus.datasource.url = jdbc:postgresql://localhost:5432/postgres
quarkus.datasource.driver = org.postgresql.Driver
quarkus.datasource.username = ZZZZ
quarkus.datasource.password = XXX
这是存储库代码。
import org.springframework.data.repository.CrudRepository;
public interface FruitRepository extends CrudRepository<FruitEntity, Integer> {
}
这是客户端代码。
import javax.inject.Inject;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
@Path("/fruitz")
public class FruitController {
@Inject
FruitRepository fruitRepository;
@GET
@Produces("application/json")
public Iterable<FruitEntity> findAll() {
return fruitRepository.findAll();
}
}
我正在追随异常。
原因:javax.enterprise.inject.IllegalProductException:普通范围内的生产者方法可能不会返回null:io.quarkus.agroal.runtime.DataSourceProducer.createDefaultDataSource() 在io.quarkus.agroal.runtime.DataSourceProducer_ProducerMethod_createDefaultDataSource_7c487e3ef869f878aa871e917c94f4d26d5d5c56_Bean.create(DataSourceProducer_ProducerMethod_createDefaultDataSource_7c487e3ef869f878aa871e917c94f4d26d56c) 在io.quarkus.agroal.runtime.DataSourceProducer_ProducerMethod_createDefaultDataSource_7c487e3ef869f878aa871e917c94f4d26d5d5c56_Bean.create(DataSourceProducer_ProducerMethod_createDefaultDataSource_7c487e3ef869f878aa871e917c94f4d26d56244) 在io.quarkus.arc.AbstractSharedContext.createInstanceHandle(AbstractSharedContext.java:69) 在io.quarkus.arc.ComputingCache $ CacheFunction.lambda $ apply $ 0(ComputingCache.java:99) 在io.quarkus.arc.LazyValue.get(LazyValue.java:26) 在io.quarkus.arc.ComputingCache.getValue(ComputingCache.java:41) 在io.quarkus.arc.AbstractSharedContext.get(AbstractSharedContext.java:20) 在io.quarkus.agroal.runtime.DataSourceProducer_ProducerMethod_createDefaultDataSource_7c487e3ef869f878aa871e917c94f4d26d5d5c5_56_ClientProxy.arc $ delegate(DataSourceProducer_ProducerMethod_createDefaultDataSource_7c487e3ef869f878ad56d265470 在io.quarkus.agroal.runtime.DataSourceProducer_ProducerMethod_createDefaultDataSource_7c487e3ef869f878aa871e917c94f4d26d5d5c56_ClientProxy.getConnection(DataSourceProducer_ProducerMethod_createDefaultDataSource_7c487e3ef869f878aa871e917c94f4d
答案 0 :(得分:0)
您必须使用@Named
注释您的界面,以使其可用于注入。另外,请确保已添加quarkus-jdbc-postgresql
作为依赖项。