2012-04-22 26 views
5

Tôi đang cố gắng để có được SQLite làm việc với playframework nhưng cho đến nay không có may mắn.Playframework 2 SQLite

Tôi đã tải xuống sqlitejdbc-v056.jar và đặt nó vào thư mục lib.

sau đó tôi đã thay đổi application.conf:

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

Tôi tạo ra một thư mục db và thả db sql của tôi vào nó.

Bây giờ tôi bắt đầu chơi với chơi chạy

Tất cả mọi thứ dường như biên dịch ok, nhưng khi tôi gọi là url: http://127.0.0.1:9000

tôi nhận được lỗi sau:

driver.url có kiểu STRING thay hơn OBJECT với dòng sau được đánh dấu cao:

db.driver=org.sqlite.JDBC 

Tôi đang thiếu gì?

+0

Bạn đã thử với 'db.driver =" org.sqlite.JDBC "'? –

+3

Là một lưu ý phụ, bạn không nên sao chép trực tiếp một cái bình trong thư mục lib mà thêm thư viện làm phụ thuộc. Để làm như vậy, hãy chỉnh sửa 'Application.build' và thêm mục sau vào danh sách 'appDependencies': ' "org.xerial"% "sqlite-jdbc"% "3.7.2" ' (thay thế phiên bản với phiên bản bạn muốn sử dụng) Bạn có thể thực hiện việc này cho mọi phụ thuộc bạn cần, chuỗi đầu tiên là nhómId, chuỗi thứ hai là artifactId và phiên bản cuối cùng của phiên bản. Khi khởi động lại máy chủ tiếp theo, hãy phát! sẽ giải quyết và tải xuống phụ thuộc cho bạn. – christopheml

Trả lời

10

thử điều này:

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

ý rằng thư mục của db phải là một đường dẫn tuyệt đối!

(BTW: với cấu hình này ứng dụng bắt đầu nhưng khi tôi cố gắng chạy sự tiến hóa nó ném một ngoại lệ, tôi nghĩ rằng đây là một "phương ngữ" vấn đề ...)

Hope this helps ...

+1

Cảm ơn, điều đó đã giúp, thực sự tôi không có mặc định trong phần trình điều khiển và url. Về những điều tiến hóa, tôi đọc rằng có một phương ngữ jar cho sqlite bạn có thể tải về và sau đó nó được cho là làm việc ... – PWFraley

+0

hi there, Tôi gặp vấn đề về phương ngữ này, bạn có biết cái bình này sửa chữa nó ở đâu không ? – Arruda

+0

Nó * không * phải là một đường dẫn tuyệt đối. Nếu bạn chỉ xóa '/' hàng đầu, nó sẽ hoạt động, ví dụ:, 'jdbc: sqlite: relative/path/test.db' – dcastro

1

Bạn đang sử dụng sai phương pháp để lấy dữ liệu từ cấu hình. Từ lỗi của bạn, tôi cho rằng bạn sử dụng nó như sau:

configuration.getConfig("db.driver") 

Nhưng phương pháp này hy vọng một đối tượng JSON dưới đường dẫn "db.driver". Kể từ khi theo "db.driver" đường dẫn mà bạn có một chuỗi, bạn nên đọc dữ liệu sử dụng phương pháp này:

configuration.getString("db.driver") 

Điều này sẽ làm cho "chứ không phải là đối tượng" lỗi đi.

Các vấn đề liên quan