MySql Microprofile 的 Open Liberty 实现中的连接
MySql connection in Open Liberty implementation of Microprofile
我是 Microprofile 世界的新手,我正在尝试使用 Open Liberty 作为实现来创建微服务。当我尝试使用 MySql 连接到我的数据库时,这里的主要问题开始了,但我找不到原因。
我的 server.xml 文件是下一个:
<library id="jdbcLib">
<fileset dir="jdbc" includes="*.jar"/>
</library>
<dataSource jndiName="jdbc/myDB">
<jdbcDriver libraryRef="jdbcLib"/>
<properties serverName="localhost" portNumber="3306"
databaseName="inventory"
user="root"
password="root"/>
</dataSource>
我的 persistence.xml 文件是:
<persistence-unit name="jpa-unit" transaction-type="JTA">
<jta-data-source>jdbc/myDB</jta-data-source>
<properties>
<property name="eclipselink.ddl-generation" value="create-tables"/>
<property name="eclipselink.ddl-generation.output-mode" value="both" />
</properties>
</persistence-unit>
我找不到我做错了什么,但我收到以下异常:
java.sql.SQLNonTransientException: DSRA4000E: No implementations of [javax.sql.ConnectionPoolDataSource, javax.sql.DataSource, javax.sql.XADataSource, java.sql.Driver] are found for dataSource[default-0] with library jdbcLib
有人可以帮我解决这个问题吗?我将不胜感激 :D
您似乎遵循了此处的示例:https://openliberty.io/docs/21.0.0.3/relational-database-connections-JDBC.html
根据异常,看起来驱动程序 jar 不在 jdbc 目录中(该目录将是 wlp/usr/server/server_name/jdbc) 你应该可以在这里得到你需要的版本:https://mvnrepository.com/artifact/mysql/mysql-connector-java
如果您使用的是 Maven,则可以使用 Liberty Maven 插件下载驱动程序并将其复制到正确的目录中。这是使用最新的 8.0.26 驱动程序的示例:
<plugin>
<groupId>io.openliberty.tools</groupId>
<artifactId>liberty-maven-plugin</artifactId>
<version>3.3</version>
<configuration>
<copyDependencies>
<location>jdbc</location>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<!-- You can omit the version below if you have
declared a dependency and want to simply use
that version, or specify the version as shown
if you don't include this artifact as a dependency. -->
<version>8.0.26</version>
</dependency>
</copyDependencies>
</configuration>
</plugin>
我是 Microprofile 世界的新手,我正在尝试使用 Open Liberty 作为实现来创建微服务。当我尝试使用 MySql 连接到我的数据库时,这里的主要问题开始了,但我找不到原因。 我的 server.xml 文件是下一个:
<library id="jdbcLib">
<fileset dir="jdbc" includes="*.jar"/>
</library>
<dataSource jndiName="jdbc/myDB">
<jdbcDriver libraryRef="jdbcLib"/>
<properties serverName="localhost" portNumber="3306"
databaseName="inventory"
user="root"
password="root"/>
</dataSource>
我的 persistence.xml 文件是:
<persistence-unit name="jpa-unit" transaction-type="JTA">
<jta-data-source>jdbc/myDB</jta-data-source>
<properties>
<property name="eclipselink.ddl-generation" value="create-tables"/>
<property name="eclipselink.ddl-generation.output-mode" value="both" />
</properties>
</persistence-unit>
我找不到我做错了什么,但我收到以下异常:
java.sql.SQLNonTransientException: DSRA4000E: No implementations of [javax.sql.ConnectionPoolDataSource, javax.sql.DataSource, javax.sql.XADataSource, java.sql.Driver] are found for dataSource[default-0] with library jdbcLib
有人可以帮我解决这个问题吗?我将不胜感激 :D
您似乎遵循了此处的示例:https://openliberty.io/docs/21.0.0.3/relational-database-connections-JDBC.html
根据异常,看起来驱动程序 jar 不在 jdbc 目录中(该目录将是 wlp/usr/server/server_name/jdbc) 你应该可以在这里得到你需要的版本:https://mvnrepository.com/artifact/mysql/mysql-connector-java
如果您使用的是 Maven,则可以使用 Liberty Maven 插件下载驱动程序并将其复制到正确的目录中。这是使用最新的 8.0.26 驱动程序的示例:
<plugin>
<groupId>io.openliberty.tools</groupId>
<artifactId>liberty-maven-plugin</artifactId>
<version>3.3</version>
<configuration>
<copyDependencies>
<location>jdbc</location>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<!-- You can omit the version below if you have
declared a dependency and want to simply use
that version, or specify the version as shown
if you don't include this artifact as a dependency. -->
<version>8.0.26</version>
</dependency>
</copyDependencies>
</configuration>
</plugin>