首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Google AppEngine运行时中的嘲笑

在Google AppEngine运行时中的嘲笑
EN

Stack Overflow用户
提问于 2013-03-31 06:52:19
回答 1查看 421关注 0票数 1

我试图在GAE运行时中做一些需要“嘲弄”的事情:

代码语言:javascript
复制
  private Mongo createMongo() {
    Mongo mongo = Mockito.mock(Mongo.class);
    ...
  }

但是,这显然会导致错误,因为“反射”是一个受限的类:

代码语言:javascript
复制
java.lang.NoClassDefFoundError: sun.reflect.ReflectionFactory is a restricted class. Please see the Google  App Engine developer's guide for more details.
    at com.google.appengine.tools.development.agent.runtime.Runtime.reject(Runtime.java:51)
    at org.objenesis.instantiator.sun.SunReflectionFactoryInstantiator.<init>(SunReflectionFactoryInstantiator.java:24)
    at org.objenesis.strategy.StdInstantiatorStrategy.newInstantiatorOf(StdInstantiatorStrategy.java:65)
    at org.objenesis.ObjenesisBase.getInstantiatorOf(ObjenesisBase.java:76)
    at org.objenesis.ObjenesisBase.newInstance(ObjenesisBase.java:59)
    at org.mockito.internal.creation.jmock.ClassImposterizer.createProxy(ClassImposterizer.java:111)
    at org.mockito.internal.creation.jmock.ClassImposterizer.imposterise(ClassImposterizer.java:51)
    at org.mockito.internal.util.MockUtil.createMock(MockUtil.java:52)
    at org.mockito.internal.MockitoCore.mock(MockitoCore.java:41)
    at org.mockito.Mockito.mock(Mockito.java:1014)
    at org.mockito.Mockito.mock(Mockito.java:909)
  • 有什么解决办法吗?有办法让“反射”与GAE运行时一起工作吗?
  • 是否有任何sun.reflect的“模拟”库可以进行反射?
  • 也许,定义哪些类可以被反映?像@Reflectable之类的
  • 还是已经存在一个在AppEngine中工作的模拟框架?

更新:

早在2010年我就发现了一个类似的问题:

https://groups.google.com/forum/?fromgroups=#!topic/google-appengine-java/uIWRftGl-fA

不过,直到现在还没有回答。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-14 00:09:23

应用程序引擎应用程序在沙箱中运行,这限制了它们所能做的事情。关于沙箱的概述可以在这里找到:

sandbox

沙箱限制之一是对应用程序可以访问的jre绑定类的限制。允许应用程序访问的jre捆绑类的完整列表如下所示:

https://cloud.google.com/appengine/docs/java/jrewhitelist

为什么ReflectionFactory本身不在此可访问类列表中?如果您阅读该类的javadocs,您会发现以下语句:“该类中的方法非常不安全,可能导致语言和验证器的颠覆。”因此,这个类可以用来颠覆沙箱。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15727135

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档