java - 代码移至 CloudHub 时无法找到文件

标签 java mule cloudhub

用例:用Java读取文件内容(部署在cloud-hub)

问题: 我编写了一个java类,它读取文件并将内容记录到控制台。但是如果将相同的代码移动到云中心,则会引发文件未找到异常。

问题:我知道 src/main/resources 文件夹结构将不可用,创建 File 实例时应该使用的文件位置是什么,如果代码通过cloudhub运行

这里的代码片段仅适用于本地环境。

package com.testUtil;

import org.mule.api.MuleEventContext;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;

import org.mule.api.lifecycle.Callable;

public class TestClass implements Callable {

    @Override
    public Object onCall(MuleEventContext eventContext) throws Exception {

        System.out.println("Files and directories present at src/main/resources are :");

            File folder = new File("./src/main/resources/");
            File[] listOfFiles5 = folder.listFiles();

            for (int i = 0; i < listOfFiles5.length; i++) {
              if (listOfFiles5[i].isFile()) {
                System.out.println("File " + listOfFiles5[i].getName());
              } else if (listOfFiles5[i].isDirectory()) {
                System.out.println("Directory " + listOfFiles5[i].getName());
              }
            }

        System.out.println("expected output is: xsd");


        FileReader fr = new FileReader(folder+"/xsd/Request.xsd"); 
        BufferedReader br = new BufferedReader(fr); 
        String contents=""; 
        String s=""; 
        while((s = br.readLine()) != null) { 

            contents+=s;
        } 
        System.out.println(contents);
        fr.close(); 


        return contents;
    }

}

但是

   this.getClass().getResource("./").getPath();

给出./mule-3.4.1-R35/conf作为输出。

所以尝试使用下面的 snnipet,但仍然是 FileNotFoundException

FileReader fr = new FileReader(this.getClass().getResource("./").getPath()+"/xsd/Request.xsd");

请帮忙!! 谢谢

最佳答案

src/main/resources 中的文件应使用类路径加载,而不是作为文件加载。

我建议使用Reflections用于有效地扫描类路径。

关于java - 代码移至 CloudHub 时无法找到文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21047880/

相关文章:

java - 如何将相同的有效载荷发送到 mule 中的多个组件?

java - AmazonClientException : Unable To Load Credentials from any Provider in the Chain

java - 使用 Jersey RxJava 客户端未找到类 rx.Observable 的序列化器

java - 我正在尝试读取一个文本文件,然后拆分行,以便获得两组不同的名称

xml - 如何使用 xpath 查找根元素名称

java - 如何在启动时将 System.getProperty ("skipIndexing") 值传递给 Java 服务器?

node.js - Jenkins 执行 Shell 任务失败,stty : when specifying an output style, 模式可能无法设置/dev/tty:没有这样的设备或地址

java - 在 LibGdx 初始化 ShapeRenderer 时如何避免 NullPointerException

java - PrimeFaces 自动完成更改默认大小