NoClassDefFoundError after upgrading to 1.7.0.RELE

2019-02-20 21:25发布

I was trying to upgrade my application from 1.6.2.RELEASE to 1.7.0.RELEASE in my playframework project. Insert queries are working fine but there seems to be an issue when spring-data tries to inflate the object using class name after fetching result against query, if there's no result against query then it returns an empty arraylist without throwing error.

1.7.0.RELEASE works fine in another project based on spring-integration framework.

below is statck trace :-

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)

1条回答
成全新的幸福
2楼-- · 2019-02-20 21:56

I'm facing this error too. I think it's the bug of the spring data mongodb.

If the Db model and all the service, repository are in one project, no such error. But if the service in another project, it can be reproduced 100%. I don't find a way to avoid this error.

Now, I'm trying to use the OGM on the mongodb persistent layer.

查看更多
登录 后发表回答