Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google app engine java.security.AccessControlException:拒绝访问(java.lang.RuntimePermission accessDeclaredMembers)_Google App Engine_Resteasy_Jboss Weld - Fatal编程技术网

Google app engine java.security.AccessControlException:拒绝访问(java.lang.RuntimePermission accessDeclaredMembers)

Google app engine java.security.AccessControlException:拒绝访问(java.lang.RuntimePermission accessDeclaredMembers),google-app-engine,resteasy,jboss-weld,Google App Engine,Resteasy,Jboss Weld,我正在尝试使用Weld 1.1.8将一个应用程序移植到Google应用程序引擎。我正在使用web.xml中的侦听器引导焊接: <listener> <listener-class>org.jboss.weld.environment.servlet.Listener</listener-class> </listener> org.jboss.weld.environment.servlet.Listener 应用程序在常规Jetty 7

我正在尝试使用Weld 1.1.8将一个应用程序移植到Google应用程序引擎。我正在使用web.xml中的侦听器引导焊接:

<listener>
  <listener-class>org.jboss.weld.environment.servlet.Listener</listener-class>
</listener>

org.jboss.weld.environment.servlet.Listener
应用程序在常规Jetty 7上启动良好。但在GAE上启动后,事情就出了问题:

com.google.common.collect.ComputationException: java.security.AccessControlException: access denied (java.lang.RuntimePermission accessDeclaredMembers)
    at com.google.common.collect.ComputingConcurrentHashMap$ComputingMapAdapter.get(ComputingConcurrentHashMap.java:397)
    at org.jboss.weld.resources.ClassTransformer.loadClass(ClassTransformer.java:163)
    at org.jboss.weld.bootstrap.BeanDeployer.loadWeldClass(BeanDeployer.java:108)
    at org.jboss.weld.bootstrap.BeanDeployer.addClass(BeanDeployer.java:79)
    at org.jboss.weld.bootstrap.BeanDeployer.addClasses(BeanDeployer.java:123)
    at org.jboss.weld.bootstrap.BeanDeployment.createBeans(BeanDeployment.java:184)
    at org.jboss.weld.bootstrap.WeldBootstrap.deployBeans(WeldBootstrap.java:350)
    at org.jboss.weld.environment.servlet.Listener.contextInitialized(Listener.java:182)
    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:202)
    at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.getHandler(AppVersionHandlerMap.java:171)
    at com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:123)
    at com.google.apphosting.runtime.JavaRuntime$RequestRunnable.run(JavaRuntime.java:446)
    at com.google.tracing.TraceContext$TraceContextRunnable.runInContext(TraceContext.java:449)
    at com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:455)
    at com.google.tracing.TraceContext.runInContext(TraceContext.java:695)
    at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java:333)
    at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:325)
    at com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:453)
    at com.google.apphosting.runtime.ThreadGroupPool$PoolEntry.run(ThreadGroupPool.java:251)
    at java.lang.Thread.run(Thread.java:679)
Caused by: java.security.AccessControlException: access denied (java.lang.RuntimePermission accessDeclaredMembers)
    at java.security.AccessControlContext.checkPermission(AccessControlContext.java:355)
    at java.security.AccessController.checkPermission(AccessController.java:567)
    at java.lang.SecurityManager.checkPermission(SecurityManager.java:549)
    at com.google.apphosting.runtime.security.CustomSecurityManager.checkPermission(CustomSecurityManager.java:56)
    at java.lang.SecurityManager.checkMemberAccess(SecurityManager.java:1679)
    at java.lang.Class.checkMemberAccess(Class.java:2174)
    at java.lang.Class.getDeclaredMethods(Class.java:1807)
    at java.lang.Class.getEnclosingMethod(Class.java:919)
    at sun.reflect.generics.scope.ClassScope.computeEnclosingScope(ClassScope.java:50)
    at sun.reflect.generics.scope.AbstractScope.getEnclosingScope(AbstractScope.java:74)
    at sun.reflect.generics.scope.AbstractScope.lookup(AbstractScope.java:90)
    at sun.reflect.generics.scope.AbstractScope.lookup(AbstractScope.java:90)
    at sun.reflect.generics.factory.CoreReflectionFactory.findTypeVariable(CoreReflectionFactory.java:109)
    at sun.reflect.generics.visitor.Reifier.visitTypeVariableSignature(Reifier.java:165)
    at sun.reflect.generics.tree.TypeVariableSignature.accept(TypeVariableSignature.java:43)
    at sun.reflect.generics.repository.MethodRepository.getReturnType(MethodRepository.java:68)
    at java.lang.reflect.Method.getGenericReturnType(Method.java:254)
    at org.jboss.weld.introspector.jlr.WeldMethodImpl.of(WeldMethodImpl.java:70)
    at org.jboss.weld.introspector.jlr.WeldClassImpl.<init>(WeldClassImpl.java:235)
    at org.jboss.weld.introspector.jlr.WeldClassImpl.of(WeldClassImpl.java:119)
    at org.jboss.weld.resources.ClassTransformer$TransformTypeToWeldClass.apply(ClassTransformer.java:59)
    at org.jboss.weld.resources.ClassTransformer$TransformTypeToWeldClass.apply(ClassTransformer.java:50)
    at com.google.common.collect.ComputingConcurrentHashMap$ComputingValueReference.compute(ComputingConcurrentHashMap.java:355)
    at com.google.common.collect.ComputingConcurrentHashMap$ComputingSegment.compute(ComputingConcurrentHashMap.java:184)
    at com.google.common.collect.ComputingConcurrentHashMap$ComputingSegment.getOrCompute(ComputingConcurrentHashMap.java:153)
    at com.google.common.collect.ComputingConcurrentHashMap.getOrCompute(ComputingConcurrentHashMap.java:69)
    at com.google.common.collect.ComputingConcurrentHashMap$ComputingMapAdapter.get(ComputingConcurrentHashMap.java:393)
    ... 25 more
