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>