Java Create Directory Runtime WebApp - PullRequest
0 голосов
/ 18 октября 2010

У меня есть веб-приложение на Java SEAM2, работающее на JBOSS.

В моем приложении я пытаюсь создавать каталоги на лету / во время выполнения.

Что происходит, когда эти каталоги создаются, но когда я пытаюсь записать в них файл, возникает исключение нулевого указателя.Итак, перезапустил мой сервер, и тогда все работает хорошо, почему?

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, он не обновляется новыми созданными файлами

1 Ответ

1 голос
/ 26 апреля 2011

Это плохая идея - создать папку на основе пути к ресурсу из загрузчика классов (вы никогда не найдете, откуда находится папка / источник) лучше использовать папку java.io.temp или использовать конфигурацию, чтобы узнать, как получить папку репозитория в вашей системе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...