当前位置: 首页 > 知识库问答 >
问题:

getResourceAsStream返回NullpointException(spring4)

景永春
2023-03-14
@RequestMapping(value = "/all", method = RequestMethod.GET)
public ResponseEntity<List<ItemVO>> listAll() {
    ResponseEntity<List<ItemVO>> entity = null;
    try {


        List<ItemVO> list=service.listAll();
        for(ItemVO i : list){
            InputStream in = getClass().getClassLoader().getResourceAsStream(i.getFilepath_img()); 

            i.setByte_img(IOUtils.toByteArray(in));

        }
          final HttpHeaders headers = new HttpHeaders();
            headers.setContentType(MediaType.IMAGE_PNG);
        entity = new ResponseEntity<List<ItemVO>>(list, HttpStatus.OK);

    } catch (Exception e) {
        // TODO: handle exception
        e.printStackTrace();
        entity = new ResponseEntity<>(HttpStatus.BAD_REQUEST);
    }

    return entity;
}
 public class ItemVO{
    private int item_id;
    private String filepath_img;
    private byte[] byte_img;
}

我不知道如何进行堆栈跟踪:

NullPointerException

at org.apache.commons.io.IOUtils.copyLarge(IOUtils.java:2146)

at org.apache.commons.io.IOUtils.copy(IOUtils.java:2102)

at org.apache.commons.io.IOUtils.copyLarge(IOUtils.java:2123)

at org.apache.commons.io.IOUtils.copy(IOUtils.java:2078)

at org.apache.commons.io.IOUtils.toByteArray(IOUtils.java:721)

共有1个答案

洪高刚
2023-03-14

webapp/resources/..不在类路径中。您可以通过使用ServletContext来解决这个问题

注射:

@Autowired
private ServletContext servletContext;

然后获取inputstream:

InputStream in = servletContext.getResourceAsStream(i.getFilepath_img()); 
    null
 类似资料:
  • 我有以下问题 返回null,但是 返回InputStream,并且两个文件都在此文件夹中。有什么不对劲? 我使用的是libgdx-0.9.6

  • 问题内容: 我的项目目录结构(在Eclipse中): 在中,我有以下代码: 运行此命令时,将获得以下控制台输出: 为什么? 我放置在错误的位置了吗?我是否使用了ClassLoader API错误?还有吗 提前致谢! 问题答案: 如果在同一包装中使用 您拥有的方式 它在类路径的根目录中查找文件。你可以用 搜索规则在的javadoc和的javadoc中进行了说明。

  • 问题内容: 不知道这怎么可能。我重新阅读了getResourceAsStream,它始终返回null。 在Finder中(使用OS X和Eclipse),在test.java的旁边是test.xml 我可以在TextWrangler中打开它,并查看其中是否存在数据。 如果有什么不同,这是Junit测试。我去查看了系统上现有的Junit测试,并以与工作示例完全相同的方式来使用它(如文件所在的位置和代

  • 问题内容: 我正在从Java项目的已编译JAR中的包中加载文本文件。相关目录结构如下: 我的代码通过调用返回来加载文件。 无论我使用什么,都将始终打印输出。我不确定为什么上面的方法行不通,所以我也尝试了: 这些都不起作用。我 读 了许多 问题至今的话题,但他们都不是有帮助的-通常情况下,他们只是说,使用根路径,这我已经在做负载文件。那,或者只是从当前目录加载文件(只是),我也尝试过。该文件将使用适

  • 问题内容: 我在Java Web应用程序中具有以下结构: 在中WS.java,我在Web方法中使用以下代码: 但是它总是返回null。我需要读取该文件,并且我读到如果将文件放入其中,则可以使用进行访问,但是该方法始终返回null。 对我可能做错的任何想法? 它正在工作,但是当我Clean and Build在Project上执行了a之后,它突然停止工作了 问题答案: 据我所知,该文件必须正确地放置

  • 我的jar中有一个图像,我正试图加载它,但是getResourceAsStream()总是返回null。 目录结构: 所容纳之物爪哇: 一般内容。爪哇: StackTrace: 我不知道为什么类加载器找不到图像。我已经在编译的jar中查看过了,文件在那里,并且在油漆中打开很好,所以文件是OK的。我已经尝试了各种ClassLoader变体,包括getSystemClassLoader(),getCl