小编典典

在GAE开发服务器上模拟?

java

我正在尝试在开发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一起使用的其他模拟库时禁用类的任何想法?

谢谢,马克西姆。


阅读 213

收藏
2020-11-26

共1个答案

小编典典

我怀疑您能否在GAE上解决此问题。

GAE符合Java Servlet标准,因此您可以通过安装标准的Java Servlet容器(例如Tomcat)来测试您的程序。

另外,根据“嘲笑”的定义,对象嘲笑是否不需要反思?GAE白名单是绝对强制执行的,您将无法绕开它。要在应用程序引擎上进行部署,无法使用完整的反射API(但是支持某些类)。

2020-11-26