gpt4 book ai didi

java - 尝试通过 glassfish(使用 Cargo 和 Maven)设置/使用 mysql 数据源。如何部署mysql连接器?

转载 作者:可可西里 更新时间:2023-11-01 08:35:30 25 4
gpt4 key购买 nike

晚上好!

通过 Maven 使用 Cargo,我配置了我的 pom.xml 以创建一个 glassfish 实例,然后将我的项目部署到它,然后再运行集成测试。我大部分时间都在那里,因为我已经部署了我的代码,我已经为它设置了一个数据源和一个 JNDI 资源,但是当我尝试实际使用该资源时,我得到以下异常:

Wrong class name or classpath for Datasource Object 
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

在常规安装 glassfish 时,我可以轻松安装连接器,但在这种情况下,glassfish 的安装是自动进行的,每次运行测试时都会创建一个新实例。

有什么方法可以提供 mysql 连接器,在 glassfish 可以读取的类路径上,或者通过将其安装在每次构建创建的 glassfish 新实例中?

谢谢!

最佳答案

进一步搜索文档,我发现我可以通过在容器配置中提供 Maven 依赖项来做到这一点,如下所示:

<configuration>
<container>
<containerId>glassfish3x</containerId>
<artifactInstaller>
<groupId>org.glassfish.main.distributions</groupId>
<artifactId>glassfish</artifactId>
<version>${glassfish.version}</version>
</artifactInstaller>
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
</dependencies>
</container>
<configuration>
<properties>
<cargo.datasource.datasource.mysql>
cargo.datasource.jndi=jdbc/MysqlPool|
cargo.datasource.driver=com.mysql.jdbc.Driver|
cargo.datasource.url=jdbc:mysql://localhost/databasename|
cargo.datasource.transactionsupport=LOCAL_TRANSACTION|
cargo.datasource.username=username|
cargo.datasource.password=password
</cargo.datasource.datasource.mysql>
</properties>
</configuration>
</configuration>

记下 mysql 依赖项。它需要引用一个已经在我的项目中定义的依赖项(对于我的项目来说,它的范围是“提供的”)。这按预期工作。 :)

关于java - 尝试通过 glassfish(使用 Cargo 和 Maven)设置/使用 mysql 数据源。如何部署mysql连接器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14328588/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com