2016-10-07 6 views
5

以前はSlickを使用してサーバーのVerticaデータベースにアクセスしました。私は最近、Slickのバージョンを2.0から3.1にアップグレードしました。アップグレード以来、私はエラー(以下のスタックトレース)に遭遇しています。このエラーは、滑らかなドライバが見つからないことを示します。Slick 3.1でサポートされていないデータベースを使用する方法

Slick 3.2.1 docsによれば、「他のSQLデータベースには、機能セットを減らしてすぐにアクセスできます」と記載されています。

私は疑問に思っているのは、 - それでもslickによって直接サポートされているデータベースの「その他の」タイプを使用することは可能ですか?もしそうなら、どうですか?

私のデータベースの設定は次のとおりです。

slick.dbs.default.driver="slick.driver.JdbcDriver$" 
slick.dbs.default.driver="slick.driver.JdbcDriver$class" 
slick.dbs.default.driver=slick.driver.JdbcDriver 

私も持っている:

slick.dbs.default.driver="slick.driver.JdbcDriver" 
slick.dbs.default.db.driver="com.vertica.jdbc.Driver" 
slick.dbs.default.db.url=${some.url} 
slick.dbs.default.db.user=${some.user} 
slick.dbs.default.db.password=${some.pw} 

this Stack Overflow responseのおかげで、私も設定の最初の行を交換するには、次のそれぞれを試してみましたのでご注意ください私のsbtファイルで:

libraryDependencies ++= Seq(
    "com.vertica" % "vertica-jdbc" % "7.0.1", 
    "com.typesafe.play" %% "play-slick" % "2.0.0") 

play-slickはslick 3.1.0を使用しています。

のフルスタックトレース:

[ERROR] [10/07/2016 16:43:52.336] [p.a.d.s.DefaultSlickApi] [*] Failed to create Slick database config for key default. 
slick.SlickException: Error getting instance of Slick driver "slick.driver.JdbcDriver" 
    at slick.backend.DatabaseConfig$.forConfig(DatabaseConfig.scala:65) 
    at play.api.db.slick.DefaultSlickApi$DatabaseConfigFactory.create(SlickApi.scala:89) 
    at play.api.db.slick.DefaultSlickApi$DatabaseConfigFactory.get$lzycompute(SlickApi.scala:81) 
    at play.api.db.slick.DefaultSlickApi$DatabaseConfigFactory.get(SlickApi.scala:80) 
    at play.api.db.slick.DefaultSlickApi.dbConfig(SlickApi.scala:66) 
    at play.api.db.slick.NamedDatabaseConfigProvider$$anon$1.get(SlickModule.scala:59) 
    at utils.liger.DimensionMapper.<init>(DimensionMapper.scala:32) 
    at utils.liger.DimensionMapper$$FastClassByGuice$$1320fe73.newInstance(<generated>) 
    at com.google.inject.internal.cglib.reflect.$FastConstructor.newInstance(FastConstructor.java:40) 
    at com.google.inject.internal.DefaultConstructionProxyFactory$1.newInstance(DefaultConstructionProxyFactory.java:61) 
    at com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:105) 
    at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:85) 
    at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:267) 
    at com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:38) 
    at com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:62) 
    at com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:104) 
    at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:85) 
    at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:267) 
    at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46) 
    at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1103) 
    at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40) 
    at com.google.inject.internal.SingletonScope$1.get(SingletonScope.java:145) 
    at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:41) 
    at com.google.inject.internal.InternalInjectorCreator$1.call(InternalInjectorCreator.java:205) 
    at com.google.inject.internal.InternalInjectorCreator$1.call(InternalInjectorCreator.java:199) 
    at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1092) 
    at com.google.inject.internal.InternalInjectorCreator.loadEagerSingletons(InternalInjectorCreator.java:199) 
    at com.google.inject.internal.InternalInjectorCreator.injectDynamically(InternalInjectorCreator.java:180) 
    at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:110) 
    at com.google.inject.Guice.createInjector(Guice.java:96) 
    at com.google.inject.Guice.createInjector(Guice.java:84) 
    at play.api.inject.guice.GuiceBuilder.injector(GuiceInjectorBuilder.scala:181) 
    at play.api.inject.guice.GuiceApplicationBuilder.build(GuiceApplicationBuilder.scala:123) 
    at play.api.inject.guice.GuiceApplicationLoader.load(GuiceApplicationLoader.scala:21) 
    at play.core.server.ProdServerStart$.start(ProdServerStart.scala:47) 
    at play.core.server.ProdServerStart$.main(ProdServerStart.scala:22) 
    at play.core.server.ProdServerStart.main(ProdServerStart.scala) 
Caused by: java.lang.InstantiationException: slick.driver.JdbcDriver 
    at java.lang.Class.newInstance(Class.java:427) 
    at slick.backend.DatabaseConfig$.forConfig(DatabaseConfig.scala:63) 
    ... 36 common frames omitted 
Caused by: java.lang.NoSuchMethodException: slick.driver.JdbcDriver.<init>() 
    at java.lang.Class.getConstructor0(Class.java:3082) 
    at java.lang.Class.newInstance(Class.java:412) 
    ... 37 common frames omitted 

私が代わりに使用している場合:次に

slick.dbs.default.driver="slick.driver.JdbcDriver$" 

