首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Mysql没有为jdbc找到合适的驱动程序:带有persistence.xml和glassfish 4.1.1的mysql

Mysql没有为jdbc找到合适的驱动程序:带有persistence.xml和glassfish 4.1.1的mysql
EN

Stack Overflow用户
提问于 2019-04-29 00:13:08
回答 1查看 0关注 0票数 0

我一直在研究尝试关于这个常见问题的其他问题的所有建议,但似乎都没有用。就像将连接器jar添加到我的WEB-INF / lib文件夹一样,尝试将jar添加到我的glassfish domain / lib文件夹中(不确定我是否在正确的文件中执行此操作)。我正在使用Glassfish 4.1.1和Netbeans 8.2并尝试使用Java EE 7创建Web应用程序。我在常规Java Maven应用程序中连接到MySql数据库没有麻烦,但是一切换到并尝试连接当我运行项目并在我的浏览器中打开应用程序时,我的Maven Web App,我有问题。

我的Netbeans在我的数据库中查找表没有任何问题,因为我已将一些表映射到实体类(在Netbeans中从数据库创建实体类)。

我的MySQL数据库版本为8.0.15,mysql-connector jar文件也是8.0.15。

我的persistence.xml是这样:

代码语言:javascript
运行
复制
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.1" xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
  <persistence-unit name="IowaAirPU" transaction-type="RESOURCE_LOCAL">
    <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
    <class>com.iowaair.iowaairdata.Account</class>
    <shared-cache-mode>NONE</shared-cache-mode>
    <properties>
      <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/iowa_air?zeroDateTimeBehavior=convertToNull"/>
      <property name="javax.persistence.jdbc.user" value="root"/>
      <property name="javax.persistence.jdbc.driver" value="com.mysql.cj.jdbc.Driver"/>
      <property name="javax.persistence.jdbc.password" value="root"/>
    </properties>
  </persistence-unit>
</persistence>

我不确定我是否需要将资源引用添加到我的web xml中。Web.xml

代码语言:javascript
运行
复制
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.1" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd">
    <description>Iowa Air Website</description>
    <display-name>IowaAirWeb</display-name>
    <servlet>
        <description>Iowa Air Front Controller</description>
        <servlet-name>FrontController</servlet-name>
        <servlet-class>com.iowaair.iowaair.FrontController</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>FrontController</servlet-name>
        <url-pattern>/login</url-pattern>
        <url-pattern>/home</url-pattern>
    </servlet-mapping>
    <session-config>
        <session-timeout>
            30
        </session-timeout>
    </session-config>
    <welcome-file-list>
        <welcome-file>home</welcome-file>
    </welcome-file-list>
    <resource-ref>
        <res-ref-name>jdbc/iowaairDB</res-ref-name>
        <res-type>javax.sql.ConnectionPoolDataSource</res-type>
        <res-auth>Container</res-auth>
        <res-sharing-scope>Shareable</res-sharing-scope>
    </resource-ref>
</web-app>

glassfish-resources.xml

代码语言:javascript
运行
复制
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE resources PUBLIC "-//GlassFish.org//DTD GlassFish Application Server 3.1 Resource Definitions//EN" "http://glassfish.org/dtds/glassfish-resources_1_5.dtd">
<resources>
  <jdbc-resource enabled="true" jndi-name="jdbc/iowaairDB" object-type="user" pool-name="connectionPool">
    <description/>
  </jdbc-resource>
  <jdbc-connection-pool allow-non-component-callers="false" associate-with-thread="false" connection-creation-retry-attempts="0" connection-creation-retry-interval-in-seconds="10" connection-leak-reclaim="false" connection-leak-timeout-in-seconds="0" connection-validation-method="auto-commit" datasource-classname="com.mysql.jdbc.jdbc2.optional.MysqlDataSource" fail-all-connections="false" idle-timeout-in-seconds="300" is-connection-validation-required="false" is-isolation-level-guaranteed="true" lazy-connection-association="false" lazy-connection-enlistment="false" match-connections="false" max-connection-usage-count="0" max-pool-size="32" max-wait-time-in-millis="60000" name="connectionPool" non-transactional-connections="false" pool-resize-quantity="2" res-type="javax.sql.ConnectionPoolDataSource" statement-timeout-in-seconds="-1" steady-pool-size="8" validate-atmost-once-period-in-seconds="0" wrap-jdbc-objects="false">
    <property name="URL" value="jdbc:mysql://localhost:3306/iowa_air?zeroDateTimeBehavior=convertToNull"/>
    <property name="User" value="root"/>
    <property name="Password" value="root"/>
  </jdbc-connection-pool>
</resources>

也把连接器包含在pom中:

代码语言:javascript
运行
复制
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.15</version>
    <type>jar</type>
    <scope>compile</scope>
</dependency>
EN

Stack Overflow用户

发布于 2019-04-29 09:21:54

既然你的Java Maven应用程序有效,我建议你让项目成为一个多项目maven构建分裂:iowaair-core iowaair-web

然后让iowaair-core成为iowaair-web的依赖。

代码语言:javascript
运行
复制
<artifactId>iowaair-web</artifactId>
    <packaging>war</packaging>
    <version>1</version>    
    <dependencies>       
        <dependency>
            <groupId>com.iowaair.iowaairdata</groupId>
            <artifactId>iowaair-core</artifactId>
            <version>1</version>
        </dependency>  

然后可以通过以下方式配置根项目:

代码语言:javascript
运行
复制
...
<build>...</build>
  <modules>
    <module>iowaair-core</module>
    <module>iowaair-web</module>
  </modules>
</project>

这样你的mysql连接器和PU将被正确地拾取。

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100006685

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档