Исключение при работе с Java и метамоделями java.lang.ClassCastException: javassist.bytecode.InterfaceMethodrefInfo не может

Я не могу запустить свое Java-приложение Play. Последнее, что я сделал, - изменил метамодели и некоторые незначительные изменения в отношениях классов сущностей. Кто-нибудь сталкивался с такой проблемой раньше?

Я не очень понимаю, так как проблема ничего не говорит о моем коде, какие-либо предложения?

java.lang.ClassCastException: javassist.bytecode.InterfaceMethodrefInfo не может быть приведен к javassist.bytecode.MethodrefInfo по адресу javassist.bytecode.ConstPool.getMethodrefType(код ConstPool.java:452.java.trace.java: trade.doset.Trake.Trake.Trake.Trake.Trake 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.stackm ap.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(CtBehavior.java:712) в пла y.core.enhancers.PropertiesEnhancer.rewriteAccess(PropertiesEnhancer.java:156) в play.PlayCommands$$anonfun$PostCompile$1$$anonfun$9.apply(PlayCommands.scala:99) в play.PlayCommands $$ anonfun $ 1 PostCompile $ 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) в play.PlayCommands$$anonfun$PostCompile$1.apply(PlayCommands.scala:99) в play.PlayCommands$$anonfun$PostCompile$1.apply(PlayCommands.scala:76) в scala.Function8$$anonfun$tupled$1.apply(Function8.scala:35) в scala.Function8 $ $ anonfun $ с набором $1.apply(Function8.scala:34) в scala.Function1$$anonfun$compose$1.apply(Function1.scala:47) в sbt. $ тильды $ больше $$anonfun$$u2219$1.apply(TypeFunctions.scala:42) в sbt.std. Преобразование $$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.runoorkec.:1142) в java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) в java.lang.Thread.run(Thread.j AVA:745)

код:

@OneToMany (mappedBy = "user") публичный заменитель списка;

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

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

Атрибут listAttribute раньше был singularatrribute, но мне нужно было поменять их после того, как я перешел с однозначного на однозначное отношение

1 ответ

Решение

Это происходит с помощью плагина sbt-play-Enhancer с использованием Javaassist версии 3.18.0-GA.

См. https://github.com/playframework/playframework/issues/3374

Добавьте обновление 3.20 для javassist в project/plugins.sbt

libraryDependencies += "org.javassist" % "javassist" % "3.20.0-GA"
Другие вопросы по тегам