【问题标题】:Entity Class from Database....Error Invalid resource _pm来自数据库的实体类....错误无效资源_pm
【发布时间】:2017-08-30 14:02:03
【问题描述】:

我已经通过 phpMyAdmin 在 MySQL 中创建了一个数据库和表。我正在尝试使用数据库中的实体类将其连接到我的项目。但是,当我运行我的项目时出现以下错误:

Caused by: com.sun.appserv.connectors.internal.api.ConnectorRuntimeException:      Invalid resource : java:module/companyDB__pm

我已经搜索了几个小时,似乎很多人都有类似的问题,但是我无法按照提供的步骤解决它。例如,我尝试按照此处的步骤操作:http://www.nagazuka.nl/2014/03/invalid-resource-with-netbeans-8_27.html 但没有帮助。我尝试在我的 glassfish-resources.xml 和 persistence.xml 中进行更改,但没有任何效果。 请提供任何帮助!

【问题讨论】:

  • 我可以看看你的persistance.xml是什么样子的

标签: mysql jdbc netbeans entity


【解决方案1】:

此错误Invalid resource : java:module/companyDB__pm 表示您的 JNDI 在您的服务器中不存在,因此要解决您的问题,您必须在 GlassFish 服务器中手动创建一个具有相同名称的 JNDI companyDB

例如:

登录到您的服务器后,您将看到:

创建 JDBC 连接池

填写信息并按下一步我正在使用 PostgresSQL,所以在你的情况下选择 MySQL:

填写连接信息并按完成:

要检查您的连接是否成功,请不要按 ping 并检查:

现在创建 JDBC 资源:

创建一个新的 JNDI,在您的应用程序中指定相同的名称并选择您之前已经创建的池,然后按完成:

现在您可以部署您的应用程序了,希望对您有所帮助。

【讨论】:

  • 感谢您的回复。我尝试过这样做,但是当我尝试编写 java:module/companyDB 时,它不允许我在 JNDI 名称中添加“:”符号
  • 对不起@jasmine 没有用这个名字创建companyDB
  • @jasmine 在此之前不要忘记创建 JDBC 资源
  • 所以在我的 GlassFish 服务器中,我将手动创建一个 JDBC 连接池和 JDBC 资源,这是否正确?对于 JDBC 资源中的 JNDI 名称,我将命名为 companyDB?在 glassfish-resources.xml 中有一个池名称...我应该将它用于我的 JDBC 连接池名称吗?
  • 是的@jasmine,你可以为你的池使用任何名称,只要确保你应该在创建 JNDI 时设置这个池,如果这不适合你,我会给你另一个想法, 通过命令行 ;)
【解决方案2】:
  1. 除了@YCF_L提供的截图外,我去了persistence.xml文件,将数据源名称改成与JDBC Resource中给出的JNDI名称相同的名称(jdbc/companyDB)。

  2. 另外,在创建连接池时,我选择 MySQL 作为数据库驱动程序供应商,因为我使用的是 PHPMyAdmin MySQL。制作连接池时的附加属性需要填写:URL(jdbc:mysql://:3306/databaseName)、url、Server Name、Database Name、User、Password。

  3. 我无法在没有密码的情况下连接到数据库,所以我需要设置一个。

【讨论】:

    猜你喜欢
    • 2011-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-01
    相关资源
    最近更新 更多