Java 8 如何在wiremock中使用mappingsloader加载映射文件?

Java 8 如何在wiremock中使用mappingsloader加载映射文件?,java-8,wiremock,wiremock-standalone,Java 8,Wiremock,Wiremock Standalone,我通过记录服务器的事务创建了映射。现在我想使用我的json映射文件来加载映射。为此,我有以下代码: import com.github.tomakehurst.wiremock.WireMockServer; public class mockedTests{ public static WireMockServer mockingServer; public void loadMaps(){ mockingServer.loadMappingsUsi

我通过记录服务器的事务创建了映射。现在我想使用我的json映射文件来加载映射。为此,我有以下代码:

import com.github.tomakehurst.wiremock.WireMockServer;

public class mockedTests{
    public static WireMockServer mockingServer;
    
    public void loadMaps(){
        mockingServer.loadMappingsUsing(****);
    }
}
我检查了wiremock代码,并且
loadMappingsUsing
方法需要一个
MappingsLoader
作为其参数。但是,我找不到正确创建
MappingsLoader
的方法。我在文档中找不到任何内容,在网上也找不到任何示例或教程。此外,我一直使用
WireMockServer
对象,而不是规则或
WireMock
对象。有人知道我如何创建一个
MappingsLoader
来加载我的MappingsJSON文件吗?我使用的是wiremock的独立版本。谢谢。

,WireMock将在
/src/test/resources
下查找文件。如果要在Java中创建WireMock实例,并在自定义位置创建文件,则需要传入一个
选项()
对象,并附加
.usingFilesUnderDirectory(“/path/to/files and mappings root”)

WireMockServer wm = new WireMockServer(options().usingFilesUnderDirectory("/path/to/files-and-mappings-root"))
如果您需要在从命令行启动WireMock时执行此操作,它将类似于:

$ java -jar wiremock-standalone-2.27.0.jar --root-dir "/path/to/files-and-mappings-root"

我认为您最初的问题可能是因为没有使用
options()
对象启动WireMock服务器或规则。

您确定正在运行独立版本的WireMock吗?看起来您正在使用Java版本。你是如何启动WireMock的?我使用的是独立的Java版本。我通过在junit
@BeforeClass
方法中运行
mockingServer.start()
来启动服务器。这是我正在使用的版本:当我创建
WireMockServer
时,它似乎忽略了默认位置,并且没有配置新位置的方法。或者我还没有找到。我必须使用
WireMockServer
,因为其他方法与spring引导环境冲突,我无法更改。奇怪的是,它不从默认目录读取。它从任何地方都读不到。它只是启动服务器,没有加载任何地图。此外,令我失望的是,
WireMockServer
对象没有
.usingfilesinderdirectory()
方法。只有
WireMockRule
有它。这对我来说也是非常意外的。您是否有一个
/src/test/resources/
文件夹,其中包含与
WireMockServer
代码所在位置或代码调用位置相关的映射和文件目录?您正试图使用
创建
WireMockServer
。使用fileunderdirectory()
如下:
WireMockServer wm=newwiremockserver(选项().usingfileunderdirectory(“/path/to/directory”)?第一个是。。。第二个不!我有目录,但我不知道
options()。使用目录下的文件(“/path/to/directory”)
!我已经阅读了很多教程和示例代码,但这是我第一次看到
options()
!让我试试,然后回来!好吧,愚蠢的问题。。。但是从哪里导入“options()”呢?我在
com.github.tomakehurst.wiremock.client.wiremock.options
找到了一个静态文件,但它没有
.usingfilesingdirectory()