Java8でSeaser + DBFlute環境でエラーが発生した


Java7で動いてたのにJava8では(´・ω・`)

java.lang.RuntimeException: java.io.IOException: invalid constant type: 15
at javassist.CtClassType.getClassFile2(CtClassType.java:207)
at javassist.CtClassType.subtypeOf(CtClassType.java:286)
at javassist.CtClassType.subtypeOf(CtClassType.java:301)
at javassist.compiler.MemberResolver.compareSignature(MemberResolver.java:227)
at javassist.compiler.MemberResolver.lookupMethod(MemberResolver.java:115)
at javassist.compiler.MemberResolver.lookupMethod(MemberResolver.java:96)
at javassist.compiler.TypeChecker.atMethodCallCore(TypeChecker.java:704)
at javassist.compiler.TypeChecker.atCallExpr(TypeChecker.java:681)
at javassist.compiler.JvstTypeChecker.atCallExpr(JvstTypeChecker.java:156)
at javassist.compiler.ast.CallExpr.accept(CallExpr.java:45)
at javassist.compiler.JvstTypeChecker.atCastToRtype(JvstTypeChecker.java:112)
at javassist.compiler.JvstTypeChecker.atCastExpr(JvstTypeChecker.java:93)
at javassist.compiler.ast.CastExpr.accept(CastExpr.java:54)
at javassist.compiler.CodeGen.doTypeCheck(CodeGen.java:235)
at javassist.compiler.CodeGen.compileExpr(CodeGen.java:222)
at javassist.compiler.CodeGen.atReturnStmnt2(CodeGen.java:591)
at javassist.compiler.JvstCodeGen.atReturnStmnt(JvstCodeGen.java:424)
at javassist.compiler.CodeGen.atStmnt(CodeGen.java:356)
at javassist.compiler.ast.Stmnt.accept(Stmnt.java:49)
at javassist.compiler.CodeGen.atStmnt(CodeGen.java:344)
at javassist.compiler.ast.Stmnt.accept(Stmnt.java:49)
at javassist.compiler.CodeGen.atMethodBody(CodeGen.java:285)
at javassist.compiler.Javac.compileBody(Javac.java:212)
at javassist.CtBehavior.setBody(CtBehavior.java:341)
at javassist.CtBehavior.setBody(CtBehavior.java:316)
at javassist.CtNewMethod.make(CtNewMethod.java:135)
at org.seasar.framework.aop.javassist.AbstractGenerator.createMethod(AbstractGenerator.java:465)
at org.seasar.framework.aop.javassist.EnhancedClassGenerator.createInvokeSuperMethod(EnhancedClassGenerator.java:90)
at org.seasar.framework.aop.javassist.AspectWeaver.createInvokeSuperMethod(AspectWeaver.java:231)
at org.seasar.framework.aop.javassist.AspectWeaver.setInterceptors(AspectWeaver.java:133)
at org.seasar.framework.aop.proxy.AopProxy.setupAspects(AopProxy.java:150)
at org.seasar.framework.aop.proxy.AopProxy.(AopProxy.java:110)
at org.seasar.framework.container.util.AopProxyUtil.getConcreteClass(AopProxyUtil.java:54)
at org.seasar.framework.container.impl.ComponentDefImpl.getConcreteClass(ComponentDefImpl.java:140)
at org.seasar.framework.container.impl.ComponentDefImpl.init(ComponentDefImpl.java:235)
at org.seasar.framework.container.impl.S2ContainerImpl.init(S2ContainerImpl.java:563)
at org.seasar.framework.container.impl.S2ContainerImpl.init(S2ContainerImpl.java:560)
at org.seasar.framework.container.factory.SingletonS2ContainerFactory.init(SingletonS2ContainerFactory.java:167)
at org.seasar.framework.container.servlet.SingletonS2ContainerInitializer.initialize(SingletonS2ContainerInitializer.java:55)
at org.seasar.framework.container.servlet.S2ContainerListener.initializeContainer(S2ContainerListener.java:49)
at org.seasar.framework.container.servlet.S2ContainerListener.contextInitialized(S2ContainerListener.java:56)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4751)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5175)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1408)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1398)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)


なんじゃこりゃぁあ!!( ゚д゚ )

Java8が悪いのか、Java7が悪いのか徹底的に追求を重ねた結果(´・ω・`)

犯人はJavassistだった('A`)
あっちこっちでJavassistがJava8で動かねーよって報告が結構出てた(;´Д`)


javassist-3.4.ga.jarを使用してたが
最新のJavassist(3.19.0-GA)にしたら動いた(´・ω・`)



これに4時間近く費やしたな(;´Д`)


0 件のコメント:

コメントを投稿