汎用JDBCドライバ slick.driver.JdbcDriver$が廃止されましたスリック3.0で
[ERROR] [10/07/2016 16:36:07.701] [p.a.d.s.DefaultSlickApi] [*] Failed to create Slick database config for key default. 
slick.SlickException: Error getting instance of Slick driver "slick.driver.JdbcDriver$" 
    at slick.backend.DatabaseConfig$.forConfig(DatabaseConfig.scala:65) 
    at play.api.db.slick.DefaultSlickApi$DatabaseConfigFactory.create(SlickApi.scala:89) 
    at play.api.db.slick.DefaultSlickApi$DatabaseConfigFactory.get$lzycompute(SlickApi.scala:81) 
    at play.api.db.slick.DefaultSlickApi$DatabaseConfigFactory.get(SlickApi.scala:80) 
    at play.api.db.slick.DefaultSlickApi.dbConfig(SlickApi.scala:66) 
    at play.api.db.slick.NamedDatabaseConfigProvider$$anon$1.get(SlickModule.scala:59) 
    at controllers.liger.AwdAutomation.<init>(AwdAutomation.scala:43) 
    at controllers.liger.AwdAutomation$$FastClassByGuice$$64e5b177.newInstance(<generated>) 
    at com.google.inject.internal.cglib.reflect.$FastConstructor.newInstance(FastConstructor.java:40) 
    at com.google.inject.internal.DefaultConstructionProxyFactory$1.newInstance(DefaultConstructionProxyFactory.java:61) 
    at com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:105) 
    at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:85) 
    at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:267) 
    at com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:38) 
    at com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:62) 
    at com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:104) 
    at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:85) 
    at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:267) 
    at com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:38) 
    at com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:62) 
    at com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:104) 
    at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:85) 
    at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:267) 
    at com.google.inject.internal.InjectorImpl$2$1.call(InjectorImpl.java:1016) 
    at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1103) 
    at com.google.inject.internal.InjectorImpl$2.get(InjectorImpl.java:1012) 
    at com.google.inject.internal.InjectorImpl.getInstance(InjectorImpl.java:1051) 
    at play.api.inject.guice.GuiceInjector.instanceOf(GuiceInjectorBuilder.scala:405) 
    at play.api.inject.RoutesProvider$$anonfun$2.apply(BuiltinModule.scala:82) 
    at play.api.inject.RoutesProvider$$anonfun$2.apply(BuiltinModule.scala:82) 
    at scala.Option.fold(Option.scala:158) 
    at play.api.inject.RoutesProvider.get$lzycompute(BuiltinModule.scala:82) 
    at play.api.inject.RoutesProvider.get(BuiltinModule.scala:78) 
    at play.api.inject.RoutesProvider.get(BuiltinModule.scala:77) 
    at com.google.inject.internal.ProviderInternalFactory.provision(ProviderInternalFactory.java:81) 
    at com.google.inject.internal.BoundProviderFactory.provision(BoundProviderFactory.java:72) 
    at com.google.inject.internal.ProviderInternalFactory.circularGet(ProviderInternalFactory.java:61) 
    at com.google.inject.internal.BoundProviderFactory.get(BoundProviderFactory.java:62) 
    at com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:38) 
    at com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:62) 
    at com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:104) 
    at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:85) 
    at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:267) 
    at com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:38) 
    at com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:62) 
    at com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:104) 
    at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:85) 
    at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:267) 
    at com.google.inject.internal.FactoryProxy.get(FactoryProxy.java:56) 
    at com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:38) 
    at com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:62) 
    at com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:104) 
    at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:85) 
    at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:267) 
    at com.google.inject.internal.FactoryProxy.get(FactoryProxy.java:56) 
    at com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:38) 
    at com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:62) 
    at com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:104) 
    at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:85) 
    at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:267) 
    at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46) 
    at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1103) 
    at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40) 
    at com.google.inject.internal.SingletonScope$1.get(SingletonScope.java:145) 
    at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:41) 
    at com.google.inject.internal.InternalInjectorCreator$1.call(InternalInjectorCreator.java:205) 
    at com.google.inject.internal.InternalInjectorCreator$1.call(InternalInjectorCreator.java:199) 
    at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1092) 
    at com.google.inject.internal.InternalInjectorCreator.loadEagerSingletons(InternalInjectorCreator.java:199) 
    at com.google.inject.internal.InternalInjectorCreator.injectDynamically(InternalInjectorCreator.java:180) 
    at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:110) 
    at com.google.inject.Guice.createInjector(Guice.java:96) 
    at com.google.inject.Guice.createInjector(Guice.java:84) 
    at play.api.inject.guice.GuiceBuilder.injector(GuiceInjectorBuilder.scala:181) 
    at play.api.inject.guice.GuiceApplicationBuilder.build(GuiceApplicationBuilder.scala:123) 
    at play.api.inject.guice.GuiceApplicationLoader.load(GuiceApplicationLoader.scala:21) 
    at play.core.server.ProdServerStart$.start(ProdServerStart.scala:47) 
    at play.core.server.ProdServerStart$.main(ProdServerStart.scala:22) 
    at play.core.server.ProdServerStart.main(ProdServerStart.scala) 
Caused by: java.lang.ClassNotFoundException: slick.driver.JdbcDriver$ 
    at java.lang.ClassLoader.findClass(ClassLoader.java:530) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
    at slick.util.ClassLoaderUtil$$anon$1.loadClass(ClassLoaderUtil.scala:12) 
    at slick.backend.DatabaseConfig$.forConfig(DatabaseConfig.scala:62) 
    ... 78 common frames omitted 

答えて

0

(あなたとsourceから見ることができます)、次にバージョン3.1(これはあなたが見ているエラーを説明する)

今では、3.2滑らかなで、他のデータベースは、形質slick.jdbc.JdbcProfile

のカスタム実装でサポートすることができます
関連する問題