迁移到Spring 4.2.4之后的AccessControlException [英] AccessControlException after migration to Spring 4.2.4

查看:101
本文介绍了迁移到Spring 4.2.4之后的AccessControlException的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

从Spring 4.2.3迁移到4.2.4后,我无法在Google App Engine上运行应用程序

  java.lang .IllegalStateException:无法加载配置类:在org.springframework.context.annotation.ConfigurationClassPostProcessor.enhanceConfigurationClasses xxx.xxx.configuration.AppConfiguration 
(ConfigurationClassPostProcessor.java:410)
在org.springframework.context.annotation .ConfigurationClassPostProcessor.postProcessBeanFactory(ConfigurationClassPostProcessor.java:263)
at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:284)
at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessor (PostProcessorRegistrationDelegate.java:130)
at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:678)
at o rg.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:520)
处org.springframework org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:446)
。 web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:328)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:107)
at org.mortbay.jetty.handler。 ContextHandler.startContext(ContextHandler.java:548)
在org.mortbay.jetty.servlet.Context.startContext(Context.java:136)
在org.mortbay.jetty.webapp.WebAppContext.startContext( WebAppContext.java:1250)在org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517
)在org.mortbay.jetty.webapp.WebAppContext.doStart
(WebAppContext.java: 467)
在org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
在com.google.apphosting。 (com.google.apphosting.runtime.jetty.AppVersionHandlerMap.getHandler(AppVersionHandlerMap.java:179)
(位于com.google.apphosting)。 runtime.jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:136)维持在com.google.tracing com.google.apphosting.runtime.JavaRuntime $ RequestRunnable.run(JavaRuntime.java:469)

。 TraceContext $ TraceContextRunnable.runInContext(TraceContext.java:437)
在com.google.tracing.TraceContext $ TraceContextRunnable $ 1.run在com.google.tracing.CurrentContext.runInContext(TraceContext.java:444)
(CurrentContext.java:256)com.google.tracing.TraceContext上的
$ AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java:308)$ com.google.tracing.TraceContext上的
$ AbstractTraceContextCallback.runInInheritedContext(TraceContext.java :300)
,位于com.google.tracing.TraceContext $ TraceContextRunnable.r un(TraceContext.java:441)
at com.google.apphosting.runtime.ThreadGroupPool $ PoolEntry.run(ThreadGroupPool.java:235)
at java.lang.Thread.run(Thread.java: 745)
引起的:java.security.AccessControlException:访问被拒绝( java.lang.RuntimePermission accessClassInPackage.sun.reflect.annotation)在java.security.AccessControlContext.checkPermission
(AccessControlContext的。 java:382)
at java.security.AccessController.checkPermission(AccessController.java:572)
at java.lang.SecurityManager.checkPermission(SecurityManager.java:549)
at com.google .apphosting.runtime.security.CustomSecurityManager.checkPermission(CustomSecurityManager.java:55)
在java.lang.SecurityManager.checkPackageAccess(SecurityManager.java:1525)
在sun.reflect.misc.ReflectUtil.checkPackageAccess (ReflectUtil.java:188)
at sun.reflect.misc.ReflectUtil.checkPackageAccess(ReflectUtil.java:164)
at java.lang.reflect.Proxy.getInvocationHan在org.springframework.core.annotation.AnnotationUtils.synthesizeAnnotation dler(Proxy.java:822)
(AnnotationUtils.java:1364)
在org.springframework.core.annotation.AnnotationUtils.findAnnotation(AnnotationUtils。 Java的:498)
在org.springframework.core.annotation.AnnotationUtils.findAnnotation(AnnotationUtils.java:563)
在org.springframework.context.annotation.BeanAnnotationHelper.isBeanAnnotated(BeanAnnotationHelper.java:35)
在org.springframework.context.annotation.ConfigurationClassEnhancer $ BeanMethodInterceptor.isMatch(ConfigurationClassEnhancer.java:487)
在org.springframework.context.annotation.ConfigurationClassEnhancer $ ConditionalCallbackFilter.accept(ConfigurationClassEnhancer.java:190)
at org.springframework.cglib.proxy.Enhancer.emitMethods(Enhancer.java:898)
at org.springframework.cglib.proxy.Enhancer.generateClass(Enhancer.java:509)
在org.springframework.cglib.transform.TransformingClassGenerator.g enerateClass(TransformingClassGenerator.java:33)
在org.springframework.cglib.core.DefaultGeneratorStrategy.generate(DefaultGeneratorStrategy.java:25)
在org.springframework.context.annotation.ConfigurationClassEnhancer $ BeanFactoryAwareGeneratorStrategy.generate(
at org.springframework.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:231)
at org.springframework.cglib.proxy.Enhancer.createHelper(Enhancer.java:
at org.springframework.cglib.proxy.Enhancer.createClass(Enhancer.java:318)
at org.springframework.context.annotation.ConfigurationClassEnhancer.createClass(ConfigurationClassEnhancer.java:135)
at org.springframework.context.annotation.ConfigurationClassEnhancer.enhance(ConfigurationClassEnhancer.java:107)
at org.springframework.context.annotation.ConfigurationClassPostProcessor.enhanceConfigurationClasses(ConfigurationClassPostProcessor.java:400)
... 26 more


解决方案

尚未发布,因此请等待4.2.5或恢复至4.2.3: https://jira.spring .io / browse / SPR-13829

After migration from Spring 4.2.3 to 4.2.4 I cannot run my aplication on Google App Engine

java.lang.IllegalStateException: Cannot load configuration class: xxx.xxx.configuration.AppConfiguration
    at org.springframework.context.annotation.ConfigurationClassPostProcessor.enhanceConfigurationClasses(ConfigurationClassPostProcessor.java:410)
    at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanFactory(ConfigurationClassPostProcessor.java:263)
    at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:284)
    at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:130)
    at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:678)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:520)
    at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:446)
    at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:328)
    at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:107)
    at org.mortbay.jetty.handler.ContextHandler.startContext(ContextHandler.java:548)
    at org.mortbay.jetty.servlet.Context.startContext(Context.java:136)
    at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1250)
    at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517)
    at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:467)
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
    at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.createHandler(AppVersionHandlerMap.java:206)
    at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.getHandler(AppVersionHandlerMap.java:179)
    at com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:136)
    at com.google.apphosting.runtime.JavaRuntime$RequestRunnable.run(JavaRuntime.java:469)
    at com.google.tracing.TraceContext$TraceContextRunnable.runInContext(TraceContext.java:437)
    at com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:444)
    at com.google.tracing.CurrentContext.runInContext(CurrentContext.java:256)
    at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java:308)
    at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:300)
    at com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:441)
    at com.google.apphosting.runtime.ThreadGroupPool$PoolEntry.run(ThreadGroupPool.java:235)
    at java.lang.Thread.run(Thread.java:745)
