当前位置: 首页 > 面试题库 >

在GAE开发服务器上模拟?

胡越泽
2023-03-14
问题内容

我正在尝试在开发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(但是支持某些类)。



 类似资料:
  • 问题内容: 我正在将一些后端转换为模块,并在设置开发环境配置时感到困惑。我在Eclipse中使用Java,但未在Maven中使用Java。架构非常简单: 前端模块为默认模块。基本的GAE / GWT应用程序。将项目放入任务队列。 后端模块处理任务队列。 使用旧的后端体系结构,一个调试配置将启动开发服务器,该服务器将为GWT DevMode UI 和 后端任务处理提供服务。 问题的症结在于DevMo

  • 我在GAE上开发应用程序,我在本地测试网站,但是,每次我试图将其部署到GAE时,它都报告错误:服务器错误 我在谷歌搜索了很多,似乎没有答案可以解决我的问题。当我在GAE应用程序中查找日志时,以下是我目前发现的主要问题。最初,我认为这是JDK8的原因,但当我设置JDK8时,我甚至不能在本地运行应用程序!

  • 本文向大家介绍在 Django/Flask 开发服务器上使用 HTTPS,包括了在 Django/Flask 开发服务器上使用 HTTPS的使用技巧和注意事项,需要的朋友参考一下 使用 Django 或 Flask 这种框架开发 web app 的时候一般都会用内建服务器开发和调试程序,等程序完成后再移交到生产环境部署。问题是这些内建服务器通常都不支持 HTTPS,我们想在开发的时候就能够使用和测

  • 直到最近,我的代码在GAE和开发服务器上都运行良好。然后最近我上传了一个新版本,它在服务器上根本不起作用,在我的本地机器(dev服务器)上运行良好。旧版本继续在服务器上工作。 每次我点击更新版本的任何URL时,都会在日志中找到以下stracktraces: 这是我能找到的最相关的依赖项(它位于我在项目中使用的实用程序库中): 没错,javax。ws。rs.core。其中的应用程序类不包含方法。 现

  • 使用Google App Engine标准Python 2.7,我的调度中有一个路径。yaml指定所有类型为“*/flex/*”的URL以路由到flex服务。 dispatch.yaml派遣: flex环境是一个自定义python 3.7运行时,通常使用以下方式执行: 。 对于我的环境中的其他服务,我尝试使用以下命令启动开发环境: 然而,当这开始时,当我需要从端口9090访问flex服务时,它开始

  • 我有最困难的时候让我的webpack开发服务器代理到我的后端。 我使用Vue和webpack cli模板。 我的后端托管在docker容器中,可以在localhost:8443/foo上看到 我的devServer配置设置为: 正如我前面所说,当我将浏览器指向https://localhost:8443/foo 当我运行我的webpack服务器,并试图https://localhost:9000/