Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.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/8/mysql/57.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 无法注入默认MySQL数据源_Java_Mysql_Jdbc_Datasource_Quarkus - Fatal编程技术网

Java 无法注入默认MySQL数据源

Java 无法注入默认MySQL数据源,java,mysql,jdbc,datasource,quarkus,Java,Mysql,Jdbc,Datasource,Quarkus,我正在努力注入默认数据源,但出现以下错误: javax.enterprise.inject.IllegalProductException:正常作用域生产者方法不能返回null: io.quarkus.Agrol.runtime.DataSourceProducer.createDefaultDataSource() 这是我目前的情况: 应用程序属性 quarkus.datasource.driver = com.mysql.cj.jdbc.Driver quarkus.datasource.j

我正在努力注入默认数据源,但出现以下错误:

javax.enterprise.inject.IllegalProductException:正常作用域生产者方法不能返回null: io.quarkus.Agrol.runtime.DataSourceProducer.createDefaultDataSource()

这是我目前的情况:

应用程序属性

quarkus.datasource.driver = com.mysql.cj.jdbc.Driver
quarkus.datasource.jdbc.url=jdbc:mysql://localhost:3307/sandbox
quarkus.datasource.username=root
quarkus.datasource.password=password
quarkus.datasource.jdbc.min-size=0
quarkus.datasource.jdbc.max-size=11
quarkus.datasource.users.driver = com.mysql.cj.jdbc.Driver
quarkus.datasource.users.url=jdbc:mysql://localhost:3307/sandbox
quarkus.datasource.users.username=root
quarkus.datasource.users.password=password
quarkus.datasource.users.min-size=0
quarkus.datasource.users.max-size=11
MyClass.java

@ApplicationScoped
public class MyClass {

    @Inject
    AgroalDataSource dataSource;

    void methodUsingDataSource() {...}
}
@ApplicationScoped
public class MyClass {

    @Inject
    @DataSource("users")
    AgroalDataSource dataSource;

    void methodUsingDataSource() {...}
}
但是,我让它使用与默认配置相同的命名数据源:

应用程序属性

quarkus.datasource.driver = com.mysql.cj.jdbc.Driver
quarkus.datasource.jdbc.url=jdbc:mysql://localhost:3307/sandbox
quarkus.datasource.username=root
quarkus.datasource.password=password
quarkus.datasource.jdbc.min-size=0
quarkus.datasource.jdbc.max-size=11
quarkus.datasource.users.driver = com.mysql.cj.jdbc.Driver
quarkus.datasource.users.url=jdbc:mysql://localhost:3307/sandbox
quarkus.datasource.users.username=root
quarkus.datasource.users.password=password
quarkus.datasource.users.min-size=0
quarkus.datasource.users.max-size=11
MyClass.java

@ApplicationScoped
public class MyClass {

    @Inject
    AgroalDataSource dataSource;

    void methodUsingDataSource() {...}
}
@ApplicationScoped
public class MyClass {

    @Inject
    @DataSource("users")
    AgroalDataSource dataSource;

    void methodUsingDataSource() {...}
}
你知道如何纠正这种行为吗?这会导致我在设置Hibernate时出现问题。

删除此行:

quarkus.datasource.driver = com.mysql.cj.jdbc.Driver
用这个代替:

quarkus.datasource.db-kind = mysql
您在默认数据源中混合了不推荐的和新的配置属性,而您的组合不起作用

您给出的命名数据源示例仅使用旧的配置属性,因此它可以正常工作


现在我需要理解为什么没有正确的错误消息。我将继续改进这一点。

应用程序不是以这种配置启动的。我得到以下错误:原因:javax.enterprise.inject.UnsatifiedResolutionException:类型io.Agrol.api.AgrolDataSource和限定符未满足依赖关系[@Default]这是哪个版本的Quarkus?这是1.2.0.finalLevery自从我将Quarkus版本从1.2.0.Final更新到1.4.1.Final以来,一切都很好。谢谢你的支持!是的,我们更改了数据源配置,您在默认数据源配置中使用了1.2不支持的一些属性。这就是为什么它没有被创建。