java - Spring batch FileItemWriter 没有在正确的路径创建文件

标签 java linux spring websphere spring-batch

我有一个包含 FileItemReader、FileItemProcessor 和 FileItemWriter 的 spring 批处理服务。创建 FileItemWriter 时,我必须设置将成为我的输出文件的资源。

我在 Linux 机器上的 websphere 上运行批处理服务。问题是如果我将资源设置为 new FileSystemResource(new File("opt\temp1\myFile.txt")),创建文件的路径是“/usr/IBM/WebSphere/AppServer/profiles/AppSrv01/\opt\temp\myFile.txt”这不是我想要的。我想要放置文件的路径是“\opt\temp\myFile.txt"在 linux 文件系统上。关于我做错了什么有什么建议吗?

请查看下面我正在执行此操作的代码片段。我正在扩展 FileItemWriter 并覆盖打开方法以设置资源。非常感谢。

@Override
    public void open (ExecutionContext context)
    {
        String fileName = UUID.randomUUID ().toString ();
        String filePath = fileLocation + fileName;
        resource = new FileSystemResource (new File (filePath));
        setResource (resource);
        super.open (context);
    }

fileLocation = "\opt\temp\", 文件名="我的文件.txt"

最佳答案

您在 fileLocation 的值中使用了反斜杠。它们是 linux 中的有效文件名字符。您应该将路径更改为 /opt/temp/

关于java - Spring batch FileItemWriter 没有在正确的路径创建文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30910513/

相关文章:

java - Android RSS Xml 错误

java - Jpa @Converter 获取实体的 id

java - 尝试使用枚举作为与 thymeleaf 一起使用的输入

java - 奇怪的 Java 类路径/类加载器行为

java - 将文本中的数据存储到变量中

linux - 为什么 grep 搜索 '0,^M$' 返回空行?

linux - LD_LIBRARY_PATH 影响可执行路径

linux - HAProxy 和 Keepalived 用于 rsyslog 负载平衡

java - Spring MVC : HTTP 400 Error when trying to upload csv files

java - 如何将 @Projection 分配给 @GetMapping spring servlet 端点?