我正在尝试在开发GAE服务器上模拟HTTPServletRequest数据。我正在运行Eclipse插件1.3.7
我试图做到这一点:
package com.FOO.madservice.servlet.mock; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import static org.mockito.Mockito.*; @SuppressWarnings("serial") public class BAR2ServletMock extends HttpServlet { ... protected HttpServletRequest requestFilter(HttpServletRequest req) { HttpServletRequest servletRequest = spy(req); doReturn("gzip, deflate").when(servletRequest).getHeader("header-name-goes-here"); doReturn("174.30.216.4").when(servletRequest).getRemoteAddr(); return servletRequest; } ... }
运行以下命令会产生异常:
java.lang.NoClassDefFoundError:sun.reflect.ReflectionFactory是一个受限类。有关更多详细信息,请参阅Google App Engine开发人员指南。
关于如何在GAE开发服务器上进行列表检查或使用与GAE一起使用的其他模拟库时禁用类的任何想法?
谢谢,马克西姆。
我怀疑您能否在GAE上解决此问题。
GAE符合Java Servlet标准,因此您可以通过安装标准的Java Servlet容器(例如Tomcat)来测试您的程序。
另外,根据“嘲笑”的定义,对象嘲笑是否不需要反思?GAE白名单是绝对强制执行的,您将无法绕开它。要在应用程序引擎上进行部署,无法使用完整的反射API(但是支持某些类)。