JavaWOPI:GetFileContentAPI的返回类型应该是什么?

JavaWOPI:GetFileContentAPI的返回类型应该是什么?,java,ms-office,ms-wopi,Java,Ms Office,Ms Wopi,我已经在Microsoft的Office 365云存储合作伙伴计划下成功地使用Microsoft的Office Online客户端实现了JAVA WOPI主机现在我想使用自定义WOPI客户端(Office Web Apps Server)实现相同的流程我假设wopi主机代码中的更改最小。到目前为止,我已经实现了以下内容: 部署在Windows Server 2012 R2上 启动WOPI主机 GetFileInfo API是第一个应该获得invoke的API,是的,它正在获得invoke,我可

我已经在Microsoft的Office 365云存储合作伙伴计划下成功地使用Microsoft的Office Online客户端实现了JAVA WOPI主机

现在我想使用自定义WOPI客户端(Office Web Apps Server)实现相同的流程
我假设wopi主机代码中的更改最小。到目前为止,我已经实现了以下内容:

  • 部署在Windows Server 2012 R2上
  • 启动WOPI主机
  • GetFileInfo API是第一个应该获得invoke的API,是的,它正在获得invoke,我可以看到带有适当值的JSON
  • GetFileContentAPI也在GetFileInfo API调用之后得到调用,但我在浏览器上看不到该文件


下面是get file content的JAVA代码片段,我可以看到这个方法get invoke并以字节流的形式发回文件内容,但在浏览器上看不到文件。

这与我们在Office Online中使用的方法相同,但在Office Web Apps Server中不起作用

任何输入或指针都将不胜感激。

Optional first=findFile(fileId);
Optional<java.nio.file.Path> first = findFile(fileId);
        if (first.isPresent()) {
            return Response.ok(new File(first.get().toUri()), APPLICATION_OCTET_STREAM).build();
        } else {
            return Response.status(Status.BAD_REQUEST.getStatusCode(), "No file found with the " +
                    "name " + fileId).build();
        }

private Optional<java.nio.file.Path> findFile(String fileName) throws IOException {
    File filePath= getPath();

    try (Stream<java.nio.file.Path> stream = Files.find(filePath, 1, (path, attr) -> path.getFileName().toString().toLowerCase().equals(fileName.toLowerCase()))) {
        return stream.findFirst();
    }
}
if(first.isPresent()){ 返回Response.ok(新文件(first.get().toUri()),APPLICATION_OCTET_STREAM.build(); }否则{ return Response.status(status.BAD_REQUEST.getStatusCode(),“找不到包含的文件”+ “name”+fileId.build(); } 私有可选findFile(字符串文件名)引发IOException{ 文件filePath=getPath(); try(Stream=Files.find(filePath,1,(path,attr)->path.getFileName().toString().toLowerCase().equals(fileName.toLowerCase())){ 返回stream.findFirst(); } }

这个代码对我有用。你可以试试这个

你想编辑什么类型的文件?Word,Excel?你说你部署了OWA(不是OOS),它需要钴作为单词…这可能就是原因。更多信息请访问
Optional<java.nio.file.Path> first = findFile(fileId);
        if (first.isPresent()) {
            return Response.ok(new File(first.get().toUri()), APPLICATION_OCTET_STREAM).build();
        } else {
            return Response.status(Status.BAD_REQUEST.getStatusCode(), "No file found with the " +
                    "name " + fileId).build();
        }

private Optional<java.nio.file.Path> findFile(String fileName) throws IOException {
    File filePath= getPath();

    try (Stream<java.nio.file.Path> stream = Files.find(filePath, 1, (path, attr) -> path.getFileName().toString().toLowerCase().equals(fileName.toLowerCase()))) {
        return stream.findFirst();
    }
}