0

我创建了一个异步调用的 REST API (.asyncApply),并且该 API 正在尝试写入文件,但由于我更改了所有类型的权限而被拒绝,因此相应目录中的所有权限都已到位。

我已经研究了很多,但没有得到任何解决方案

异步调用是否有可能造成问题?

PS:这个问题是间歇性发生的。另外,我正在使用 Play-frame 工作和 WSCliet 来访问 REST API。

更新 - api 流程是这样的:

要求 :

Document xml = play.libs.XML.fromString("<document></document>");
 ws.url(url).post(xml);

处理响应:

completionStage<Document> documentPromise =
ws.url(url).get().thenApplyAsync(r -> r.getBody(xml()));

在处理过程中,它会异步访问一些 API,并且在写入文件时会出现异常,例如

2021-05-17 12:08:03.079 +0530 [DEBUG] from com.zaxxer.hikari.pool.PoolBase:? in
                application-akka.actor.default-dispatcher-1233 - HikariPool-2 - Reset (autoCommit) on connection oracle.jdbc.driver.T4CConnection@1a8c2ee6
2021-05-17 12:08:03.145 +0530 [INFO] from utils.BulkOutputFileCreator:? in
                application-akka.actor.default-dispatcher-1233 - Exception occurred in writing file
java.io.FileNotFoundException: NF/BRO_PP/SMAPLE/outPut1234.csv (Permission denied)
    at java.io.FileOutputStream.open0(Native Method)
    at java.io.FileOutputStream.open(FileOutputStream.java:270)
    at java.io.FileOutputStream.<init>(FileOutputStream.java:213)
    at java.io.FileOutputStream.<init>(FileOutputStream.java:101)
    at java.io.PrintWriter.<init>(PrintWriter.java:184)
    
4

1 回答 1

0

https://www.suse.com/support/kb/doc/?id=000019272

这个网页最终让我希望我的代码没有任何问题,因此我们在部署代码的 Linux 端进行了调试。

我们从 NFS 端发现了一个非常奇怪的行为,我们的目录权限在 NFS 挂载点到我们的服务器端目录之间一直从 777 波动到 755

所以我们直接从 NFS 服务器给 777 并且上述功能工作正常。

所以基本上问题是由于许可波动而发生的。

于 2021-05-27T12:24:18.070 回答