首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >升级Play 2.4.3后,获取Guice在play.core.ObjectMapperPlugin中找不到合适的构造函数

升级Play 2.4.3后,获取Guice在play.core.ObjectMapperPlugin中找不到合适的构造函数
EN

Stack Overflow用户
提问于 2015-12-26 04:37:15
回答 1查看 1.8K关注 0票数 2

在将play框架升级到2.4.3之后,尝试为我的Play应用程序运行ScalaTest测试时出现以下异常

调用在嵌套套件上运行时遇到异常- Guice配置错误:

1)在play.core.ObjectMapperPlugin中找不到合适的构造函数。

代码语言:javascript
运行
AI代码解释
复制
Classes must have either one (and only one) constructor annotated with @Inject or a zero-argument constructor that is not private.
  at play.core.ObjectMapperPlugin.class(ObjectMapperPlugin.scala:17)
  while locating play.core.ObjectMapperPlugin

1 error
com.google.inject.ConfigurationException: Guice configuration errors:

1) Could not find a suitable constructor in play.core.ObjectMapperPlugin. Classes must have either one (and only one) constructor annotated with @Inject or a zero-argument constructor that is not private.
  at play.core.ObjectMapperPlugin.class(ObjectMapperPlugin.scala:17)
  while locating play.core.ObjectMapperPlugin

1 error
    at com.google.inject.internal.InjectorImpl.getProvider(InjectorImpl.java:1042)
    at com.google.inject.internal.InjectorImpl.getProvider(InjectorImpl.java:1001)
    at com.google.inject.internal.InjectorImpl.getInstance(InjectorImpl.java:1051)
    at play.api.inject.guice.GuiceInjector.instanceOf(GuiceInjectorBuilder.scala:321)
    at play.api.Plugins$$anonfun$loadPlugins$1.apply(Plugins.scala:89)
    at play.api.Plugins$$anonfun$loadPlugins$1.apply(Plugins.scala:87)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:245)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:245)
    at scala.collection.immutable.List.foreach(List.scala:381)
    at scala.collection.TraversableLike$class.map(TraversableLike.scala:245)
    at scala.collection.immutable.List.map(List.scala:285)
    at play.api.Plugins$.loadPlugins(Plugins.scala:87)
    at play.api.test.FakePluginsProvider$$anonfun$get$1.apply(Fakes.scala:234)
    at play.api.test.FakePluginsProvider$$anonfun$get$1.apply(Fakes.scala:234)
    at play.api.Plugins.thePlugins$lzycompute(Plugins.scala:59)
    at play.api.Plugins.thePlugins(Plugins.scala:59)
    at play.api.Plugins.length(Plugins.scala:60)
    at scala.collection.IndexedSeqLike$class.iterator(IndexedSeqLike.scala:90)
    at play.api.Plugins.iterator(Plugins.scala:57)
    at scala.collection.IterableLike$class.foreach(IterableLike.scala:72)
    at play.api.Plugins.foreach(Plugins.scala:57)
    at play.api.Play$$anonfun$start$1.apply$mcV$sp(Play.scala:92)
    at play.api.Play$$anonfun$start$1.apply(Play.scala:87)
    at play.api.Play$$anonfun$start$1.apply(Play.scala:87)
    at play.utils.Threads$.withContextClassLoader(Threads.scala:21)
    at play.api.Play$.start(Play.scala:87)
    at org.scalatestplus.play.OneAppPerSuite$class.run(OneAppPerSuite.scala:139)
    at controllers.SchoolAdminContactSpec.run(SchoolAdminContactSpec.scala:14)
    at org.scalatest.tools.SuiteRunner.run(SuiteRunner.scala:55)
    at org.scalatest.tools.Runner$$anonfun$doRunRunRunDaDoRunRun$3.apply(Runner.scala:2563)
    at org.scalatest.tools.Runner$$anonfun$doRunRunRunDaDoRunRun$3.apply(Runner.scala:2557)
    at scala.collection.immutable.List.foreach(List.scala:381)
    at org.scalatest.tools.Runner$.doRunRunRunDaDoRunRun(Runner.scala:2557)
    at org.scalatest.tools.Runner$$anonfun$runOptionallyWithPassFailReporter$2.apply(Runner.scala:1044)
    at org.scalatest.tools.Runner$$anonfun$runOptionallyWithPassFailReporter$2.apply(Runner.scala:1043)
    at org.scalatest.tools.Runner$.withClassLoaderAndDispatchReporter(Runner.scala:2722)
    at org.scalatest.tools.Runner$.runOptionallyWithPassFailReporter(Runner.scala:1043)
    at org.scalatest.tools.Runner$.run(Runner.scala:883)
    at org.scalatest.tools.Runner.run(Runner.scala)
    at org.jetbrains.plugins.scala.testingSupport.scalaTest.ScalaTestRunner.runScalaTest2(ScalaTestRunner.java:138)
    at org.jetbrains.plugins.scala.testingSupport.scalaTest.ScalaTestRunner.main(ScalaTestRunner.java:28)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:497)
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144)

