2012-04-22 14 views
5

Sto cercando di far funzionare SQLite con il playframework ma finora non ho avuto fortuna.Playframework 2 SQLite

Ho scaricato sqlitejdbc-v056.jar e lo metto nella cartella lib.

Ho poi cambiato l'application.conf:

db.driver=org.sqlite.JDBC 
db.url="jdbc:sqlite:/db/geolookup.sqlite" 
db.default.user=sa 
db.default.password=sa 

ho creato un db cartella e cadere il mio SQLite db in esso.

Ora iniziamo giocare con corsa gioco

Tutto sembra per compilare ok, ma quando chiamo l'url: http://127.0.0.1:9000

ottengo il seguente errore:

driver.url sia di tipo string piuttosto di OBJECT con la seguente riga Highlited:

db.driver=org.sqlite.JDBC 

che cosa mi manca?

+0

Hai provato con 'db.driver =" org.sqlite.JDBC "'? –

+3

Come nota a margine, non si dovrebbe copiare direttamente un jar nella cartella lib ma aggiungere la libreria come dipendenza. Per farlo, modificare 'Application.build' e aggiungere la seguente voce alla' appDependencies' lista: ' "org.xerial" % "sqlite-jdbc" % "3.7.2"' (sostituire il versione con quella che si desidera utilizzare) È possibile eseguire questa operazione per tutte le dipendenze necessarie, la prima stringa è groupId, la seconda l'artefatto e l'ultima la versione. Al successivo riavvio del server, gioca! risolverà e scaricherà la dipendenza per te. – christopheml

risposta

10

provare questo:

db.default.driver="org.sqlite.JDBC" 
db.default.url="jdbc:sqlite:/home/tex/dbtest" 
db.default.user="sa" 
db.default.password="" 

Si noti che la cartella del db deve essere un percorso assoluto!

(BTW: con questa configurazione si avvia l'applicazione, ma quando provo a fare funzionare l'evoluzione viene generata un'eccezione, credo che questo sia un problema "dialettale" ...)

Spero che questo aiuti ...

+1

Grazie, mi ha aiutato, in realtà non avevo il default nella parte driver e url. Riguardo all'evoluzione, ho letto che c'è un vaso dialettale per sqlite che puoi scaricare e poi dovrebbe funzionare ... – PWFraley

+0

Ciao, sto avendo questo problema dialettale, sai dov'è questo vaso che lo aggiusta ? – Arruda

+0

Non * deve * essere un percorso assoluto. Se rimuovi solo l'indicatore '/' funzionerà, ad es., 'jdbc: sqlite: relativo/percorso/test.db' – dcastro

1

Si sta utilizzando il metodo sbagliato per ottenere i dati dalla configurazione. Dal vostro errore presumo si utilizza in questo modo:

configuration.getConfig("db.driver") 

Ma questo metodo si aspetta un oggetto JSON nel percorso "db.driver". Dal momento che nel percorso "db.driver" si dispone di una stringa, si dovrebbe leggere i dati con questo metodo:

configuration.getString("db.driver") 

questo renderà l'errore "piuttosto che oggetto" andare via.

Problemi correlati