我在GlassFish上部署了一个j2ee应用程序。 我在GlassFish的lib目录中有mysql jar。 我正在尝试使用JPA,我的持久性文件是:
<persistence-unit name="teamPU"
transaction-type="RESOURCE_LOCAL">
<provider>
oracle.toplink.essentials.PersistenceProvider
</provider>
<class>com.team.dao.Roles</class>
<properties>
<property name="toplink.jdbc.driver"
value="com.mysql.jdbc.Driver" />
<property name="toplink.jdbc.url"
value="jdbc:mysql://localhost:3306/test" />
<property name="toplink.jdbc.user" value="root" />
<property name="toplink.ddl-generation"
value="create-tables" />
</properties>
</persistence-unit>
我在lib中也有toplink-essentials * jars。 当我调用dao.find *时,它会抛出No合适的驱动程序。 我不是所有的罐子都应该在哪里吗?
答案 0 :(得分:0)
我使用JPA / toplink的Java Web应用程序(Servlets / JSP)遇到了这个问题。它在我的开发系统上运行良好,NetBeans部署到Tomcat。当我将Web应用程序部署到生产服务器上的Tomcat时,我会得到“java.sql.SQLException:没有合适的驱动程序”,我在调用堆栈中看到了toplink包。有趣的是,我也在我的网络应用程序中使用直接JDBC,并且在生产服务器上运行良好。
修复方法是将相应的jdbc驱动程序.jar复制到jre6 \ lib \ ext文件夹。
很高兴知道为什么在顶级链接的情况下将jdbc .jar放入web应用程序.war文件中是不够的......