繁体   English   中英

Java创建目录运行时WebApp

[英]Java Create Directory Runtime WebApp

我在JBOSS上运行Java SEAM2中的webapp。

在我的应用程序中,我试图动态/运行时创建目录。

好了,是创建了这些目录,但是当我尝试向其中写入文件时,它将引发空指针异常。 因此,重新启动服务器,然后一切正常,为什么呢?

if(ClassName.class.getClassLoader().getResource("roles/" + role ) == null)
        {
            //create directory with role name
            String rolePath = ClassName.class.getClassLoader().getResource("roles").getPath();
            rolePath = rolePath.substring(1, rolePath.length());
            rolePath = rolePath.replace("/", "\\");
            rolePath = rolePath + "\\" + role;

            if( !(new File(rolePath).mkdir()))
            {
                this.addMessage(FacesMessage.SEVERITY_ERROR, "Error Creating Role Directory");
                return;
            }

        }



        if(ClassName.class.getClassLoader().getResource("roles/" + role + "/" + app ) == null)
        {
            String appPath = ClassName.class.getClassLoader().getResource("roles/" + role).getPath();
            appPath = appPath.substring(1, appPath.length());
            appPath = appPath.replace("/", "\\");
            appPath = appPath + "\\" + app;

            File appFolder = new File(appPath);
            if( !(appFolder.mkdir()))
            {
                this.addMessage(FacesMessage.SEVERITY_ERROR, "Error Creating Role Directory");
                return;
            }


        }

我的猜测是,由于我使用的是getClassLoader,因此不会使用创建的新文件进行更新

在类加载器的基础上创建一个基于资源路径的文件夹是一个坏主意(您永远不会在哪里加载/文件夹),更好的方法是使用java.io.temp文件夹,或者使用一种配置来知道在您的库中获取存储库文件夹系统。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM