Unbekannte Fehlernachricht der Entitätsklasse, obwohl die Entität mit @Entity-Annotation markiert ist

8

Ich erstelle eine REST-Webanwendung mit Netbean6.9.1 und JPA EclipseLink.

Das Problem, mit dem ich konfrontiert bin, ist, obwohl meine Entitätsklasse MasatoTable mit Entity Annotation markiert ist, bekomme ich einen Fehler:

%Vor%

Die Sache ist wenn ich den GlassFish3 Server von NetbeanIDE neu starte, funktioniert es für eine Weile und irgendwie kommt irgendwann der Fehler auf. Ich habe Toplink Essential benutzt und hatte kein Problem aber Ich habe EsperseLink geändert und persistence.xml (siehe unten) neu definiert und dieses Problem wurde gestartet. Aber ich sehe keinen Codefehler, an den ich denken kann.

MasatoTable.java

%Vor%

persistence.xml

%Vor%

Sieht nach dem gleichen Problem aus, aber die Lösung des Tickets besteht darin, von Eclipselink zu Toplink zurückzukehren. Hat jemand das Problem gelöst, ohne zurück zum Toplink zu rollen?

unbekannt Entity Bean-Klasse nach der heißen Bereitstellung: Netbeans 6.9 + Glassfish 2.1 + eclipselink jpa 2.0

AKTUALISIEREN

Soweit meine Forschung in diesem Fall funktioniert, sehen Sie aus, als ob der Fehler behoben wurde und behoben wurde.

Ссылка

Ich bin nicht sachkundig genug, um das Ganze zu verstehen, aber es gibt wenige Fakten, die ich gefunden habe:

Netbean6.9.1 bietet EclipseLink 2.0.1, während die neueste Version 2.2.0 ist

Ich habe die neueste Version heruntergeladen und sie in das Lib-Verzeichnis kopiert und dann wieder bereitgestellt, aber kein Glück, das Problem besteht immer noch. Ich bin mir nicht sicher, ob ich etwas falsch gemacht habe.

UPDATE nach James Kommentar

Unten ist die Klasse, die ich verwende, um Singleton EntityManagerFactory zu erstellen und wie es verwendet wird.

%Vor%

Wie es verwendet wird:

%Vor%

Wenn ich mir meinen Code ansehe, denke ich ... Ich schließe nicht EntityManagerFactory (ich schließe schliesslich den EntityManager)

Ich fand auch, dass der "unknown entity bean class" Fehler im Thema mit folgender Aktion sicher auftaucht.

  1. Bereitstellen einer Web-App über Netbean (Dadurch wird der Browser geöffnet)

  2. Ändern Sie einen Code in der Netbean IDE und speichern Sie ihn. Dann wird Netbean automatisch neu bereitgestellt, sobald Sie die Schaltfläche zum Speichern drücken (heißt das "Hot Deploy" ???)

  3. Gehen Sie zurück zum Browser und machen Sie etwas wie das Hinzufügen von Daten, die EntityManager beinhalten.

Sieht so aus, als ob der Fehler auftritt, weil ich den Entity Manager Factory bei der Hot-Deploy nicht schließe? Ich muss nachforschen.

    
masato-san 23.02.2011, 06:12
quelle

3 Antworten

6

Wie erstellen Sie Ihren EntityManager / Factory, verwaltet oder nicht verwaltet?

Wenn es nicht verwaltet wird, glaube ich, dass EclipseLink in keiner Weise von einer erneuten Implementierung benachrichtigt wird. Daher wird die alte EntityManagerFactory immer noch zwischengespeichert, da sie niemals geschlossen wird. Können Sie sicherstellen, dass Sie die EntityManagerFactory nach der Hot-Bereitstellung schließen?

Sie können die Persistenzeinheit zu einer verwalteten Persistenzeinheit machen, die das Problem möglicherweise löst.

Wie auch immer, bitte melden Sie einen Fehler dafür mit Details in EclipseLink und Glassfish, da dieses Problem verfolgt werden sollte.

Ich denke, das könnte der Fehler Ссылка

sein

Bitte stimmen Sie für diesen Fehler ab und fügen Sie Ihre Informationen hinzu.

    
James 02.03.2011, 14:10
quelle
2

Die Lösung Hier wird JPA 1.0 verwendet, wenn 2.0 nicht erforderlich ist.

    
David O'Meara 25.02.2011 07:43
quelle
-1

Heute habe ich das gleiche Problem gehabt, aber ich habe es in persistence.xml korrigiert

  1. Überprüfen Sie, ob der Name der Entitätsklasse und das Paket in der Datei persistence.xml richtig definiert sind.
VolatilitySmile 28.02.2011 08:49
quelle

Tags und Links