Trigger in H2 Datenbank (ServerMode)

youza

Erfahrenes Mitglied
@All

Also ich probier jetzt da die ganz Zeit schon rum in einer H2 Datenbank einen Trigger zu erstellen welcher eine Java Klasse aufrufen soll. Solange die H2 Datenbank embedded ist funktioniert das auch ganz gut wenn ich jedoch mit dem Server Mode von der H2 database arbeite bekomme ich folgende Fehlermeldung:
Code:
Fehler beim Erzeugen des Triggers "TRI_SCORE", Klasse "org.h2.samples.TriggerSample$MyTrigger", Grund: "org.h2.samples.TriggerSample$MyTrigger"; siehe Ursache für Details
Error creating or initializing trigger "TRI_SCORE" object, class "org.h2.samples.TriggerSample$MyTrigger", cause: "org.h2.message.DbException: Klasse ""org.h2.samples.TriggerSample$MyTrigger"" nicht gefunden
Class ""org.h2.samples.TriggerSample$MyTrigger"" not found [90086-169]"; see root cause for details; SQL statement:
CREATE TRIGGER TRI_SCORE AFTER UPDATE ON T_PROBABILITY FOR EACH ROW CALL "org.h2.samples.TriggerSample$MyTrigger" [90043-169] 90043/90043 (Hilfe)
org.h2.jdbc.JdbcSQLException: Fehler beim Erzeugen des Triggers "TRI_SCORE", Klasse "org.h2.samples.TriggerSample$MyTrigger", Grund: "org.h2.samples.TriggerSample$MyTrigger"; siehe Ursache für Details
Error creating or initializing trigger "TRI_SCORE" object, class "org.h2.samples.TriggerSample$MyTrigger", cause: "org.h2.message.DbException: Klasse ""org.h2.samples.TriggerSample$MyTrigger"" nicht gefunden
Class ""org.h2.samples.TriggerSample$MyTrigger"" not found [90086-169]"; see root cause for details; SQL statement:
CREATE TRIGGER TRI_SCORE AFTER UPDATE ON T_PROBABILITY FOR EACH ROW CALL "org.h2.samples.TriggerSample$MyTrigger" [90043-169]
    at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
    at org.h2.message.DbException.get(DbException.java:158)
    at org.h2.schema.TriggerObject.load(TriggerObject.java:75)
    at org.h2.schema.TriggerObject.setTriggerClassName(TriggerObject.java:91)
    at org.h2.command.ddl.CreateTrigger.update(CreateTrigger.java:101)
    at org.h2.command.CommandContainer.update(CommandContainer.java:75)
    at org.h2.command.Command.executeUpdate(Command.java:230)
    at org.h2.server.TcpServerThread.process(TcpServerThread.java:333)
    at org.h2.server.TcpServerThread.run(TcpServerThread.java:149)
    at java.lang.Thread.run(Unknown Source)
Caused by: org.h2.message.DbException: Klasse "org.h2.samples.TriggerSample$MyTrigger" nicht gefunden
Class "org.h2.samples.TriggerSample$MyTrigger" not found [90086-169]
    at org.h2.message.DbException.get(DbException.java:158)
    at org.h2.util.Utils.loadUserClass(Utils.java:490)
    at org.h2.schema.TriggerObject.load(TriggerObject.java:69)
    ... 7 more
Caused by: org.h2.jdbc.JdbcSQLException: Klasse "org.h2.samples.TriggerSample$MyTrigger" nicht gefunden
Class "org.h2.samples.TriggerSample$MyTrigger" not found [90086-169]
    at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
    ... 10 more
Caused by: java.lang.ClassNotFoundException: org.h2.samples.TriggerSample$MyTrigger
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Unknown Source)
    at org.h2.util.Utils.loadUserClass(Utils.java:485)
    ... 8 more

    at org.h2.engine.SessionRemote.done(SessionRemote.java:567)
    at org.h2.command.CommandRemote.executeUpdate(CommandRemote.java:183)
    at org.h2.jdbc.JdbcStatement.executeInternal(JdbcStatement.java:177)
    at org.h2.jdbc.JdbcStatement.execute(JdbcStatement.java:152)
    at org.h2.server.web.WebApp.getResult(WebApp.java:1311)
    at org.h2.server.web.WebApp.query(WebApp.java:1001)
    at org.h2.server.web.WebApp$1.next(WebApp.java:964)
    at org.h2.server.web.WebApp$1.next(WebApp.java:953)
    at org.h2.server.web.WebThread.process(WebThread.java:166)
    at org.h2.server.web.WebThread.run(WebThread.java:93)
    at java.lang.Thread.run(Unknown Source)

Der Trigger sieht wie folgt aus:

Code:
CREATE TRIGGER TRI_SCORE AFTER UPDATE ON T_PROBABILITY FOR EACH ROW CALL "org.h2.samples.TriggerSample$MyTrigger"

Wenn ich das Ganze google komm ich auf den Hinweis, dass der Classpath nicht richtig gesetzt ist ich weiß leider nur nicht genau wie ich da dann anstellen soll. Komm da grad einfach nicht weiter :)
Also wo ich die Java Klasse ablegen muss damit sie benutzt werden kann und so was. Wäre super wenn mir jemand helfen kann vielen Dank schonmal
Youza

Hat sich erledigt war tatsächlich der älteste Fehler der Welt ich depp hab den Pfad in den Umgebnungsvariablen falsch angegeben
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück