Spring REST 模拟上下文路径

2023-11-29

我尝试使用以下代码片段设置 Spring Rest 模拟的上下文路径:

private MockMvc mockMvc;

@Before
public void setUp() {
    this.mockMvc = MockMvcBuilders.webAppContextSetup(this.context)
            .apply(documentationConfiguration(this.restDocumentation))
            .alwaysDo(document("{method-name}/{step}/",
                    preprocessRequest(prettyPrint()),
                    preprocessResponse(prettyPrint())))
            .build();
}

@Test
public void index() throws Exception {
    this.mockMvc.perform(get("/").contextPath("/api").accept(MediaTypes.HAL_JSON))
            .andExpect(status().isOk())
            .andExpect(jsonPath("_links.business-cases", is(notNullValue())));
}

但我收到以下错误:

java.lang.IllegalArgumentException: requestURI [/] does not start with contextPath [/api]

怎么了? 是否可以在代码中的单个位置指定 contextPath,例如直接在构建器中?

edit

这里是控制器

@RestController
@RequestMapping(value = "/business-case", produces = MediaType.APPLICATION_JSON_VALUE)
public class BusinessCaseController {
    private static final Logger LOG = LoggerFactory.getLogger(BusinessCaseController.class);

    private final BusinessCaseService businessCaseService;

    @Autowired
    public BusinessCaseController(BusinessCaseService businessCaseService) {
        this.businessCaseService = businessCaseService;
    }

    @Transactional(rollbackFor = Throwable.class, readOnly = true)
    @RequestMapping(value = "/{businessCaseId}", method = RequestMethod.GET)
    public BusinessCaseDTO getBusinessCase(@PathVariable("businessCaseId") Integer businessCaseId) {
        LOG.info("GET business-case for " + businessCaseId);
        return businessCaseService.findOne(businessCaseId);
    }
}

您需要在要传递到的路径中包含上下文路径get.

在您在问题中显示的情况下,上下文路径是/api并且您想提出请求/所以你需要通过/api/ to get:

@Test
public void index() throws Exception {
    this.mockMvc.perform(get("/api/").contextPath("/api").accept(MediaTypes.HAL_JSON))
            .andExpect(status().isOk())
            .andExpect(jsonPath("_links.business-cases", is(notNullValue())));
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Spring REST 模拟上下文路径 的相关文章

  • Java EE 6 和单例

    谁能解释一下在 Java EE 6 应用程序中实现 Singleton 的完整过程 我假设我不应该以声明静态变量的典型方式创建单例 而应该使用 Singleton注解 我必须这样做吗 难道只是声明一下的情况 Singleton就是这样 我还
  • 有没有更简单的方法来分割/重建字符串?

    目前我正在使用String split 像这样 String tmp props get i getFullName split String name for int j 1 j lt tmp length j if j gt 1 nam
  • 我在使用 JavaFX 绘制十字时遇到问题

    我正在尝试编写代码 在网格上对角绘制 3 个形状 前两个形状是正方形和圆形 我能做到 然而 第三种形状让我有些悲伤 我应该画一个十字 T 版本 而不是 X 每次我写出代码时 它看起来就像一个侧面 我知道我只是错过了一些简单的东西 但我真的很
  • 检查从 arrayadapter 获取的复选框

    我有标题清单 CheckBox 我想控制默认检查哪一个 所以我试图获得正确的视图并检查它 但由于某种原因它不起作用 知道为什么吗 form checkbox item xml
  • Hibernate 每个子类一个表继承策略的效率

    我正在考虑 Hibernate 管理的类层次结构的表布局 当然 每个子类表技术在我看来是一般意义上最合适的 然而 通过逻辑思考 我对其性能有些担忧 尤其是随着子类数量的扩展 举一个非常简短 且经典 的示例 假设您有以下类 public ab
  • Glassfish 4 - JDBC 领域

    Glassfish 4 中的密码加密算法和摘要算法有什么区别 因为Password加密算法不能为空 所以我使用了MD5 Encoding使用了Hex 摘要算法为空 因此默认为 SHA 256 但是 如果我使用 JAAS 制作一个简单的登录应
  • 有没有办法让Maven自动下载快照版本?

    所以我有一个项目依赖于另一个项目的快照版本 依赖关系是
  • Java - 调整图像大小而不损失质量

    我有 10 000 张照片需要调整大小 因此我有一个 Java 程序来执行此操作 不幸的是 图像的质量损失很大 而且我无法访问未压缩的图像 import java awt Graphics import java awt AlphaComp
  • Eclipse RCP - 将视图与编辑器区域堆叠?

    在开发 Eclipse RCP 应用程序时 是否可以将视图与编辑器区域堆叠在一起 像这样 我有多个列表 表格 我想创建一种预览组合 当通过单击鼠标选择列表上的项目时 我希望我的预览合成显示该项目的数据 如果用户双击某个项目 我想在预览合成后
  • 如何在java中从包含.0的浮点数中删除小数部分

    我只想删除包含的浮点数的小数部分 0 所有其他数字都是可以接受的 例如 I P 1 0 2 2 88 0 3 56666 4 1 45 00 99 560 O P 1 2 2 88 3 567 4 1 45 99 560 有什么方法可以做到
  • 如何在 Java 中使用 HTML 解析器和 Apache Tika 来提取所有 HTML 标签?

    我下载了 tika core 和 tika parser 库 但找不到将 HTML 文档解析为字符串的示例代码 我必须删除网页源的所有 html 标签 我能做些什么 如何使用 Apache Tika 进行编码 您想要 html 文件的纯文本
  • 在 java 8 下使用泛型出现类型错误,但在 java 7 下则不然

    我有一段代码可以在 java 7 下编译良好 但不能在 java 8 下编译 这是一个独立的重现示例 我已经采用了显示此问题的真实代码并删除了所有实现 import java util Iterator class ASTNode
  • Java ArrayList 和 HashMap 动态

    有人可以提供一个创建Java的例子吗ArrayList and HashMap在飞行中 所以而不是做一个add or put 实际上在类实例化时为数组 哈希提供种子数据 举个例子 类似于 PHP 的例子 array array 3 1 2
  • 不使用 length() 方法的字符串长度[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 如何在不使用字符串的情况下找到字符串的长度length String类的方法 str toCharArray length应该管用 或者怎么
  • 用于 Eclipse 的 Resharper [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 将 Maven 控制台与 m2eclipse 一起使用

    Maven 新手在这里 有没有办法在 Eclipse 中打开控制台并在 M2Eclipse 插件上执行 Maven 命令 这是一个非常好的插件 但我环顾四周 没有找到我想要的一些功能 谢谢 如果你想运行特定的maven插件 你可以这样做 g
  • IntelliJ - 无效源版本:17

    我已经在 IntelliJ 中使用 Gradle 创建了一个使用 Java 17 的新 Java 项目 运行我的应用程序时出现错误Cause error invalid source release 17 我的设置 我已经安装了openjd
  • “强制更新快照/版本” - 这是什么意思

    在 Maven 项目中 选择 更新项目 时 有一个名为 强制更新快照 版本 的选项 它有什么作用 强制更新快照 版本 就像运行以下命令 mvn U install U 也可以用作 update snapshot 看here http boo
  • java中什么是静态接口?

    我正在阅读Map Entry界面 当我注意到它是一个static界面 我不太明白什么是静态接口 它与常规接口有什么不同 public static interface Map Entry
  • removeall 和removeif 的用例

    我找到了这个 fun main val list MutableList

随机推荐

  • 什么是“装饰器”以及它们如何使用?

    我很好奇 AngularJS 中的装饰器到底是什么 除了装饰器中的简介之外 网上没有太多关于装饰器的信息AngularJS 文档并在一个简短的 尽管有趣的 提及Youtube 视频 正如 Angular 的人所说 装饰器是 服务的装饰 允许
  • 音频和视频等大文件的数据库

    我的应用程序创建了大量文件 每个文件最大 100MB 目前我们将这些文件存储在运行良好的文件系统中 但我想知道是否有更好的解决方案将文件存储在某种文件数据库中 数据库的一个简单优点是它可以分割文件并存储在小块中 而不是一个 100mb 的文
  • 使用 shebang 通过 subprocess.call 执行 python 脚本

    我正在用 Python 3 编写一个 某种程度上 模块化应用程序 我想从中运行任意程序 该程序是在运行时指定的 而不一定是 python 脚本 所以我用例如 subprocess call spam i eggs o ham If spam
  • 带有自定义标签的 CSS 宽度

    我无法获取适用于我的自定义标签的宽度和高度属性 请参阅下面的代码 CSS x slider width 1000px height 300px border 1px black solid background color 0000ff H
  • 在.NET中获取用户的Exchange服务器和电子邮件地址

    嗨 我想知道我的用户的 Exchange 服务器的地址 假设她位于典型的 Windows 办公网络中 这是在 C 应用程序中 我已经有了用户的电子邮件地址 我在以下位置找到了它System DirectoryServices Account
  • 类依赖工具

    我正在寻找一个 最好是开源 工具 在给定大量 C C 代码的情况下 该工具将生成类 C 和 或文件 C 之间依赖关系的可视化或 XML 图表 这个想法是 如果您必须将代码转换为另一种语言 您希望能够首先编译最低级别的类 然后从那里开始构建
  • 在 Apache Flink 中使用 DynamoDB 流

    有人尝试过在 Apache Flink 中使用 DynamoDB 流吗 Flink 有一个 Kinesis 消费者 但我正在寻找如何直接使用 Dynamo 流 DataStream
  • Windbg:是否可以在我自己的程序中嵌入Windgb引擎?

    我想编写一个调试 诊断工具 它可以调用 Windbg 函数来检查转储文件 而不是编写 Windbg 扩展 这可能吗 有什么参考吗 多谢 您可以使用 dbghelp dll 中实现的调试 API 而不是 WinDbg 它记录在MSDN 该参考
  • 用指针修改字符串[重复]

    这个问题在这里已经有答案了 这两个代码必须改变字符2在角色中 4 int main int argc char argv char s hello s 2 4 printf s n s return 0 当我运行此命令时 我会遇到分段错误
  • Python 和 MySQLdb:表替换导致语法错误

    我需要时不时地动态更改表和变量 所以我写了一个像这样的python方法 selectQ SELECT FROM s WHERE s s self db execute selectQ self table self columnSpecNa
  • F# 中“>>”运算符的语义

    在微软的F 样本 他们使用 gt gt 运算符 如下所示 test gt Seq iter any to string gt gt printfn line s gt gt 运算符在这种情况下做什么 序列中的每个项目 在本例中为数组 是否被
  • .NET 异步流读/写

    我一直在尝试解决这个 并发编程 考试练习 C 知道Stream类包含int Read byte buffer int offset int size and void Write byte buffer int offset int siz
  • Html / Php 表单未添加到 SQL 数据库

    我已经为此工作了几个小时 包括重建我的整个代码 我无法弄清楚出了什么问题 HTML 表单应该填充患者 SQL 数据库 但它不起作用 我在网站的另一部分使用了一个类似的表格 该表格可以完美地工作 但这个表格似乎不起作用 并且无法弄清楚为什么
  • MySQL REPEATABLE-READ Workbench 事务级别未设置

    我们在 my ini 文件中设置了以下内容 mysql 事务隔离 已提交读 我们假设此设置将是所有用户会话的默认设置 使用 PHPMyAdmin 登录时 tx isolation 设置正确并且按预期工作 然而 当使用 MySQL Workb
  • 拖放在 C# 中不起作用

    我在 C 中创建了一个拖放控件 以允许人们将文件拖放到我的表单上 这是我遇到的问题 调试时工作正常 但是 当以管理员模式运行我的程序时 它不起作用 这有什么原因吗 这是我的代码 private void panel1 DragEnter o
  • .NET 24 小时格式时间的正则表达式

    我可以在 NET 中有一个正则表达式吗 它只允许文本框中使用 24 小时时间格式 Thanks 此致 多发性硬化症 正则表达式 时间 hh mm 验证 24 小时格式 0 1 d 2 0 3 0 5 d 如果你也需要几秒钟 0 1 d 2
  • 使用 HTML 的 PHP 表格

    我的目标是使用一个 txt 文件 其中包含填写表单的特定响应所需的数据 该表格应该有用户名和密码 此外 还可以在表单上设置价格范围参数 用户名可以任意大小写 但密码区分大小写 我已经创建了我将使用的 html 表单 txt 文件中的数据包含
  • 使用函数参数进行回文条件检查[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 这是使用函数参数来检查字符串是否回文的 php 代码
  • Java 日期之间的天数(作业)

    当我运行该程序时 这是几天的休息时间 对我做错了什么有什么建议吗 我知道有一种更简单的方法可以做到这一点 但为此我试图展示查找之间的天数的所有实际步骤 家庭作业 因此不能使用日期时间库 public class DaysBetween pu
  • Spring REST 模拟上下文路径

    我尝试使用以下代码片段设置 Spring Rest 模拟的上下文路径 private MockMvc mockMvc Before public void setUp this mockMvc MockMvcBuilders webAppC