java - 使用Java和元模型时发生异常java.lang.ClassCastException:javassist.bytecode.InterfaceMethodrefInfo无法

标签 java sbt metamodel

我无法运行我的Play Java应用程序,我做的最后一件事是修改元模型,并对实体类之间的关系进行了一些细微更改,以前有人遇到过此问题吗?

我真的不明白,因为问题没有说明我的代码,有什么建议吗?

java.lang.ClassCastException:无法将javassist.bytecode.InterfaceMethodrefInfo强制转换为javassist.bytecode.MethodrefInfo
在javassist.bytecode.ConstPool.getMethodrefType(ConstPool.java:452)
在javassist.bytecode.stackmap.Tracer.doInvokeMethod(Tracer.java:800)
在javassist.bytecode.stackmap.Tracer.doOpcode148_201(Tracer.java:597)
在javassist.bytecode.stackmap.Tracer.doOpcode(Tracer.java:81)
在javassist.bytecode.stackmap.MapMaker.make(MapMaker.java:187)
在javassist.bytecode.stackmap.MapMaker.make(MapMaker.java:199)
在javassist.bytecode.stackmap.MapMaker.make(MapMaker.java:199)
在javassist.bytecode.stackmap.MapMaker.make(MapMaker.java:199)
在javassist.bytecode.stackmap.MapMaker.make(MapMaker.java:199)
在javassist.bytecode.stackmap.MapMaker.make(MapMaker.java:199)
在javassist.bytecode.stackmap.MapMaker.make(MapMaker.java:199)
在javassist.bytecode.stackmap.MapMaker.make(MapMaker.java:199)
在javassist.bytecode.stackmap.MapMaker.make(MapMaker.java:199)
在javassist.bytecode.stackmap.MapMaker.make(MapMaker.java:199)
在javassist.bytecode.stackmap.MapMaker.make(MapMaker.java:199)
在javassist.bytecode.stackmap.MapMaker.make(MapMaker.java:199)
在javassist.bytecode.stackmap.MapMaker.make(MapMaker.java:199)
在javassist.bytecode.stackmap.MapMaker.make(MapMaker.java:199)
在javassist.bytecode.stackmap.MapMaker.make(MapMaker.java:199)
在javassist.bytecode.stackmap.MapMaker.make(MapMaker.java:199)
在javassist.bytecode.stackmap.MapMaker.make(MapMaker.java:199)
在javassist.bytecode.stackmap.MapMaker.make(MapMaker.java:199)
在javassist.bytecode.stackmap.MapMaker.make(MapMaker.java:199)
在javassist.bytecode.stackmap.MapMaker.make(MapMaker.java:164)
在javassist.bytecode.stackmap.MapMaker.make(MapMaker.java:108)
在javassist.bytecode.MethodInfo.rebuildStackMap(MethodInfo.java:423)
在javassist.bytecode.MethodInfo.rebuildStackMapIf6(MethodInfo.java:405)
在javassist.expr.ExprEditor.doit(ExprEditor.java:113)
在javassist.CtBehavior.instrument(CtBehavior.java:712)
在play.core.enhancers.PropertiesEnhancer.rewriteAccess(PropertiesEnhancer.java:156)
在播放时.PlayCommands $$ anonfun $ PostCompile $ 1 $$ anonfun $ 9.apply(PlayCommands.scala:99)
在播放时.PlayCommands $$ anonfun $ PostCompile $ 1 $$ anonfun $ 9.apply(PlayCommands.scala:99)
在scala.collection.TraversableLike $$ anonfun $ filter $ 1.apply(TraversableLike.scala:264)
在scala.collection.mutable.ResizableArray $ class.foreach(ResizableArray.scala:59)
在scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:47)
在scala.collection.TraversableLike $ class.filter(TraversableLike.scala:263)
在scala.collection.AbstractTraversable.filter(Traversable.scala:105)
在播放时.PlayCommands $$ anonfun $ PostCompile $ 1.apply(PlayCommands.scala:99)
在播放时.PlayCommands $$ anonfun $ PostCompile $ 1.apply(PlayCommands.scala:76)
在scala.Function8 $$ anonfun $ tupled $ 1.apply(Function8.scala:35)
在scala.Function8 $$ anonfun $ tupled $ 1.apply(Function8.scala:34)
在scala.Function1 $$ anonfun $ compose $ 1.apply(Function1.scala:47)
在sbt。$ tilde $ greater $$ anonfun $$ u2219 $ 1.apply(TypeFunctions.scala:42)
在sbt.std.Transform $$ anon $ 4.work(System.scala:64)
在sbt.Execute $$ anonfun $ submit $ 1 $$ anonfun $ apply $ 1.apply(Execute.scala:237)
在sbt.Execute $$ anonfun $ submit $ 1 $$ anonfun $ apply $ 1.apply(Execute.scala:237)
在sbt.ErrorHandling $ .wideConvert(ErrorHandling.scala:18)
在sbt.Execute.work(Execute.scala:244)
在sbt.Execute $$ anonfun $ submit $ 1.apply(Execute.scala:237)
在sbt.Execute $$ anonfun $ submit $ 1.apply(Execute.scala:237)
在sbt.ConcurrentRestrictions $$ anon $ 4 $ anonfun $ 1.apply(ConcurrentRestrictions.scala:160)
在sbt.CompletionService $$ anon $ 2.call(CompletionService.scala:30)
在java.util.concurrent.FutureTask.run(FutureTask.java:266)
在java.util.concurrent.Executors $ RunnableAdapter.call(Executors.java:511)
在java.util.concurrent.FutureTask.run(FutureTask.java:266)
在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
在java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:617)
在java.lang.Thread.run(Thread.java:745)

码:

@OneToMany(mappedBy =“用户”)
公共列表替代品;

@OneToMany(mappedBy = "user")
public List<Employee> employee;

public static volatile ListAttribute<User, Substitute> substitute;
public static volatile ListAttribute<User, Employee> employee;


listAttribute曾经是单数形式,但是在我从单调变为单调关系之后,我需要更改它们

最佳答案

这是通过使用Javaassist版本3.18.0-GA的sbt-play-enhancer插件发生的。

参考:https://github.com/playframework/playframework/issues/3374

将3.20 Javassist升级添加到project / plugins.sbt

libraryDependencies += "org.javassist" % "javassist" % "3.20.0-GA"

关于java - 使用Java和元模型时发生异常java.lang.ClassCastException:javassist.bytecode.InterfaceMethodrefInfo无法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40433944/

相关文章:

scala - sbt 多项目构建在项目之间具有测试依赖性?

attributes - 如何在 UML 属性中指定枚举文字作为默认值?

java - 尝试使用 Java 和 MetaModel API 查询 .CSV 文件

java - 如何使用java 8流比较列表的元素

Java 多捕获/重新抛出

scala - 如何在 play 框架和 build.sbt 中获取应用程序版本

scala - 什么时候在 Scala 中使用 SBT 和 Ivy 模棱两可地选择具有相同定义和类路径的两个类?

java - 任何旧类的元模型生成器?

java.lang.assertionError : expected "updated" but was "value"

从 Applet 调用 Web 服务时出现 java InvokingTargetException