Java, JPA, Glassfish, ungültige Ressource: jdbc / __ default__pm
Ich verwende Glassfish 3.1.2.2 (build 5), JPA, EclipseLink, MySQL
Ich erstellte MySQL-pool über die Glassfish admin-panel. Ping auf MySQL von GF admin-panel ist ok.
Ich erstellte app mit persistence.xml:
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="2.0">
<persistence-unit name="myUnit">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<properties>
<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/myDBName"/>
<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
<property name="javax.persistence.jdbc.user" value="root"/>
<property name="javax.persistence.jdbc.password" value="myPass"/>
<property name="javax.persistence.ddl-generation" value="drop-and-create-tables"/>
</properties>
</persistence-unit>
Habe ich versucht zu implementieren, und bekam die Fehlermeldung:
Invalid resource : jdbc/__default__pm
[#|2012-11-16T02:20:59.480+0400|SEVERE|glassfish3.1.2|javax.enterprise.system.core.com.sun.enterprise.v3.server|_ThreadID=43;_ThreadName=Thread-2;|Invalid resource : jdbc/__default__pm
java.lang.RuntimeException: Invalid resource : jdbc/__default__pm
Stacktrace im GF-Protokoll ist riesig. Begonnen von
at com.sun.enterprise.connectors.ConnectorRuntime.lookupDataSourceInDAS(ConnectorRuntime.java:540)
at com.sun.enterprise.connectors.ConnectorRuntime.lookupPMResource(ConnectorRuntime.java:469)
at org.glassfish.persistence.common.PersistenceHelper.lookupPMResource(PersistenceHelper.java:63)
at org.glassfish.persistence.jpa.ProviderContainerContractInfoBase.lookupDataSource(ProviderContainerContractInfoBase.java:71)
....
Hat jemand Ideen, was passiert ist und was zu tun ist?
InformationsquelleAutor der Frage Victor Mezrin | 2012-11-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie nur erstellt einen MySQL connection pool, müssen Sie auch erstellen Sie eine JDBC-Ressource. Das kann man aus dem Kontext-Menü, über das Sie zum erstellen der connection pool.
In meinem Glassfish, meine JDBC-Ressource jdbc/__default ist mit dem Verbindungs-pool mysql_lemon.
InformationsquelleAutor der Antwort Kevin
__nontx und __Uhr sind Erweiterungen an den pool.
Dokumentation: https://docs.oracle.com/cd/E19798-01/821-1752/beamr/index.html
(woanders http://docs.oracle.com/cd/E26576_01/doc.312/e24930/jdbc.htm#GSDVG00185 und http://docs.oracle.com/cd/E26576_01/doc.312/e24930/transaction-service.htm#GSDVG00512)
ersten __Uhr
vom https://docs.oracle.com/cd/E19798-01/821-1752/gavro/index.html
und __nontx
vom https://docs.oracle.com/cd/E19798-01/821-1752/beamu/index.html
InformationsquelleAutor der Antwort Bernhard
(Gleicher post von mir, aber mit der richtigen Konto jetzt):
Beim konfigurieren der Persistenz mit Ihrem setup, legen Sie nur den JNDI-Namen der JDBC-pool in persistence.xml. Optional können Sie den Namen der Zieldatenbank.
Ich Sie auch ermutigen, ändern Sie die 'drop-and-create-table", "create-tables", so dass Sie nicht lose Daten, und dies sollte die Bereitstellung EclipseLink Eigenschaften in der folgenden Weise:
und auch praktisch
erstellt wird, schema-und sql-scripts.
Für weitere Informationen besuchen Sie: http://wiki.eclipse.org/EclipseLink/Examples/JPA/DDL
oder http://docs.oracle.com/cd/E19798-01/821-1752/gbwmj/index.html
InformationsquelleAutor der Antwort Pawel Solarski
Ich hatte das gleiche problem.
Die Lösung (für alle, die noch dieses Problem haben):
services > server > glassfish
dann mit der rechten Maustaste (in Glassfish server) und wählen Sie "Ansicht" Domänen-admin-Konsole, eine web-Seite sollte nach oben zeigen. Gehen Sie auf der linken Seite und wählenresources > JDBC
- und JDBC connection pool. Neue Verbindung hinzufügen-pool, indem Sie aufnew
geben Sie den Namen Ihres Pools. Als Nächstes wählen Sie diejavax.sql.ConnectionPoolDataSource
und diedatadriver
(in meinem Fall MySQL) und klicken Sie auf weiter. Nach, dass Sie sollten geben Sie alle erforderlichen Informationen für Ihre Datenbank.Resources > JDBC
. Diese Zeit, JDBC-Ressourcen erstellen Sie einen neuen JDBC-Ressourcen (für mich, ich nannte esjdbc/test
). Vergessen Sie nicht, verknüpfen Sie es mit der connection pool, die Sie bereits erstellt haben.ejb
Projekt und ändern Sie diepersistence.xml
- Datei. Ändern Sie diedatasource
auf die Datenbank resource (in meinem Falljdbc/test
) und alle speichern.Funktionieren sollte (y).
InformationsquelleAutor der Antwort Mourad Lamkas
Ich hatte das gleiche problem, wenn ich führen/bereitstellen einer app auf einem server erstellt netbeans instalattion-Assistenten.
Zu lösen ich habe die letzten glassfish-version von der offiziellen Seite und ging an:
Netbeans > "Service Tab" > "Server" > "Server Hinzufügen...".
Denken Sie daran, ändern Sie Ihre Projekt-Konfigurationen die Verwendung der neuen glassfish-server-Instanz.
InformationsquelleAutor der Antwort user3512459
Ich hatte das gleiche problem und ich glaube fest daran, es wird durch einige remainig-cache.
So, nachdem ich getan habe,
Nun
__pm
ist nicht mehr angehängt, um JDBC-Ressourcen.wenn das nicht hilft, dann nehme ich an, dass Sie mit
dieser sollte ersetzt werden, mit
z.B.
InformationsquelleAutor der Antwort test30
Hatte ich dieses problem.Ich jdbc connection pool und jdbc-Ressource in admin console. Aber habe ich nicht gesetzt-Datenquelle in persistence.xml .
InformationsquelleAutor der Antwort John