【问题标题】:NoClassDefFoundError after upgrading to 1.7.0.RELEASE升级到 1.7.0.RELEASE 后出现 NoClassDefFoundError
【发布时间】:2015-04-10 14:02:39
【问题描述】:

我试图在我的 playframework 项目中将我的应用程序从 1.6.2.RELEASE 升级到 1.7.0.RELEASE。 插入查询工作正常,但是当 spring-data 在获取查询结果后尝试使用类名膨胀对象时似乎存在问题,如果查询没有结果,则返回一个空数组列表而不会引发错误。

1.7.0.RELEASE 在另一个基于 spring-integration 框架的项目中运行良好。

下面是statck跟踪:-

java.lang.NoClassDefFoundError: models/db/nosql/ACME
 models.db.nosql.ACME_Instantiator_gtblf6.newInstance(Unknown Source)
 org.springframework.data.convert.BytecodeGeneratingEntityInstantiator$EntityInstantiatorAdapter.createInstance(BytecodeGeneratingEntityInstantiator.java:193)
 org.springframework.data.convert.BytecodeGeneratingEntityInstantiator.createInstance(BytecodeGeneratingEntityInstantiator.java:76)
 org.springframework.data.mongodb.core.convert.MappingMongoConverter.read(MappingMongoConverter.java:250)
 org.springframework.data.mongodb.core.convert.MappingMongoConverter.read(MappingMongoConverter.java:231)
 org.springframework.data.mongodb.core.convert.MappingMongoConverter.read(MappingMongoConverter.java:191)
 org.springframework.data.mongodb.core.convert.MappingMongoConverter.read(MappingMongoConverter.java:187)
 org.springframework.data.mongodb.core.convert.MappingMongoConverter.read(MappingMongoConverter.java:78)
 org.springframework.data.mongodb.core.MongoTemplate$ReadDbObjectCallback.doWith(MongoTemplate.java:2191)
 org.springframework.data.mongodb.core.MongoTemplate.executeFindMultiInternal(MongoTemplate.java:1873)
 org.springframework.data.mongodb.core.MongoTemplate.doFind(MongoTemplate.java:1696)
 org.springframework.data.mongodb.core.MongoTemplate.doFind(MongoTemplate.java:1679)
 org.springframework.data.mongodb.core.MongoTemplate.find(MongoTemplate.java:598)
 org.springframework.data.mongodb.core.MongoTemplate.find(MongoTemplate.java:589)
 GenerateACME.reverseBizCode(GenerateACME.java:42)
 Global.onStart(Global.java:23)
 play.core.j.JavaGlobalSettingsAdapter.onStart(JavaGlobalSettingsAdapter.scala:22)
 play.api.GlobalPlugin.onStart(GlobalSettings.scala:220)
 play.api.Play$$anonfun$start$1$$anonfun$apply$mcV$sp$1.apply(Play.scala:91)
 play.api.Play$$anonfun$start$1$$anonfun$apply$mcV$sp$1.apply(Play.scala:91)
 scala.collection.immutable.List.foreach(List.scala:383)
 play.api.Play$$anonfun$start$1.apply$mcV$sp(Play.scala:91)
 play.api.Play$$anonfun$start$1.apply(Play.scala:91)
 play.api.Play$$anonfun$start$1.apply(Play.scala:91)
 play.utils.Threads$.withContextClassLoader(Threads.scala:21)
 play.api.Play$.start(Play.scala:90)
 play.core.ReloadableApplication$$anonfun$get$1$$anonfun$apply$1$$anonfun$1.apply(ApplicationProvider.scala:157)
 play.core.ReloadableApplication$$anonfun$get$1$$anonfun$apply$1$$anonfun$1.apply(ApplicationProvider.scala:130)
 scala.Option.map(Option.scala:145)
 play.core.ReloadableApplication$$anonfun$get$1$$anonfun$apply$1.apply(ApplicationProvider.scala:130)
 play.core.ReloadableApplication$$anonfun$get$1$$anonfun$apply$1.apply(ApplicationProvider.scala:128)
 scala.util.Success.flatMap(Try.scala:230)
 play.core.ReloadableApplication$$anonfun$get$1.apply(ApplicationProvider.scala:128)
 play.core.ReloadableApplication$$anonfun$get$1.apply(ApplicationProvider.scala:120)
 scala.concurrent.impl.Future$PromiseCompletingRunnable.liftedTree1$1(Future.scala:24)
 scala.concurrent.impl.Future$PromiseCompletingRunnable.run(Future.scala:24)
 scala.concurrent.forkjoin.ForkJoinTask$AdaptedRunnableAction.exec(ForkJoinTask.java:1361)
 scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)
 scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)
 scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)
 scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)

【问题讨论】:

  • models/db/nosql/ACME 是什么样的?那是 Java 还是 Scala 类?
  • 那么,您介意展示一下吗?不然水晶球雾蒙蒙的……
  • 我遇到了同样的麻烦。经过一番搜索,我意识到这可能是一个错误,我不得不将 spring-data-mongodb 降级到 1.6.2.RELEASE 版本。
  • 关于这个问题的任何更新,我也面临同样的问题,
  • 尝试使用运行良好的 morphia 库

标签: playframework-2.3 spring-data-mongodb


【解决方案1】:

我也面临这个错误。我认为这是spring data mongodb的错误。

如果 Db 模型和所有服务、存储库在一个项目中,则不会出现此类错误。 但如果服务在另一个项目中,则可以 100% 重现。我找不到避免此错误的方法。

现在,我正在尝试在 mongodb 持久层上使用 OGM。

【讨论】:

  • 经过长时间的调查,唯一的办法就是下到spring data mongodb 1.6.2 release。我怀疑自我转换可能是一种解决方法,但我不尝试。而且这个错误在 1.8.x M1 上没有修复。
猜你喜欢
  • 2017-07-24
  • 2021-10-15
  • 2013-11-04
  • 1970-01-01
  • 2011-11-28
  • 2021-09-06
  • 2016-07-13
  • 2023-01-03
相关资源
最近更新 更多