2016-05-27 2 views
1

Ich bin in der Lage, indem Sie das Spiel des default.db zu verbinden:

db.default.driver="com.microsoft.sqlserver.jdbc.SQLServerDriver" 
db.default.url="jdbc:sqlserver://my_host.database.windows.net:1433;database=my_db;" 
db.default.username="username" 
db.default.password="password" 

Aber wenn ich mit Slick versuchen:

slick.dbs.default { 
    driver = "com.typesafe.slick.driver.ms.SQLServerDriver$" 
    db { 
    driver = "com.microsoft.sqlserver.jdbc.SQLServerDriver" 
    url  = "jdbc:sqlserver://my_host.database.windows.net:1433;database=my_db;" 
    user  = "username" 
    password = "password" 
    } 
} 

erhalte ich:

ProvisionException: Unable to provision, see the following errors: 

1) Error injecting constructor, java.lang.NoClassDefFoundError: slick/profile/RelationalProfile$SimpleQL 

Welche meiner DAO-Punkte:

Hier ist meine Tables.scala Datei:

import models.User 
import play.api.db.slick.{DatabaseConfigProvider, HasDatabaseConfigProvider} 
import slick.driver.JdbcProfile 

class Tables @Inject() (protected val dbConfigProvider: DatabaseConfigProvider) extends HasDatabaseConfigProvider[JdbcProfile] { 

    import driver.api._ 

    protected val users = TableQuery[Users] 
    protected class Users(tag: Tag) extends Table[User](tag, "users") { 
     def id = column[String]("id", O.PrimaryKey) 
     def firstName = column[String]("first_name") 
     def lastName = column[String]("last_name") 

     def * = (id, firstName, lastName) <> ((User.apply _).tupled, User.unapply _) 
    } 
} 

Hier sind die entsprechenden Zeilen in meiner build.sbt Datei:

libraryDependencies ++= Seq(
    ... 
    "com.typesafe.play" % "play-slick_2.11" % "2.0.2", 
    "com.typesafe.slick" %% "slick-extensions" % "3.0.0", 
    ... 
) 

resolvers += "Typesafe Releases" at "http://repo.typesafe.com/typesafe/maven-releases/" 

vermag ich nicht zu SimpleQL alles, um herauszufinden, und warum Es fehlt zur Laufzeit.

+0

versuchen, die Version von Slick-Erweiterungen 3.1.0 stoßen, sieht aus wie Play-Slick verwendet Slick 3.1. 0 (das könnte das Problem verursachen). –

+0

@AndyHayden das war der Trick. Wenn Sie eine Antwort zusammenfügen wollen, kann ich sie akzeptieren. – Tyler

+0

Super! Da gehst du hin! Freut mich, dass du es sortiert hast. –

Antwort

0

play-slick 2.0.2 verwendet Slick 3.1.0, so dass Sie diese Version in Slick-Erweiterungen passen müssen:

libraryDependencies ++= Seq(
    ... 
    "com.typesafe.play" % "play-slick_2.11" % "2.0.2", 
    "com.typesafe.slick" %% "slick-extensions" % "3.1.0", 
    ... 
)