Caused by: java.security.AccessControlException: access denied ("java.lang.RuntimePermission" "accessClassInPackage.sun.reflect.annotation")
    at java.security.AccessControlContext.checkPermission(AccessControlContext.java:382)
    at java.security.AccessController.checkPermission(AccessController.java:572)
    at java.lang.SecurityManager.checkPermission(SecurityManager.java:549)
    at com.google.apphosting.runtime.security.CustomSecurityManager.checkPermission(CustomSecurityManager.java:55)
    at java.lang.SecurityManager.checkPackageAccess(SecurityManager.java:1525)
    at sun.reflect.misc.ReflectUtil.checkPackageAccess(ReflectUtil.java:188)
    at sun.reflect.misc.ReflectUtil.checkPackageAccess(ReflectUtil.java:164)
    at java.lang.reflect.Proxy.getInvocationHandler(Proxy.java:822)
    at org.springframework.core.annotation.AnnotationUtils.synthesizeAnnotation(AnnotationUtils.java:1364)
    at org.springframework.core.annotation.AnnotationUtils.findAnnotation(AnnotationUtils.java:498)
    at org.springframework.core.annotation.AnnotationUtils.findAnnotation(AnnotationUtils.java:563)
    at org.springframework.context.annotation.BeanAnnotationHelper.isBeanAnnotated(BeanAnnotationHelper.java:35)
    at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.isMatch(ConfigurationClassEnhancer.java:487)
    at org.springframework.context.annotation.ConfigurationClassEnhancer$ConditionalCallbackFilter.accept(ConfigurationClassEnhancer.java:190)
    at org.springframework.cglib.proxy.Enhancer.emitMethods(Enhancer.java:898)
    at org.springframework.cglib.proxy.Enhancer.generateClass(Enhancer.java:509)
    at org.springframework.cglib.transform.TransformingClassGenerator.generateClass(TransformingClassGenerator.java:33)
    at org.springframework.cglib.core.DefaultGeneratorStrategy.generate(DefaultGeneratorStrategy.java:25)
    at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanFactoryAwareGeneratorStrategy.generate(ConfigurationClassEnhancer.java:249)
    at org.springframework.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:231)
    at org.springframework.cglib.proxy.Enhancer.createHelper(Enhancer.java:378)
    at org.springframework.cglib.proxy.Enhancer.createClass(Enhancer.java:318)
    at org.springframework.context.annotation.ConfigurationClassEnhancer.createClass(ConfigurationClassEnhancer.java:135)
    at org.springframework.context.annotation.ConfigurationClassEnhancer.enhance(ConfigurationClassEnhancer.java:107)
    at org.springframework.context.annotation.ConfigurationClassPostProcessor.enhanceConfigurationClasses(ConfigurationClassPostProcessor.java:400)
    ... 26 more

解决方案

Spring bug, fixed but not yet released so either wait for 4.2.5 or revert to 4.2.3: https://jira.spring.io/browse/SPR-13829

这篇关于迁移到Spring 4.2.4之后的AccessControlException的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