在war项目中加载文件图像

时间:2012-12-26 17:13:45

标签: java spring file-io

我正在做一个javaEE应用程序,我使用spring来注入我的ejbs和WAS7,目前我在windows环境中运行它,最后它将在unix环境中运行。所以我创建了一个java类作为spring的控制器,我应该从jsp获取一些数据并将其转换为excel。因此,当我尝试从我的web内容文件夹中获取图像时,我可以将其放入我的excel y get文件中找不到。 这是我迄今为止没有成功的尝试:

    String path = File.separatorChar + "img" + File.separatorChar +  File.separatorChar + "logoCorporativo.jpg";
    System.out.println(path);

    try {
        FileInputStream fis = new FileInputStream(path);
    } catch (FileNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

        String path = File.separator + "img" + File.separator +  File.separator + "logoCorporativo.jpg";
        System.out.println(path);

    try {
        FileInputStream fis = new FileInputStream(path);
    } catch (FileNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

我发现当我在我的浏览器中输入“http:// localhost:9080 / AdminMapasWeb / img / logoCorporativo.jpg”时,我可以看到图像。

有没有人我收到FileNotFound异常??? 提前谢谢。

2 个答案:

答案 0 :(得分:2)

使用

File file = getRequest().getServletContext().getRealPath("/img/logoCorporativo.jpg");

getRealPath将URL根相对路径(使用斜杠“/”)转换为File。 如果war在部署时没有解压缩,则getRealPath返回null。

答案 1 :(得分:1)

您的文件打包在* .war存档中,因此它不是文件系统上的独立文件(就像它在开发中一样) 尝试使用getClass()。getClassLoader.getResourceAsStream()来获取它