2012-04-22 2 views
5

Я пытаюсь заставить SQLite работать с playframework, но пока не повезло.Playframework 2 SQLite

Я загрузил sqlitejdbc-v056.jar и поместил его в папку lib.

Затем я изменил application.conf:

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

Я создал БД папку и падение моего БД SQLite в него.

Теперь я начинаю играть с игры бежать

Все, кажется, компилировать нормально, но когда я называю URL: http://127.0.0.1:9000

Я получаю следующее сообщение об ошибке:

driver.url имеет тип STRING, а чем ОБЪЕКТ со следующей строкой highlited:

db.driver=org.sqlite.JDBC 

Что мне не хватает?

+0

Вы пытались использовать 'db.driver =" org.sqlite.JDBC "'? –

+3

В качестве примечания, вы не должны напрямую копировать банку в папке lib, но добавьте библиотеку в качестве зависимости. Для этого отредактируйте файл 'Application.build' и добавьте следующую запись в' appDependencies' списка: ' "org.xerial" % "SQLite-JDBC" % "3.7.2"' (заменит версию с той, которую вы хотите использовать) Вы можете сделать это для каждой зависимости, в которой вы нуждаетесь, первая строка - это идентификатор groupId, второй - файл artifactId и последний. На следующем перезапуске сервера Play! будет разрешать и загружать зависимость для вас. – christopheml

ответ

10

попробовать это:

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

Обратите внимание, что папка БД должен быть абсолютный путь!

(BTW: с этой конфигурацией приложение запускается, но когда я пытаюсь запустить эволюцию он бросает исключение, я думаю, что это «диалект» проблема ...)

Надеется, что это помогает ...

+1

Спасибо, что помогло, на самом деле у меня не было значения по умолчанию в части драйвера и URL-адреса. Об эволюции, я прочитал, что есть диалект jar для sqlite, который вы можете скачать, а затем он должен работать ... – PWFraley

+0

привет, у меня проблема с диалектом, знаете ли вы, где эта банка, которая ее исправляет ? – Arruda

+0

Это * не * должен быть абсолютным путем. Если вы просто удалите ведущий '/', он будет работать, например., 'jdbc: sqlite: relative/path/test.db' – dcastro

1

Вы можете использовать неправильный метод для получения данных из конфигурации. Из вашей ошибки я предполагаю, что вы используете его, как это:

configuration.getConfig("db.driver") 

Но этот метод ожидает объект JSON по пути «db.driver». Так как под «db.driver» путь у вас есть строка, вы должны прочитать данные с помощью этого метода:

configuration.getString("db.driver") 

Это сделает «а не ОБЪЕКТА» ошибка уходит.

Смежные вопросы