环境:play-1.2.5
我需要在启动播放框架应用程序时将数据放入数据库,所以我让它在 Bootstrap.java 中完成。
基本上,我只是调用一个模型并为其新建一个实例并将数据重复存储到数据库中。如下所示。
{
MagazineType magazineType = new MagazineType();
magazineType.abbreviation = "XX";
magazineType.save();
{
{
MagazineTypeFirstCat magazineTypeFirstCat = new MagazineTypeFirstCat();
magazineTypeFirstCat.name = "XX_First";
magazineTypeFirstCat.magazineType = magazineType;
magazineTypeFirstCat.save();
{
{
MagazineTypeSecondCat magazineTypeSecondCat = new MgazineTypeSecondCat();
magazineTypeSecondCat.name = "XX_Second_1";
magazineTypeSecondCat.magazineTypeFirstCat = magazineTypeFirstCat;
magazineTypeSecondCat.save();
}
{
MagazineTypeSecondCat magazineTypeSecondCat = new MgazineTypeSecondCat();
magazineTypeSecondCat.name = "XX_Second_2";
magazineTypeSecondCat.magazineTypeFirstCat = magazineTypeFirstCat;
magazineTypeSecondCat.save();
}
}
}
}
}
但是数据量很大,所以 Bootstrap.java 中的代码长度超过 5000 行。
当代码长度在3000行以下时,flamework会正常启动,但如果代码长度超过3000行,就会出现异常。
以下是异常的日志,任何建议将不胜感激。提前致谢。
14:42:20,855 WARN ~ 你正在运行 Play!在 DEV 模式
14:42:21,023 INFO ~ 在端口 9000 上侦听 HTTP(等待第一个请求开始)...14:42:35,275 错误~
@6edp5mkl9
请求 GET / 的内部服务器错误 (500)
糟糕:意外异常
由异常 UnexpectedException 引起的意外错误:
在 Bootstrap 上应用类 play.classloading.enhancers.PropertiesEnhancer 时
play.exceptions.UnexpectedException:在 Bootstrap 上应用 play.CorePlugin@1f0b7d3 时
在 play.plugins.PluginCollection.enhance(PluginCollection.java:454)
在 play.classloading.ApplicationClasses$ApplicationClass.enhance (ApplicationClasses.java:208)
在 play.classloading.ApplicationClassloader.loadApplicationClass(ApplicationClassloader.java:157)
在 play.classloading.ApplicationClassloader.getAllClasses(ApplicationClassloader.java:417)
在 play.classloading.ApplicationClassloader.getAssignableClasses(ApplicationClassloader.java:441)
在 {module:crud}/app/views/tags/crud/types.tag.(line:3)
在 play.templates.GroovyTemplate.internalRender(GroovyTemplate.java:229)
在 play.templates.GroovyTemplate$ExecutableTemplate.invokeTag(GroovyTemplate.java:374)
在 {module:crud}/conf/routes.(line:4)
在 play.templates.GroovyTemplate.internalRender(GroovyTemplate.java:229)
在 play.templates.Template.render(Template.java:26)
在 play.templates.GroovyTemplate.render(GroovyTemplate.java:184)
在 play.mvc.Router.parse(Router.java:162)
在 play.mvc.Router.parse(Router.java:190)
在 play.mvc.Router.parse(Router.java:164)
在 play.mvc.Router.load(Router.java:50)
在 play.mvc.Router.detectChanges(Router.java:219)
在 Invocation.HTTP 请求(播放!)
引起:play.exceptions.UnexpectedException:在 Bootstrap 上应用类 play.classloading.enhancers.PropertiesEnhancer 时
在 play.CorePlugin.enhance(CorePlugin.java:296)
在 play.plugins.PluginCollection.enhance(PluginCollection.java:451)
在 play.classloading.ApplicationClasses$ApplicationClass.enhance(ApplicationClasses.java:208)
在 play.classloading.ApplicationClassloader.loadApplicationClass(ApplicationClassloader.java:157)
在 play.classloading.ApplicationClassloader.getAllClasses(ApplicationClassloader.java:417)
在 play.classloading.ApplicationClassloader.getAssignableClasses(ApplicationClassloader.java:441)
在 org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoCachedMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:229)
在 org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:52)
在 org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:40)
在 org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116)
在 org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:124)
在 Template_1001$_run_closure1.doCall(types.tag:6)
在 org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:88)
在 groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
在 org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:273)
在 groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:886)
在 org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:66)
在 org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:44)
在 org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:141)
在 org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:149)
在 Template_1001$_run_closure1.doCall(types.tag)
在 org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:88)
在 groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
在 org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod (ClosureMetaClass.java:273)
在 groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:886)
在 groovy.lang.Closure.call(Closure.java:282)
在 groovy.lang.Closure.call(Closure.java:277)
在 org.codehaus.groovy.runtime.GroovyCategorySupport$ThreadCategoryInfo.use(GroovyCategorySupport.java:99)
在 org.codehaus.groovy.runtime.GroovyCategorySupport$ThreadCategoryInfo.access$300(GroovyCategorySupport.java:61)
在 org.codehaus.groovy.runtime.GroovyCategorySupport.use(GroovyCategorySupport.java:239)
在 org.codehaus.groovy.runtime.DefaultGroovyMethods.use(DefaultGroovyMethods.java:333)
在 org.codehaus.groovy.runtime.dgm$717.invoke(未知来源)
在 org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoMetaMethodSiteNoUnwrapNoCoerce.invoke(PogoMetaMethodSite.java:307)
在 org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.callCurrent(PogoMetaMethodSite.java:51)
在 org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:44)
在 org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:141)
在 org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:153)
在 Template_1001.run(types.tag:2)
在 play.templates.GroovyTemplate.internalRender(GroovyTemplate.java:229)
在 play.templates.GroovyTemplate$ExecutableTemplate.invokeTag(GroovyTemplate.java:374)
在 org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:88)
在 groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
在 org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:362)
在 groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:886)
在 org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:66)
在 org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:44)
在 org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:141)
在 org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:161)
在 Template_1000$_run_closure1.doCall(路线:41)
在 org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:88)
在 groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
在 org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:273)
在 groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:886)
在 org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:66)
在 org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:44)
在 org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:141)
在 org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:149)
在 Template_1000$_run_closure1.doCall(路由)
在 org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:88)
在 groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
在 org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:273)
在 groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:886)
在 groovy.lang.Closure.call(Closure.java:282)
在 groovy.lang.Closure.call(Closure.java:277)
在 org.codehaus.groovy.runtime.GroovyCategorySupport$ThreadCategoryInfo.use(GroovyCategorySupport.java:99)
在 org.codehaus.groovy.runtime.GroovyCategorySupport$ThreadCategoryInfo.access$300(GroovyCategorySupport.java:61)
在 org.codehaus.groovy.runtime.GroovyCategorySupport.use(GroovyCategorySupport.java:239)
在 org.codehaus.groovy.runtime.DefaultGroovyMethods.use(DefaultGroovyMethods.java:333)
在 org.codehaus.groovy.runtime.dgm$717.invoke(未知来源)
在 org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoMetaMethodSiteNoUnwrapNoCoerce.invoke(PogoMetaMethodSite.java:307)
在 org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.callCurrent(PogoMetaMethodSite.java:51)
在 org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:44)
在 org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:141)
在 org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:153)
在 Template_1000.run(路线:2)
... 9 更多
引起:javassist.CannotCompileException:无效的操作码地址
在 javassist.expr.ExprEditor.doit(ExprEditor.java:116)
在 javassist.CtBehavior.instrument(CtBehavior.java:618)
在 play.classloading.enhancers.PropertiesEnhancer.enhanceThisClass(PropertiesEnhancer.java:130)
在 play.CorePlugin.enhance(CorePlugin.java:293)
... 83 更多
引起:javassist.bytecode.BadBytecode:操作码地址无效
在 javassist.bytecode.CodeIterator.nextOpcode(CodeIterator.java:586)
在 javassist.bytecode.CodeIterator.next(CodeIterator.java:157)
在 javassist.bytecode.stackmap.Liveness.analyze(Liveness.java:237)
在 javassist.bytecode.stackmap.Liveness.computeUsage(Liveness.java:216)
在 javassist.bytecode.stackmap.Liveness.compute(Liveness.java:38)
在 javassist.bytecode.stackmap.TypedBlock.makeBlocks(TypedBlock.java:54)
在 javassist.bytecode.stackmap.MapMaker.make(MapMaker.java:91)
在 javassist.bytecode.MethodInfo.rebuildStackMap(MethodInfo.java:404)
在 javassist.bytecode.MethodInfo.rebuildStackMapIf6(MethodInfo.java:389)
在 javassist.expr.ExprEditor.doit(ExprEditor.java:112)
... 86 更多