Ich verwende MATLAB R2007b, Java 1.6 SE, Eclipse Helios und MySql 5 unter Windows XP Pro SP3.Java JPA-Klasse für MATLAB
Ich versuche, eine Klassenbibliothek zu erstellen, die JPA-Anmerkungen verwendet, um auf eine MySql 5-Datenbank zuzugreifen. Die Idee ist, dass das MATLAB-Skript diese Java-Objekte instanziiert, die eine API für den Zugriff auf die DB bereitstellen.
Ich kann meine annotierten Klassen erstellen, die innerhalb von Eclipse arbeiten (d. H. JUnit-Test). Ich kann den Code in ein Jar exportieren, das ich von einer Eingabeaufforderung ausführen kann.
Ich aktualisiere den MATLAB Java-Klassenpfad mit javaaddpath(). Ich kann meine Klasse in MATLAB instanziieren. Aber wenn ich meine init() aufrufen, die Anrufe javax.persistence.Persistence.createEntityManagerFactory(), erhalte ich die gefürchtete
"No Persistence Provider für EntityManager"
Dieser Fehler bedeutet in der Regel, dass die Datei persistence.xml ist nicht am richtigen Ort. Aber es muss sein, weil mein Jar von der Kommandozeile aus funktioniert. Das Hinzufügen des META-INF-Ordners zum MATLAB-Java-Klassenpfad hilft nicht. Es wird auch weder das JAR-Objekt extrahiert noch die extrahierte Ordnerstruktur dem Klassenpfad hinzugefügt, unabhängig davon, ob META-INF hinzugefügt wurde oder nicht.
Hat jemand irgendwelche Ideen, nussig oder nicht? Hat jemand dies jemals in irgendeiner Version von MATLAB getan.
Danke.
-Reilly.
Haben Sie einen Persistenzanbieter auf dem Klassenpfad? – willcodejavaforfood
Überlegen Sie, Matlab zu aktualisieren. R2007b ist alt und seine eingebettete JVM ist Java 1.5. Es verursacht dieses Problem wahrscheinlich nicht, aber es könnte Ihre andere Entwicklung reibungsloser machen. –
Versuch 2010a. Gleicher Fehler. – Reilly