我的库依赖项包括:

代码语言:javascript
运行
AI代码解释
复制
libraryDependencies ++= Seq(
  jdbc,
  cache,
  ws,
  "com.typesafe.play"         %% "anorm"               % "2.4.0",
  "com.typesafe.slick"        %% "slick"               % "2.1.0",
  "com.typesafe.play"         %% "play-slick"          % "0.8.0",
  "org.mindrot"               % "jbcrypt"              % "0.3m",
  "joda-time"                 % "joda-time"            % "2.4",
  "org.joda"                  % "joda-convert"         % "1.6",
  "com.github.tototoshi"      %% "slick-joda-mapper"   % "1.2.0",
  "com.typesafe.play.plugins" %% "play-plugins-mailer" % "2.3.1",
  "io.strongtyped"            %% "active-slick"        % "0.2.2",
  "postgresql"                % "postgresql"           % "9.1-901.jdbc4",
  "org.apache.pdfbox"         % "pdfbox"               % "1.8.9",
  "com.opencsv"               % "opencsv"              % "3.5",
  "be.objectify"              %% "deadbolt-scala"      % "2.3.3",
  "org.scalatest"             %% "scalatest"           % "2.2.5"          % "test",
  "org.scalatestplus"         %% "play"                % "1.4.0-M3"       % "test",
  "org.scalacheck"            %% "scalacheck"          % "1.12.4"         % "test",
  "org.specs2"                %% "specs2-core"         % "3.0"            % "test"
)

我的插件是:

代码语言:javascript
运行
AI代码解释
复制
// The Play plugin
addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.4.3")

// web plugins

addSbtPlugin("com.typesafe.sbt" % "sbt-coffeescript" % "1.0.0")

addSbtPlugin("com.typesafe.sbt" % "sbt-less" % "1.0.0")

addSbtPlugin("com.typesafe.sbt" % "sbt-jshint" % "1.0.1")

addSbtPlugin("com.typesafe.sbt" % "sbt-rjs" % "1.0.1")

addSbtPlugin("com.typesafe.sbt" % "sbt-digest" % "1.0.0")

addSbtPlugin("com.typesafe.sbt" % "sbt-mocha" % "1.0.0")

// Safe Scala Plugins

addSbtPlugin("org.brianmckenna" % "sbt-wartremover" % "0.13")

addSbtPlugin("org.scalastyle" %% "scalastyle-sbt-plugin" % "0.6.0")

addSbtPlugin("com.timushev.sbt" % "sbt-updates" % "0.1.8")

// Visualize project's dependencies. (needed to figure out what is forcing scala 2.10)
addSbtPlugin("net.virtual-void" % "sbt-dependency-graph" % "0.7.5")

// Display your SBT project's dependency updates.
addSbtPlugin("com.timushev.sbt" % "sbt-updates" % "0.1.8")

addSbtPlugin("com.typesafe.sbt" % "sbt-play-enhancer" % "1.1.0")
EN

回答 1

Stack Overflow用户

发布于 2016-01-25 20:19:29

问题的根本原因是ObjectMapperPlugin,您可以通过依赖项"com.typesafe.play“%% "play-slick”% "0.8.0“从"com.typesafe.play"%"play_2.10"%"2.3.2”获取它。Play框架版本2.4.3使用Scala 2.11。所以你应该排除依赖"com.typesafe.play"%"play_2.10"%"2.3.2“。

您应该将导入更改为:

("com.typesafe.play" %% "play-slick" % "0.8.0") .exclude("com.typesafe.play", "play-java_2.10")

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34468529

