postman发送请求后程序报错

postman发送请求后程序报错

问题描述:

java.lang.NullPointerException: null

at java.io.File.<init>(File.java:277) ~[na:1.8.0_301]

at com.shopping.demo.controller.ProductAdminController.uploadFile(ProductAdminController.java:41) ~[classes/:na]


相关代码:

public static String FILE_UPLOAD_DIR;

@Value("${file.upload.dir}")
public static void setFileUploadDir(String fileUploadDir) {
    FILE_UPLOAD_DIR = fileUploadDir;
}


配置文件相关代码:

file.upload.dir=D:/upload/



正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好,1、空指针是null调用属性与方法导致的一次,则建议同学查看ProductAdminController类41行是否存在该问题。

2、同学也可以与课程源码进行对比,查看是哪里的问题。或以复制粘贴的方式反馈代码,便于老师测试代码。

祝学习愉快!

  • 慕村4629685 提问者 #1

     老师您好,根据debug调试显示 变量:

    FILE_UPLOAD_DIR

    为空,所以报空指针异常。请问如何解决这个问题。是否是未设置静态资源映射导致的呢?我在application.properties文件里也设置了变量值为本地路径


    2022-02-28 12:14:16
  • 慕村4629685 提问者 #2

    Controller层:

    ()
    ApiResponse (() MultipartFile fileHttpServletRequest request){
        String filename = file.getOriginalFilename()String substring = filename.substring(filename.lastIndexOf())UUID uuid = UUID.()String newFilename=uuid.toString()+substringFile fileDirectory = File()File destFile = File(Constants.+ newFilename)(!fileDirectory.exists()) {
            (!fileDirectory.mkdir()){
                ShoppingException(ApiResponseEnum.)}
        }
        {
            file.transferTo(destFile)} (IOException e) {
            e.printStackTrace()ShoppingException(ApiResponseEnum.)}
        {
            ApiResponse().put(getHost(URI(request.getRequestURL()+++newFilename)))} (URISyntaxException e) {
            ShoppingException(ApiResponseEnum.)}
    }
    
    URI (URI uri){
        URI effectedUri{
            effectedUri=URI(uri.getRawSchemeSpecificPart()uri.getUserInfo()uri.getHost()uri.getPort())} (URISyntaxException e) {
            effectedUri=}
        effectedUri}

    静态资源映射:

    SpringBootWebMvcConfig WebMvcConfigurer {
        (ResourceHandlerRegistry registry) {
            registry.addResourceHandler()
                    .addResourceLocations(+Constants.)}
    }

    配置文件:

    file.upload.dir=D:/upload/

    Constans常量类:

    Constants {
        String =String =String =String =String =String =String =String =String ()
        (String fileUploadDir) {
            = fileUploadDir}
    
        String (){
            }
    }


    2022-02-28 13:43:56
  • 好帮手慕小尤 回复 提问者 慕村4629685 #3

    同学你好,查看同学反馈的代码结构有问题,建议同学将代码反馈到对应的代码语言中,便于老师测试代码。

    https://img1.sycdn.imooc.com//climg/621c66d209d1086a01680210.jpg

    祝学习愉快!

    2022-02-28 13:59:44
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师