2012-04-22 10 views
5

Próbuję uruchomić SQLite z ramką do odtwarzania, ale jak dotąd nie mam szczęścia.Playframework 2 SQLite

Pobrałem plik sqlitejdbc-v056.jar i umieściłem go w folderze lib.

Potem zmienił application.conf:

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

utworzonego folderu db i upuść mój sqlite db do niego.

Teraz zacznę grać z przebiegu gry

Wszystko wydaje się skompilować ok, ale kiedy ja nazywam URL: http://127.0.0.1:9000

pojawia się następujący błąd:

driver.url ma typ STRING raczej niż PRZEDMIOT z następującą linię highlited:

db.driver=org.sqlite.JDBC 

Czego mi brakuje?

+0

Czy próbowałeś z 'db.driver =" org.sqlite.JDBC "'? –

+3

Na marginesie nie powinieneś bezpośrednio kopiować słoika w folderze lib, ale dodać bibliotekę jako zależność. Aby to zrobić, edytować 'Application.build' i dodać następujący wpis do' appDependencies' listy: ' "org.xerial" % "sqlite-JDBC" % "3.7.2"' (wymienić wersja z tą, której chcesz użyć) Możesz to zrobić dla każdej zależności, której potrzebujesz, pierwszym łańcuchem jest id grupy, drugi artefaktem, a ostatni wersją. Przy następnym uruchomieniu serwera Play! rozwiąże i pobierze dla ciebie zależność. – christopheml

Odpowiedz

10

spróbuj tego:

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

Zauważ, że folder db musi być absolutna ścieżka!

(BTW: przy tej konfiguracji uruchamiania aplikacji, ale gdy próbuję uruchomić ewolucję zgłasza wyjątek, myślę, że jest to "dialekt" problem ...)

Hope this helps ...

+1

Dzięki, które pomogły, w rzeczywistości nie miałem domyślnych ustawień w części dotyczącej sterownika i adresu URL. O ewolucji czytałem, że istnieje słoik dialektowy dla sqlite, który można pobrać, a potem powinien działać ... – PWFraley

+0

cześć, mam problem z tym dialektem, czy wiesz, gdzie jest ten słoik, który to naprawi? ? – Arruda

+0

To * nie * musi być bezwzględną ścieżką. Jeśli po prostu usuniesz wiodące '/' to zadziała, np., 'jdbc: sqlite: relative/path/test.db' – dcastro

1

Prawdopodobnie używasz niewłaściwej metody do pobierania danych z konfiguracji. Z błędem zakładam go używać tak:

configuration.getConfig("db.driver") 

Ale ta metoda oczekuje obiekt JSON w ścieżce „db.driver”. Ponieważ w ramach „db.driver” ścieżce masz ciąg, należy odczytać dane przy użyciu tej metody:

configuration.getString("db.driver") 

To spowoduje, że „raczej niż obiekt” błąd odejść.