复制
相关文章
A simple augmented reality application
在 OpenGL 中主要使用 4x4 矩阵来表示转换,这个和 3x4 的相机矩阵不同。然而,OpenGL 中的 GL_PROJECTION 和 GL_MODELVIEW 是将相机矩阵分开来表示。其中 GL_PROJECTION 表示相机的内参数 K 矩阵;GL_MODELVIEW 表示物体和相机之间的转换关系,可以粗略地表示为 R 和 t 矩阵。
caoqi95
2019/10/18
8890
Qt Model/View教程——只读Table
一直想学习Qt Model/View,最终还是看的官方教程,现在将官方教程重新在梳理下。
用户5908113
2020/02/12
2.1K0
OpenGL的glPushMatrix()和glPopMatrix()矩阵栈顶操作函数详解「建议收藏」
OpenGL中图形绘制后,往往需要一系列的变换来达到用户的目的,而这种变换实现的原理是又通过矩阵进行操作的。opengl中的变换一般包括视图变换、模型变换、投影变换等,在每次变换后,opengl将会呈现一种新的状态(这也就是我们为什么会成其为状态机)。
全栈程序员站长
2022/07/23
1.5K0
OpenGL的glPushMatrix()和glPopMatrix()矩阵栈顶操作函数详解「建议收藏」
【OpenGL】十、OpenGL 绘制点 ( 初始化 OpenGL 矩阵 | 设置投影矩阵 | 设置模型视图矩阵 | 绘制点 | 清除缓冲区 | 设置当前颜色值 | 设置点大小 | 绘制点 )
上一篇博客 【OpenGL】九、OpenGL 绘制基础 ( OpenGL 状态机概念 | OpenGL 矩阵概念 ) 简单介绍 OpenGL 中的一些理论概念 ; 本篇博客开始使用 OpenGL 绘制 点 ;
韩曙亮
2023/03/28
2.1K0
【OpenGL】十、OpenGL 绘制点  ( 初始化 OpenGL 矩阵 | 设置投影矩阵 | 设置模型视图矩阵 | 绘制点 | 清除缓冲区 | 设置当前颜色值 | 设置点大小 | 绘制点 )
glPushMatrix和glPopMatrix的作用
终于明白为什么使用glPushMatrix()和glPopMatrix()的原因了。将本次需要执行的缩放、平移等操作放在glPushMatrix和glPopMatrix之间。glPushMatrix()和glPopMatrix()的配对使用可以消除上一次的变换对本次变换的影响。使本次变换是以世界坐标系的原点为参考点进行。下面对上述结论做进一步的解释:
全栈程序员站长
2022/07/22
5040
实验4 二维几何变换
根据示范代码1,使用OpenGL平移、旋转、缩放变换函数来改写代码实现所要求的功能。示范代码1的代码运行结果为图1。
步行者08
2019/02/25
1.1K0
【OpenGL】九、OpenGL 绘制基础 ( OpenGL 状态机概念 | OpenGL 矩阵概念 )
上一篇博客 【OpenGL】八、初始化 OpenGL 渲染环境 ( 导入 OpenGL 头文件 | 链接 OpenGL 库 | 将窗口设置为 OpenGL 窗口 | 设置像素格式描述符 | 渲染绘制 ) ★ 进行了 OpenGL 渲染环境初始化 ;
韩曙亮
2023/03/28
4.2K0
Android 代码混淆 混淆方案
本篇文章:自己在混淆的时候整理出比较全面的混淆方法,比较实用,自己走过的坑,淌出来的路。请大家不要再走回头路,可能只要我们代码加混淆,一点不对就会导致项目运行崩溃等后果,有许多人发现没有打包运行好好地,打包完成以后而又不不可以了,导致了许多困惑,本片文章来问大家解决困惑,希望对大家有帮助。
全栈程序员站长
2022/09/02
2.8K0
Qt ModelView教程(二)——应用举例(一)
因为是为一个Table设置Model,为了快速入门,我们选择继承QAbstractTableModel。继承后需要重写三个函数,分别是Model的行数和列数、以及每个Cell需要显示的内容。
用户5908113
2020/02/12
6940
js混淆与反混淆
由于设计原因,前端的js代码是可以在浏览器访问到的,那么因为需要让代码不被分析和复制从而导致更多安全问题,所以我们要对js代码进行混淆。
ek1ng
2023/03/08
11.9K0
js混淆与反混淆
实验5 OpenGL二维几何变换
(1)阅读实验原理,掌握OpenGL程序平移、旋转、缩放变换的方法。 (2)根据示范代码,完成实验作业。
步行者08
2020/10/27
2.5K2
实验5 OpenGL二维几何变换
001计算机图形学vs2015配置openGL及第一个opengl程序
OpenGL中的gl库是核心库,glu是实用库,glut是实用工具库; gl是核心,glu是对gl的部分封装,glut是OpenGL的跨平台工具库,gl中包含了最基本的3D函数,而glu似乎对gl的辅助,如果算数好,不用glu的情况下,也是可以做出同样的效果。glut是基本的窗口界面,是独立于gl和glu的,如果不喜欢用glut可以用MFC和Win32窗口等代替,但是glut是跨平台的,这就保证了我们编出的程序是跨平台的,如果用MFC或者Win32只能在windows操作系统上使用。选择OpenGL的一个很大原因就是因为它的跨平台性,所以我们可以尽量的使用glut库。
上善若水.夏
2018/09/28
1.4K0
Android开发笔记(一百五十四)OpenGL的画笔工具GL10
上一篇文章介绍了OpenGL绘制三维图形的流程,其实没有传说中的那么玄乎,只要放平常心把它当作一个普通控件就好了,接下来继续介绍OpenGL具体的绘图操作,这项工作得靠三维图形的画笔GL10来完成了。 GL10作为三维空间的画笔,它所描绘的三维物体却要显示在二维平面上,显而易见这不是一个简单的伙计。为了理顺物体从三维空间到二维平面的变换关系,有必要搞清楚OpenGL关于三维空间的几个基本概念。下面就概括介绍一下GL10编码的三类常见方法:
aqi00
2019/01/18
1.3K0
实验3 OpenGL几何变换
(1)阅读实验原理,运行示范实验代码,掌握OpenGL程序平移、旋转、缩放变换的方法;
步行者08
2018/10/09
1.3K0
Qt创建一个OpenGL窗口
点击上方蓝字可直接关注!方便下次阅读。如果对你有帮助,可以点个在看,让它可以帮助到更多同志~
用户5908113
2019/12/19
2.4K0
实验5 OpenGL模型视图变换
2、移动或者旋转它,当然了,如果它只是计算机里面的物体,我们还可以放大或缩小它(物体运动,让人看它的不同部分)。(模型变换)
步行者08
2018/10/09
1.7K0
OpenGL透明与混色效果
一、理论讲解 在OpenGL中,物体透明技术通常被叫做混合(Blending)。 透明是物体(或物体的一部分)非纯色而是混合色,这种颜色来自于不同浓度的自身颜色和它后面的物体颜色。 一个有色玻璃窗就是一种透明物体,玻璃有自身的颜色,但是最终的颜色包含了所有玻璃后面的颜色。这也正是混合这名称的出处,因为我们将多种(来自于不同物体)颜色混合为一个颜色,透明使得我们可以看穿物体。 透明物体可以是完全透明(它使颜色完全穿透)或者半透明的(它使颜色穿透的同时也显示自身颜色)。一个物体的透明度,被定义为它的颜色的alp
Zoctopus
2018/06/04
1.8K0
【专业技术】Android平台下使用OpenGL
存在问题: 安卓平台下如何使用opengl? 解决方案: 1、GLSurfaceView GLSurfaceView是Android应用程序中实现OpenGl画图的重要组成部分。GLSurfaceView中封装了一个Surface。而android平台下关于图像的现实,差不多都是由Surface来实现的 2、Renderer 有了GLSurfaceView之后,就相当于我们有了画图的纸。现在我们所需要做的就是如何在这张纸上画图。所以我们需要一支笔。 Renderer是GLSurfaceView的内部静态接口
程序员互动联盟
2018/03/15
1.3K0
【专业技术】Android平台下使用OpenGL
Qt ModelView教程——设置表头与可编辑Table
点击上方蓝字可直接关注!方便下次阅读。如果对你有帮助,可以点个在看,让它可以帮助到更多老铁~
用户5908113
2020/02/17
3.9K1
Qt ModelView教程——设置表头与可编辑Table
OpenGL ES 2.0 (iOS)[04]:坐标空间 与 OpenGL ES 2 3D空间
第一次变换 模型变换(Model Transforms):就是指从模型空间转换到世界空间的过程
半纸渊
2018/09/04
1.8K0
OpenGL ES 2.0 (iOS)[04]:坐标空间 与 OpenGL ES 2 3D空间

相似问题

Visual C++编译器优化

20

不能由While循环完成的递归示例

410

Visual c++无限while循环

17

这是由C#编译器完成的优化吗?

25

可以在C++代码而不是C代码上“轻松”完成的编译器优化示例

30
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档