com.google.common.collect.ComputationException:java.security.AccessControlException:access denied(java.lang.RuntimePermission accessDeclaredMembers)
位于com.google.common.collect.ComputingConcurrentHashMap$ComputingMapAdapter.get(ComputingConcurrentHashMap.java:397)
位于org.jboss.weld.resources.ClassTransformer.loadClass(ClassTransformer.java:163)
位于org.jboss.weld.bootstrap.BeanDeployer.loadWeldClass(BeanDeployer.java:108)
位于org.jboss.weld.bootstrap.BeanDeployer.addClass(BeanDeployer.java:79)
位于org.jboss.weld.bootstrap.BeanDeployer.addClasses(BeanDeployer.java:123)
位于org.jboss.weld.bootstrap.BeanDeployment.createBeans(BeanDeployment.java:184)
位于org.jboss.weld.bootstrap.WeldBootstrap.deployBeans(WeldBootstrap.java:350)
位于org.jboss.weld.environment.servlet.Listener.contextInitialized(Listener.java:182)
位于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.runtime.jetty.AppVersionHandlerMap.createHandler(AppVersionHandlerMap.java:202)
位于com.google.apphosting.runtime.jetty.AppVersionHandlerMap.getHandler(AppVersionHandlerMap.java:171)
位于com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:123)
位于com.google.apphosting.runtime.JavaRuntime$RequestRunnable.run(JavaRuntime.java:446)
位于com.google.tracing.TraceContext$TraceContextRunnable.runInContext(TraceContext.java:449)
在com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:455)
位于com.google.tracing.TraceContext.runInContext(TraceContext.java:695)
在com.google.tracing.TraceContext$AbstractTraceContextCallback.RunInheritedContextNonRef(TraceContext.java:333)上
在com.google.tracing.TraceContext$AbstractTraceContextCallback.RunInheritedContext(TraceContext.java:325)上
位于com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:453)
位于com.google.apphosting.runtime.ThreadGroupPool$PoolEntry.run(ThreadGroupPool.java:251)
运行(Thread.java:679)
原因:java.security.AccessControlException:拒绝访问(java.lang.RuntimePermission accessDeclaredMembers)
位于java.security.AccessControlContext.checkPermission(AccessControlContext.java:355)
位于java.security.AccessController.checkPermission(AccessController.java:567)
位于java.lang.SecurityManager.checkPermission(SecurityManager.java:549)
位于com.google.apphosting.runtime.security.CustomSecurityManager.checkPermission(CustomSecurityManager.java:56)
位于java.lang.SecurityManager.checkMemberAccess(SecurityManager.java:1679)
位于java.lang.Class.checkMemberAccess(Class.java:2174)
位于java.lang.Class.getDeclaredMethods(Class.java:1807)
位于java.lang.Class.GetEnclosuringMethod(Class.java:919)
位于sun.reflect.generics.scope.ClassScope.computeEnclosingScope(ClassScope.java:50)
位于sun.reflect.generics.scope.AbstractScope.GetEnclosuringScope(AbstractScope.java:74)
位于sun.reflect.generics.scope.AbstractScope.lookup(AbstractScope.java:90)
位于sun.reflect.generics.scope.AbstractScope.lookup(AbstractScope.java:90)
位于sun.reflect.generics.factory.CoreReflectionFactory.findTypeVariable(CoreReflectionFactory.java:109)
位于sun.reflect.generics.visitor.Reifier.visitTypeVariableSignature(Reifier.java:165)
在sun.reflect.generics.tree.TypeVariableSignature.accept(TypeVariableSignature.java:43)中
位于sun.reflect.generics.repository.MethodRepository.getReturnType(MethodRepository.java:68)
位于java.lang.reflect.Method.getGenericReturnType(Method.java:254)
在org.jboss.weld.introspector.jlr.WeldMethodImpl.of(WeldMethodImpl.java:70)上
在org.jboss.weld.introspector.jlr.WeldClassImpl.(WeldClassImpl.java:235)
在org.jboss.weld.introspector.jlr.WeldClassImpl.of(WeldClassImpl.java:119)上
位于org.jboss.weld.resources.ClassTransformer$TransformTypeToWaldClass.apply(ClassTransformer.java:59)
在org.jboss.weld.resources.ClassTransformer$TransformTypeToWaldClass.apply上(ClassTransformer.java:50)
在com.google.common.collect.ComputingConcurrentHashMap$ComputingValueReference.compute上(ComputingConcurrentHashMap.java:355)
在com.google.common.collect.ComputingConcurrentHashMap$ComputingSegment.compute上(ComputingConcurrentHashMap.java:184)
在com.google.common.collect.ComputingConcurrentHashMap$ComputingSegment.getOrCompute上(ComputingConcurrentHashMap.java:153)
在com.google.common.collect.ComputingConcurrentHashMap.getOrCompute上(ComputingConcurrentHashMap.java:69)
位于com.google.common.collect.ComputingConcurrentHashMap$ComputingMapAdapter.get(ComputingConcurrentHashMap.java:393)
... 25多

我尝试使用旧版本的Weld,直到1.1.0都没有用。关于如何解决此类问题的任何线索?

您遇到了沙箱限制

特别是,
WeldClassImpl
构造函数为每个方法调用
WeldMethodImpl.of()
遍历带注释类的层次结构:如果所讨论的类扩展了JRE或API类,则沙盒将拒绝访问非公共方法;如果类不属于应用程序,沙盒将拒绝所有