Ich habe versucht, herauszufinden, wie Sie eine eingebettete Datenbank über ein Profil ausführen und REST-Aufrufe über Postboten ausführen können. Das ist, was ich habe, so weit:Embedded H2-Datenbank mit mvn jetty ausgeführt: run
<profile>
<id>developRest</id>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>sql-maven-plugin</artifactId>
<version>1.5</version>
<dependencies>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>${h2.version}</version>
</dependency>
</dependencies>
<configuration>
<driver>org.h2.Driver</driver>
<url>jdbc:h2:mem:test</url>
<username>sa</username>
<password>sa</password>
</configuration>
<executions>
<execution>
<id>my-execution</id>
<goals>
<goal>execute</goal>
</goals>
<configuration>
<autocommit>true</autocommit>
<srcFiles>
<srcFile>src/test/resources/table-ddl.sql</srcFile>
<srcFile>src/test/resources/insert-into-table.sql</srcFile>
</srcFiles>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>${jetty.version}</version>
<configuration>
<webApp>
<descriptor>src/main/webapp/WEB-INF/jetty.xml</descriptor>
</webApp>
<stopKey></stopKey>
<stopPort></stopPort>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>${h2.version}</version>
</dependency>
</dependencies>
</profile>
Ich habe mit Phasen herumgespielt, aber nichts scheint wirklich zu bleiben. Wenn ich dies mit mvn SQL ausführen: execute @ my-Ausführung Anlegesteg: laufen, die Servlet läuft, aber wenn ich eine Pause-Methode aufrufen, erhalte ich
Failed to execute goal org.codehaus.mojo:sql-maven-plugin:1.5:execute (my-execution) on project myProject: The parameters 'driver', 'url' for goal org.codehaus.mojo:sql-maven-plugin:1.5:execute are missing or invalid
Was mir fehlt, dass die Treiber und URL gültig sein werden? Danke für Ihre Hilfe.
Update: Gebrauchte mvn -PdevelopRest sql:[email protected] jetty:run
werden von dem Treiber und URL Fehler beseitigen, aber immer noch stecken mit:
### Error querying database. Cause: org.h2.jdbc.JdbcSQLException: Table "myTable" not found; SQL statement:
Wenn eine GET von Postbote aufrufen. Irgendwelche Gedanken?
Ich habe am Ende keine In-Memory-Datenbank verwendet. Ich hatte wirklich gehofft, ich könnte (weil es so bequem ist!). Aber du hast recht, dass es nicht weitergeht, von dem ich hoffte, dass ich es herausfinden könnte. Danke für deinen Rat. Der Maven-Fehler tritt auf, wenn versucht wird, beim Rest-Aufruf eine Verbindung zur Datenbank herzustellen. Aber seit ich den H2-Server benutze und mich mit dem H2-Server verbinde, bekomme ich diesen Fehler nicht mehr, da die db weiter besteht. Danke noch einmal! – Kevin