Sunday, July 28, 2013

HSQLDB: org.apache.openjpa.persistence.PersistenceException: There were errors initializing your configuration: java.lang.NoSuchMethodError: org.hsqldb.DatabaseURL.parseURL(Ljava/lang/String;ZZ)Lorg/hsqldb/persist/HsqlProperties;



Problem

Running HSQLDB and openJPA (or whatever JPA implementation) you get the following message:

- short message:
org.apache.openjpa.persistence.PersistenceException: There were errors initializing your configuration: java.lang.NoSuchMethodError: org.hsqldb.DatabaseURL.parseURL(Ljava/lang/String;ZZ)Lorg/hsqldb/persist/HsqlProperties;

- full message:
<openjpa-2.1.1-r422266:1148538 nonfatal general error org.apache.openjpa.persistence.PersistenceException: There were errors initializing your
configuration: java.lang.NoSuchMethodError: org.hsqldb.DatabaseURL.parseURL(Ljava/lang/String;ZZ)Lorg/hsqldb/persist/HsqlProperties;



Solution

The HSQLDB's url must be fixed.
Go to persistence.xml or whatever, and check it.
The org.hsqldb.DatabaseURL.parseURL() method rejected it.
In the code of org.hsqldb.DatabaseURL class, you get some examples of HSQLDB's urls:

parseURL:
JDBC:hsqldb:hsql://myhost:1777/mydb;filepath=c:/myfile/database/db",true);
parseURL("JDBC:hsqldb:../data/mydb.db", true);
parseURL("JDBC:hsqldb:../data/mydb.db;ifexists=true", true);
parseURL("JDBC:hsqldb:HSQL://localhost:9000/mydb", true);
parseURL(JDBC:hsqldb:Http://localhost:8080/servlet/org.hsqldb.Servlet/mydb;ifexists=true",true);
parseURL("JDBC:hsqldb:Http://localhost/servlet/org.hsqldb.Servlet/",true);
parseURL("JDBC:hsqldb:hsql://myhost", true);

No comments:

Post a Comment