我在Netbeans 11中有一个Web应用程序(安装了JDK 8),我添加了mysql-连接器-java-8.0.15.jar的依赖项,并从我的DB中生成了JPAs。
在构建它时没有错误。
但是当我尝试运行它时,Glassfish服务器会给我这些错误(pastebin链接)。
这是我的persistence.xml,我相应地设置为:
<?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="InvoicesPU" transaction-type="JTA">
<jta-data-source>java:app/Invoices</jta-data-source>
<exclude-unlisted-classes>false</exclude-unlisted-classes>
<properties/>
</persistence-unit>
</persistence>在我的java类中,我将其称为:
@Stateless
public class InvoiceEJB implements InvoiceEJBLocal {
@PersistenceContext(unitName = "InvoicesPU")
EntityManager em;
...
em.someMethod();为了完整起见,我在编译阶段没有错误!
有人知道怎么解决吗?
发布于 2019-04-20 09:23:46
,经过一些研究,我用这样的方式解决了它:
mysql-connector-java-8.x.x.jar作为依赖项移除,并添加了mysql-connector-java-5.x.x.jarthe persistence.xml中,我为标记jta-data-source设置了JNDI名称一切都如期而至!
我不知道如何使用最新版本的MySQL连接器来工作,但至少我的Web应用程序是这样工作的。
编辑:用于最新版本的mysql-连接器的,正如鬼神建议您应该将MysqlDataSource:从com.mysql.jdbc.jdbc2.optional.MysqlDataSource设置为报告的这里。
我希望这对其他人有用。
发布于 2019-04-19 09:18:32
尝试将您的JDBC驱动程序jar放到Glassfish域的lib文件夹中。我通常把它们放在lib/ext里。
发布于 2022-11-26 10:24:41
我不记得我是否从其他帖子或Glassfish用户手册中获得了这个信息,但是它解决了前面提到的问题,即:类名称错误或类路径没有设置与Glassfish 5或Payara服务器的错误-我目前正在使用Payara server 5.2022.3。将最新的连接器j添加到您的服务器/您的_域;在我的示例中是domain1,这是在我'cd‘之后的脚本到/bin: C:\Program \payara-web-5.2022.3\payara 5\bin>asadmin添加库类型的应用程序"C:\Program (X86)\mysql connector J8.0\mysql连接器-j-8.0.31.jar“,引用的字符串是我保存连接器j的路径。
https://stackoverflow.com/questions/55753873
复制相似问题