如何获取服务器基本路径来查找和读取json

时间:2018-03-23 18:00:46

标签: java json spring-boot mocking websphere-liberty

我休息了,我试图嘲笑一些回应 我使用 Spring Boot

WebSphere 服务器上工作
@RequestMapping(method = RequestMethod.GET, value = "", produces = {MediaType.APPLICATION_JSON_VALUE, "application/hal+json"})
public Resources<String> getAssemblyLines() throws IOException {
    String fullMockPath = servletContext.getContextPath() + "\\assets\\services-mocks\\assembly-lines\\get-assembly-lines.ok.json";
    List<String> result = new ArrayList<String>();
    result.add(fullMockPath);

    try {
        byte[] rawJson = Files.readAllBytes(Paths.get(fullMockPath));
        Map<String, String> mappedJson = new HashMap<String, String>();
        String jsonMock = new ObjectMapper().writeValueAsString(mappedJson);
        result = new ArrayList<String>();
        result.add(jsonMock);
    } catch (IOException e) {
        result.add("Not found");
        result.add(e.getMessage());
    }

    return new Resources<String>(result,
            linkTo(methodOn(this.getClass()).getAssemblyLines()).withSelfRel());
}

我得到了

  

FileNotFoundException异常

累了Tushinov的解决方案

System.getProperty("user.dir");

但是这会返回我服务器的PATH,而不是我的文档根目录(是的,它们会在不同的文件夹中)

如何理解我的基本路径?

1 个答案:

答案 0 :(得分:1)

问题How can understand my base path?。您可以使用:

  

System.getProperty( “user.dir来”)

System.getProperty("user.dir")将返回项目的路径。

示例输出:

  

C:\ folder_with_java_projects \ CURRENT_PROJECT

因此,如果文件位于项目文件夹中,您可以执行以下操作:

System.getProperty("user.dir") + "somePackage\someJson.json";